This is the mail archive of the gcc-patches@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[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;
 }")
 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]