From: kkojima Date: Mon, 17 Oct 2005 12:42:51 +0000 (+0000) Subject: * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns X-Git-Tag: upstream/4.9.2~58147 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=254d20923845d285f650920285cdc3e92d906071;p=platform%2Fupstream%2Flinaro-gcc.git * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns to 2 if it's already non-zero. (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions is set and warn about it if flag_schedule_insns is 1. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@105496 138bc75d-0d04-0410-961f-82ee72b054a4 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc5a5e9..9825d74 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2005-10-17 Kaz Kojima + + * config/sh/sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns + to 2 if it's already non-zero. + (OVERRIDE_OPTIONS): Clear flag_schedule_insns if flag_exceptions + is set and warn about it if flag_schedule_insns is 1. + 2005-10-17 Paul Woegerer * config/crx/crx.md: Compare-and-branch instructions need to diff --git a/gcc/config/sh/sh.h b/gcc/config/sh/sh.h index 306da7a..486cc97 100644 --- a/gcc/config/sh/sh.h +++ b/gcc/config/sh/sh.h @@ -486,6 +486,10 @@ do { \ flag_finite_math_only. We set it to 2 here so we know if the user \ explicitly requested this to be on or off. */ \ flag_finite_math_only = 2; \ + /* If flag_schedule_insns is 1, we set it to 2 here so we know if \ + the user explicitly requested this to be on or off. */ \ + if (flag_schedule_insns > 0) \ + flag_schedule_insns = 2; \ } while (0) #define ASSEMBLER_DIALECT assembler_dialect @@ -661,6 +665,17 @@ do { \ SH3 and lower as they give spill failures for R0. */ \ if (!TARGET_HARD_SH4) \ flag_schedule_insns = 0; \ + /* ??? Current exception handling places basic block boundaries \ + after call_insns. It causes the high pressure on R0 and gives \ + spill failures for R0 in reload. See PR 22553 and the thread \ + on gcc-patches \ + . */ \ + else if (flag_exceptions) \ + { \ + if (flag_schedule_insns == 1) \ + warning (0, "ignoring -fschedule-insns because of exception handling bug"); \ + flag_schedule_insns = 0; \ + } \ } \ \ if (align_loops == 0) \