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

Roger Sayle
Thu Oct 3 13:04:00 GMT 2002

> The REG_EQUAL note is there, it says the value will be const_double
> 0.0 So what more should I be required to say in the RTL I output for
> the constant pool load before GCC will see what is going on? :-)

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 appreciate the issue.  Whilst working on a patch to evaluate
square roots at compile time, I was distressed to discover the
result of the calculation was simply being placed in a REG_EQUAL
note on the RTL, and therefore ignored by most passes.  The
result was that the final code contained a call to libc's sqrt!
[I've since fixed the problem without having to resort to
interpreting REG_EQUAL notes].


More information about the Gcc-bugs mailing list