This is the mail archive of the
gcc-patches@gcc.gnu.org
mailing list for the GCC project.
[patch committed] Fix PR target/36782
- From: Kaz Kojima <kkojima at rr dot iij4u dot or dot jp>
- To: gcc-patches at gcc dot gnu dot org
- Date: Wed, 16 Jul 2008 07:46:00 +0900 (JST)
- Subject: [patch committed] Fix PR target/36782
PR target/36782 is a yet another spill failure in class 'R0_REGS'
on SH which is a 4.3/4.4 regression.
The backend creates a REG_EQUAL note for the GOT access and CSE
locates a memory access after the result is set to R0 according
to this note. Unfortunately this results a spill failure because
the above memory access requires R0 for reload.
I've applied the attached patch which removes this note on trunk
and 4.3-branch. The patch is tested with bootstrap and the top
level "make -k check" on sh4-unknown-linux-gnu for both branches.
Regards,
kaz
--
2008-07-15 Kaz Kojima <kkojima@gcc.gnu.org>
PR target/36782
* config/sh/sh.md (symGOT_load): Don't add REG_EQUAL note.
--- ORIG/trunk/gcc/config/sh/sh.md 2008-04-27 13:53:04.000000000 +0900
+++ INTEST/trunk/gcc/config/sh/sh.md 2008-07-13 08:38:15.000000000 +0900
@@ -8880,9 +8880,6 @@ label:
/* ??? Should we have a special alias set for the GOT? */
insn = emit_move_insn (operands[0], mem);
- set_unique_reg_note (insn, REG_EQUAL,
- XVECEXP (XEXP (operands[1], 0), 0, 0));
-
DONE;
}")