From: Kaz Kojima Date: Mon, 17 Oct 2005 12:42:51 +0000 (+0000) Subject: sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns to 2 if it's already non-zero. X-Git-Url: https://git.libre-soc.org/?a=commitdiff_plain;h=e13602df833087e6f47f6a836eda700d2d1ebb20;p=gcc.git sh.h (OPTIMIZATION_OPTIONS): Set flag_schedule_insns to 2 if it's already non-zero. * 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. From-SVN: r105496 --- diff --git a/gcc/ChangeLog b/gcc/ChangeLog index bc5a5e9f45a..9825d7463eb 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 306da7aa5db..486cc97544d 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) \