[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