[tree-ssa] CCP inefficiencies

Daniel Berlin dberlin@dberlin.org
Thu Feb 13 16:34:00 GMT 2003


On Thursday, February 13, 2003, at 11:10  AM, law@redhat.com wrote:

> In message <1045151865.10505.54.camel@frodo>, Diego Novillo writes:
>> On Wed, 2003-02-12 at 18:08, law@redhat.com wrote:
>>
>>> It looks like a lot of the problem is the over-eager copying of nodes
>>> so that we can replace their operands and try to fold them.  This is
>>> in itself rather expensive, but it also creates lots of garbage for
>>> the collector to clean up.  Ugh.
>>>
>> Yeah.  Attribute that to Diego being a lazy bum(1).  I originally had
>> the idea of having some sort of undo buffer so that CCP could try the
>> replacement and fold, but copying the expression tree was so much 
>> easier
>> :)
> Or a non-destructive simplifier.  I'm not sure which is going to make
> more sense, but it's pretty clear we need something better than just
> copying the nodes.
>
Yeah, I was going to look at a non-destructive simplifier eventually, 
but i presume this is what you've done in your work.
We should always be able to determine if a node will become constant or 
has a good chance before ever copying it just by seeing if
1. we've replaced all variables with constants
2. we've replaced a unary operator on a variable with a unary operator 
on a constant
3. we've replaced a binary operator on two variables with a binary 
operator on two constants
etc

There's no need to copy the node to check if any of these cases hold.

> Jeff
>



More information about the Gcc mailing list