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