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: "David S. Miller" <davem at redhat dot com>
- To: roger at eyesopen dot com
- Cc: davem at gcc dot gnu dot org, gcc-bugs at gcc dot gnu dot org, gcc-prs at gcc dot gnu dot org, ghazi at caip dot rutgers dot edu, rth at redhat dot com, jakub at redhat dot com, gcc-gnats at gcc dot gnu dot org
- Date: Mon, 07 Oct 2002 09:18:51 -0700 (PDT)
- Subject: Re: target/8087: sparc-sun-solaris2.7 C testsuite failures inexecute/20020720-1.c w/-m64 or on sparcv9/sparc64
- References: <20021007.090544.77258342.davem@redhat.com><Pine.LNX.4.33.0210071006220.25897-100000@www.eyesopen.com>
From: Roger Sayle <roger@eyesopen.com>
Date: Mon, 7 Oct 2002 10:08:04 -0600 (MDT)
The REG_EQUAL notes is a separate issue. The fixes that I'm still
investigating address the sparc64 backend's convoluted constant
pool loading code.
There is nothing convoluted about it. That's a perfectly valid
and fine way to output a load from the constant pool and expose
all of the instructions to the compiler for scheduling purposes.
It's very complicated to "defer" the full-blown load till later
in the compilatio if that's the idea you have. You have to
force the thing into a register early to get good code and
sane behavior.
Ignoring REG_EQUAL is a bug, and once that bug is fixed the sparc64
"convoluted" constant pool load works as well as "(set reg
(const_double 0.0))"