[Bug target/36782] [4.3/4.4 Regression] SH: spill failure in class 'R0_REGS' with -fpic

kkojima at gcc dot gnu dot org gcc-bugzilla@gcc.gnu.org
Sat Jul 12 23:54:00 GMT 2008



------- Comment #3 from kkojima at gcc dot gnu dot org  2008-07-12 23:53 -------
I've added a reduced testcase and confirmed that 4.2.4 works too.
The RTL dumps show what is going on in the problematic case.
The backend creates a REG_EQUAL note for the GOT access and CSE
pass 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.
The attached patch removes this note.  I'll test it when 4.3/4.4
can be built for SH again.

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



-- 

kkojima at gcc dot gnu dot org changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |kkojima at gcc dot gnu dot
                   |                            |org
             Status|UNCONFIRMED                 |NEW
     Ever Confirmed|0                           |1
           Keywords|                            |ice-on-valid-code
      Known to fail|                            |4.3.1 4.4.0
      Known to work|                            |4.2.4
   Last reconfirmed|0000-00-00 00:00:00         |2008-07-12 23:53:41
               date|                            |
            Summary|php-5.2.5, error: unable to |[4.3/4.4 Regression] SH:
                   |find a register to spill in |spill failure in class
                   |class 'R0_REGS'             |'R0_REGS' with -fpic


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36782



More information about the Gcc-bugs mailing list