OSDN Git Service

* config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
authorkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 May 2009 22:49:25 +0000 (22:49 +0000)
committerkkojima <kkojima@138bc75d-0d04-0410-961f-82ee72b054a4>
Tue, 12 May 2009 22:49:25 +0000 (22:49 +0000)
unless -fschedule-insns is specified.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@147454 138bc75d-0d04-0410-961f-82ee72b054a4

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

index 3a9c2b5..3d31637 100644 (file)
@@ -1,5 +1,10 @@
 2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
 
+       * config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns
+       unless -fschedule-insns is specified.
+
+2009-05-12  Kaz Kojima  <kkojima@gcc.gnu.org>
+
        PR target/39561
        * config/sh/sh.h (OPTIMIZATION_OPTIONS): Don't set
        TARGET_EXPAND_CBRANCHDI4.
index 8d73615..d63a7d6 100644 (file)
@@ -709,8 +709,9 @@ do {                                                                        \
       /* Never run scheduling before reload, since that can            \
         break global alloc, and generates slower code anyway due       \
         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 \
+      /* Enable sched1 for SH4 if the user explicitly requests.                \
+        When sched1 is enabled, the ready queue will be reordered by   \
+        the target hooks if pressure is high.  We can not do this for  \
         PIC, SH3 and lower as they give spill failures for R0.  */     \
       if (!TARGET_HARD_SH4 || flag_pic)                                        \
         flag_schedule_insns = 0;                                       \
@@ -725,6 +726,8 @@ do {                                                                        \
            warning (0, "ignoring -fschedule-insns because of exception handling bug"); \
          flag_schedule_insns = 0;                                      \
        }                                                               \
+      else if (flag_schedule_insns == 2)                               \
+       flag_schedule_insns = 0;                                        \
     }                                                                  \
                                                                        \
   if (align_loops == 0)                                                        \