From 0dcd6f42e551451cb9e268e8b9a2647c36f505b8 Mon Sep 17 00:00:00 2001 From: Kaz Kojima Date: Fri, 4 Jul 2008 20:53:18 +0000 Subject: [PATCH] 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 --- gcc/ChangeLog | 6 ++++++ gcc/config/sh/sh.h | 6 +++--- 2 files changed, 9 insertions(+), 3 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index df56c9ecd62..f5180863e77 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,9 @@ +2008-07-04 Kaz Kojima + + PR target/36684 + * config/sh/sh.h (OVERRIDE_OPTIONS): Disable -fschedule-insns + for PIC. + 2008-07-04 Jakub Jelinek * 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 2ff4a81f9b6..5204847abc5 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 \ -- 2.30.2