aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKaz Kojima <kkojima@gcc.gnu.org>2008-07-04 20:53:18 +0000
committerKaz Kojima <kkojima@gcc.gnu.org>2008-07-04 20:53:18 +0000
commit0dcd6f42e551451cb9e268e8b9a2647c36f505b8 (patch)
tree597badc66894c00919dd15f8efe3887295ccc7b1
parent4acedca122b595670e54d836ccc4b96801e8bb99 (diff)
downloadgcc-0dcd6f42e551451cb9e268e8b9a2647c36f505b8.zip
gcc-0dcd6f42e551451cb9e268e8b9a2647c36f505b8.tar.gz
gcc-0dcd6f42e551451cb9e268e8b9a2647c36f505b8.tar.bz2
re PR target/36684 (spill failure for class 'R0_REGS' on sh4 with -fPIC -O2)
PR target/36684 * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns for PIC. From-SVN: r137487
-rw-r--r--gcc/ChangeLog6
-rw-r--r--gcc/config/sh/sh.h6
2 files changed, 9 insertions, 3 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog
index df56c9e..f518086 100644
--- a/gcc/ChangeLog
+++ b/gcc/ChangeLog
@@ -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
diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h
index 2ff4a81..5204847 100644
--- a/gcc/config/sh/sh.h
+++ b/gcc/config/sh/sh.h
@@ -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 \