summaryrefslogtreecommitdiff
blob: 0fc1dbe79847d9a38fd0b2115586bb53f3819017 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
gcc/

2011-07-29  Mikael Pettersson  <mikpe@it.uu.se>

	PR target/47908
	* config/m68k/m68k-protos.h (optimization_options): Declare.
	* config/m68k/m68k.c (optimization_options): New function.
	Disable instruction scheduling for non-ColdFire targets.
	* config/m68k/m68k.h (OPTIMIZATION_OPTIONS): Define.

--- gcc-4.5.3/gcc/config/m68k/m68k-protos.h.~1~	2009-05-18 09:54:44.000000000 +0200
+++ gcc-4.5.3/gcc/config/m68k/m68k-protos.h	2011-07-29 13:31:33.000000000 +0200
@@ -95,6 +95,7 @@ extern void m68k_expand_prologue (void);
 extern bool m68k_use_return_insn (void);
 extern void m68k_expand_epilogue (bool);
 extern void override_options (void);
+extern void optimization_options (int, int);
 extern const char *m68k_cpp_cpu_ident (const char *);
 extern const char *m68k_cpp_cpu_family (const char *);
 extern void init_68881_table (void);
--- gcc-4.5.3/gcc/config/m68k/m68k.c.~1~	2010-06-14 22:01:39.000000000 +0200
+++ gcc-4.5.3/gcc/config/m68k/m68k.c	2011-07-29 13:31:33.000000000 +0200
@@ -742,6 +742,17 @@ override_options (void)
     }
 }
 
+void
+optimization_options (int level ATTRIBUTE_UNUSED, int size ATTRIBUTE_UNUSED)
+{
+  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.  */
--- gcc-4.5.3/gcc/config/m68k/m68k.h.~1~	2009-09-22 17:49:54.000000000 +0200
+++ gcc-4.5.3/gcc/config/m68k/m68k.h	2011-07-29 13:31:33.000000000 +0200
@@ -276,6 +276,9 @@ along with GCC; see the file COPYING3.  
 
 #define OVERRIDE_OPTIONS   override_options()
 
+#define OPTIMIZATION_OPTIONS(LEVEL,SIZE) \
+  optimization_options ((LEVEL), (SIZE))
+
 /* These are meant to be redefined in the host dependent files */
 #define SUBTARGET_OVERRIDE_OPTIONS