re PR target/36684 (spill failure for class 'R0_REGS' on sh4 with -fPIC -O2)
authorKaz Kojima <kkojima@gcc.gnu.org>
Fri, 4 Jul 2008 20:53:18 +0000 (20:53 +0000)
committerKaz Kojima <kkojima@gcc.gnu.org>
Fri, 4 Jul 2008 20:53:18 +0000 (20:53 +0000)
PR target/36684
* config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
for PIC.

From-SVN: r137487

gcc/ChangeLog
gcc/config/sh/sh.h

index df56c9ecd62f4ef8e61678ca35faeafc8c8f59be..f5180863e774d86490d4188553adeb9773182802 100644 (file)
@@ -1,3 +1,9 @@
+2008-07-04  Kaz Kojima  <kkojima@gcc.gnu.org>
+
+       PR target/36684
+       * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns
+       for PIC.
+
 2008-07-04  Jakub Jelinek  <jakub@redhat.com>
 
        * tree-switch-conversion.c (build_one_array, gen_def_assigns): Use
index 2ff4a81f9b6b3ca7a00e7b4b0a5b6175e743ec57..5204847abc5d2e90fada3c23252e5aefa91d911a 100644 (file)
@@ -1,6 +1,6 @@
 /* Definitions of target machine for GNU compiler for Renesas / SuperH SH.
    Copyright (C) 1993, 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
-   2003, 2004, 2005, 2006, 2007 Free Software Foundation, Inc.
+   2003, 2004, 2005, 2006, 2007, 2008 Free Software Foundation, Inc.
    Contributed by Steve Chamberlain (sac@cygnus.com).
    Improved by Jim Wilson (wilson@cygnus.com).
 
@@ -712,8 +712,8 @@ do {                                                                        \
         to the pressure on R0.  */                                     \
       /* Enable sched1 for SH4; ready queue will be reordered by       \
         the target hooks when pressure is high. We can not do this for \
-        SH3 and lower as they give spill failures for R0.  */          \
-      if (!TARGET_HARD_SH4)                                            \
+        PIC, SH3 and lower as they give spill failures for R0.  */     \
+      if (!TARGET_HARD_SH4 || flag_pic)                                        \
         flag_schedule_insns = 0;                                       \
       /* ??? Current exception handling places basic block boundaries  \
         after call_insns.  It causes the high pressure on R0 and gives \