This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
Re: [RFC] Improve Tree-SSA if-conversion - convergence of efforts
- From: Tehila Meyzels <TEHILA at il dot ibm dot com>
- To: "Daniel Berlin" <dberlin at dberlin dot org>
- Cc: dpatel at gmail dot com, gcc at gcc dot gnu dot org, gcc-patches at gcc dot gnu dot org, "Michael Matz" <matz at suse dot de>, Revital1 Eres <ERES at il dot ibm dot com>, trevor_smigiel at playstation dot sony dot com, "Ulrich Weigand" <Ulrich dot Weigand at de dot ibm dot com>, Victor Kaplansky <VICTORK at il dot ibm dot com>, Ayal Zaks <ZAKS at il dot ibm dot com>, Dorit Nuzman <DORIT at il dot ibm dot com>
- Date: Wed, 1 Aug 2007 13:59:15 +0300
- Subject: Re: [RFC] Improve Tree-SSA if-conversion - convergence of efforts
"Daniel Berlin" <dberlin@dberlin.org> wrote on 31/07/2007 18:00:57:
>
> I agree with you for conditional stores/loads.
Great!
>
> The unconditional store/load stuff, however, is exactly what
> tree-ssa-sink was meant to do, and belongs there (this is #3 above).
> I'm certainly going to fight tooth and nail against trying to shoehorn
> unconditional store sinking into if-conv.
Sometimes, store-sinking can cause performance degradations.
One reason for that, is increasing register pressure, due to extending life
range of registers.
In addition, in case we have a store followed by a branch, store sinking
result will be a branch followed by a store.
On some architectures, the former can be executed in parallel, as opposed
to the latter.
Thus, in this case, it worth executing store-sinking only when it helps the
if-conversion to get rid of the branch.
How do you suggest to solve this problem, in case store-sinking will be
part of the tree-sink pass?
Another point, what about (unconditional) load hoisting:
It's surely not related to sink pass, right?
Tehila.