aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2009-05-12 22:49:25 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2009-05-12 22:49:25 +0000
commit2b703e1aa2bba418175450095bfed7e38da8eeab (patch)
treeeed33ffd668d942457a6027f966dc2a27a70e925
parentc3537723056c480ac4042581d4b82e536ecad9c5 (diff)
downloadgcc-2b703e1aa2bba418175450095bfed7e38da8eeab.zip
gcc-2b703e1aa2bba418175450095bfed7e38da8eeab.tar.gz
gcc-2b703e1aa2bba418175450095bfed7e38da8eeab.tar.bz2
sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns unless -fschedule-insns is specified.
* config/sh/sh.h (OVERRIDE_OPTIONS): Clear flag_schedule_insns unless -fschedule-insns is specified. From-SVN: r147454
-rw-r--r--gcc/ChangeLog5
-rw-r--r--gcc/config/sh/sh.h7
2 files changed, 10 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index 3a9c2b5..3d31637 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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.
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 8d73615..d63a7d6 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -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) \