Author: Mikael Pettersson <mikpe@it.uu.se>
authorMikael Pettersson <mikpe@it.uu.se>
Sun, 31 Jul 2011 15:00:58 +0000 (17:00 +0200)
committerAndreas Schwab <schwab@gcc.gnu.org>
Sun, 31 Jul 2011 15:00:58 +0000 (15:00 +0000)
PR target/47908
* gcc/config/m68k/m68k.c (m68k_override_options_after_change): New function.
Disable instruction scheduling for non-ColdFire targets.
(TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.

From-SVN: r176975

gcc/ChangeLog
gcc/config/m68k/m68k.c

index c10b1e0ade9dcdc7c9f82191cc182d6a2fa1ea5d..b637de28a07b5c25227e082123bcc34e6dff078b 100644 (file)
@@ -1,3 +1,10 @@
+2011-07-31  Mikael Pettersson  <mikpe@it.uu.se>
+
+       PR target/47908
+       * config/m68k/m68k.c (m68k_override_options_after_change): New function.
+       Disable instruction scheduling for non-ColdFire targets.
+       (TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE): Define.
+
 2011-07-31  Revital Eres  <revital.eres@linaro.org>
 
        * ddg.c (create_ddg_dep_from_intra_loop_link): Remove the creation
index c0621c1fce1f49e410aabbdc35babe64adb7340d..8b57d6cd7403ca23bf0c0ff7c1a844d5062d625c 100644 (file)
@@ -136,6 +136,7 @@ static bool m68k_can_eliminate (const int, const int);
 static void m68k_conditional_register_usage (void);
 static bool m68k_legitimate_address_p (enum machine_mode, rtx, bool);
 static void m68k_option_override (void);
+static void m68k_override_options_after_change (void);
 static rtx find_addr_reg (rtx);
 static const char *singlemove_string (rtx *);
 static void m68k_output_mi_thunk (FILE *, tree, HOST_WIDE_INT,
@@ -235,6 +236,9 @@ static bool m68k_cannot_force_const_mem (enum machine_mode mode, rtx x);
 #undef TARGET_OPTION_OVERRIDE
 #define TARGET_OPTION_OVERRIDE m68k_option_override
 
+#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE
+#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE m68k_override_options_after_change
+
 #undef TARGET_RTX_COSTS
 #define TARGET_RTX_COSTS m68k_rtx_costs
 
@@ -634,6 +638,19 @@ m68k_option_override (void)
     }
 }
 
+/* Implement TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE.  */
+
+static void
+m68k_override_options_after_change (void)
+{
+  if (m68k_sched_cpu == CPU_UNKNOWN)
+    {
+      flag_schedule_insns = 0;
+      flag_schedule_insns_after_reload = 0;
+      flag_modulo_sched = 0;
+    }
+}
+
 /* Generate a macro of the form __mPREFIX_cpu_NAME, where PREFIX is the
    given argument and NAME is the argument passed to -mcpu.  Return NULL
    if -mcpu was not passed.  */