This is the mail archive of the
gcc-bugs@gcc.gnu.org
mailing list for the GCC project.
[Bug target/52684] [4.7 regression] glibc long double math tests fail on sparc 64-bit
- From: "davem at gcc dot gnu.org" <gcc-bugzilla at gcc dot gnu dot org>
- To: gcc-bugs at gcc dot gnu dot org
- Date: Wed, 02 May 2012 07:23:56 +0000
- Subject: [Bug target/52684] [4.7 regression] glibc long double math tests fail on sparc 64-bit
- Auto-submitted: auto-generated
- References: <bug-52684-4@http.gcc.gnu.org/bugzilla/>
http://gcc.gnu.org/bugzilla/show_bug.cgi?id=52684
--- Comment #8 from davem at gcc dot gnu.org 2012-05-02 07:23:56 UTC ---
I can't see how the current DSE code can properly handle this case, and I'm
surprised this doesn't trigger more often.
The outgoing args are stored to offsets of FRAME_POINTER_REGNUM, even
though this is before reload. This causes DSE to set ->frame_related
However I can't see anything that takes into account that these locations in
the frame are read by the CALL_INSN.
There is some weird commentary in the description of the insn_info->frame_read
field in dse.c which talks about how "the stores related to outgoing arguments
are stack pointer based and thus deemed of non-constant base in this pass" but
as explained above that is simply not true here.