This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
Re: target/8087: sparc-sun-solaris2.7 C testsuite failures inexecute/20020720-1.c w/-m64 or on sparcv9/sparc64
- From: Roger Sayle <roger at eyesopen dot com>
- To: "David S. Miller" <davem at redhat dot com>
- Cc: <ghazi at caip dot rutgers dot edu>, <gcc-bugs at gcc dot gnu dot org>, <jakub at redhat dot com>, <rth at redhat dot com>
- Date: Thu, 3 Oct 2002 13:49:26 -0600 (MDT)
- Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures inexecute/20020720-1.c w/-m64 or on sparcv9/sparc64
> 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].
Roger
--