target/8087: sparc-sun-solaris2.7 C testsuite failures in execute/20020720-1.c w/-m64 or on sparcv9/sparc64

Richard Henderson rth@redhat.com
Thu Oct 3 16:01:00 GMT 2002


On Thu, Oct 03, 2002 at 01:49:26PM -0600, Roger Sayle wrote:
> Perhaps RTH could field this one?  I've considered in the past the
> possibility of modifying combine.c to iterate over the REG_EQUAL
> notes when evaluating combinations.  I believe the primary concern
> is that combine is already doing an exponential amount of work,
> so adding another multiplicative factor may be prohibitive.

I don't think this is combine's job.  It's job is to smush together
machine instructions to make cisc-y things.  It does that job reasonably well.

What you're looking for is another kind of CSE.

The ones we have at present are all geared toward THING->REG,
REG->REG, and REG->CONST.  There is no REG->THING folding, which
is what you'd need to be able to bring all the pieces together
to notice that ABS and 0.0 were being compared.

This is not something we can address in the short term.

In the middle term, all the pieces are there for this to happen
in cse.c; whether this would slow things down even further is
something that would have to be examined.

In the long term, this would want to be handled by the tree-ssa
stuff.  This is a bit easier when you don't have nasty COMPARE
rtxs getting in the way, and everything's in SSA form for easy
lookup.


r~



More information about the Gcc-bugs mailing list