0003-Improve-VBEout-computation.patch
Jeff Law
law@redhat.com
Mon Jun 21 18:46:00 GMT 2010
On 06/16/10 11:50, Paolo Bonzini wrote:
> On 06/16/2010 07:32 PM, Maxim Kuvyrkov wrote:
>> On 6/16/10 9:27 PM, Paolo Bonzini wrote:
>> ...
>>> Regarding (2), I think it's fine. Still wondering about one thing
>>> though: if an expression is available at the end of BB and computed in
>>> BB, it is fully redundant and it should be PRE's task to remove it,
>>> right? Maybe you're hitting the problem that our RTL PRE is not
>>> cascading?
>>
>> PRE often increases code size, so we run it when optimizing for speed.
>> When optimizing for size hoist is run in place of PRE. Does this answer
>> your question?
>
> Yes. It looks like a valuable addition indeed.
>
> Can you please add a comment saying "this allows the hoisting pass to
> also perform elimination of fully redundant expressions"?
What's "funny" is gcse.c used to have a classic fully-redundant
expression elimination pass which was used when optimizing for size
(instead of a PRE based algorithm). It had bitrotted over time and it
was removed. If we can make hoisting do the job (or a sizeable
portion of the job) without having to compute any additional dataflow,
that's good, very good.
jeff
More information about the Gcc-patches
mailing list