m68hc11.h (OPTIMIZATION_OPTIONS): Define.
authorStephane Carrez <stcarrez@nerim.fr>
Fri, 28 Jun 2002 20:49:36 +0000 (22:49 +0200)
committerStephane Carrez <ciceron@gcc.gnu.org>
Fri, 28 Jun 2002 20:49:36 +0000 (22:49 +0200)
* config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
* config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
Declare.
* config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
do not reorder basic blocks at the end when optimizing for size.

From-SVN: r55079

gcc/ChangeLog
gcc/config/m68hc11/m68hc11-protos.h
gcc/config/m68hc11/m68hc11.c
gcc/config/m68hc11/m68hc11.h

index 0f38b0f..1f8fbd5 100644 (file)
@@ -7,6 +7,14 @@
 
 2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
 
+       * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Define.
+       * config/m68hc11/m68hc11-protos.h (m68hc11_optimization_options):
+       Declare.
+       * config/m68hc11/m68hc11.c (m68hc11_optimization_options): New,
+       do not reorder basic blocks at the end when optimizing for size.
+
+2002-06-28  Stephane Carrez  <stcarrez@nerim.fr>
+
        * config/m68hc11/m68hc11.c (autoinc_mode): New function.
        (m68hc11_make_autoinc_notes): New function.
        (m68hc11_split_move): Be very cautious when spliting a move with
index ee5bd6a..20bc83e 100644 (file)
@@ -1,6 +1,6 @@
 /* Prototypes for exported functions defined in m68hc11.c
    Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-   Contributed by Stephane Carrez (stcarrez@worldnet.fr)
+   Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
 This file is part of GNU CC.
 
@@ -21,6 +21,7 @@ Boston, MA 02111-1307, USA.  */
 
 
 extern int m68hc11_override_options PARAMS((void));
+extern int m68hc11_optimization_options PARAMS((int,int));
 extern void m68hc11_conditional_register_usage PARAMS((void));
 extern int hard_regno_mode_ok PARAMS((int, enum machine_mode));
 
index 4fb054d..be7b24b 100644 (file)
@@ -288,6 +288,21 @@ m68hc11_override_options ()
 }
 
 
+int
+m68hc11_optimization_options (level, size)
+     int level ATTRIBUTE_UNUSED;
+     int size;
+{
+  /* When optimizing for size, do not reorder basic blocks because
+     it duplicates some insns for speed and this results in larder code.
+     This reordering can still be enabled but explicitly.  */
+  if (size)
+    {
+      flag_reorder_blocks = 0;
+    }
+  return 0;
+}
+
 void
 m68hc11_conditional_register_usage ()
 {
index 42950e7..467862f 100644 (file)
@@ -1,7 +1,7 @@
 /* Definitions of target machine for GNU compiler.
    Motorola 68HC11 and 68HC12.
    Copyright (C) 1999, 2000, 2001, 2002 Free Software Foundation, Inc.
-   Contributed by Stephane Carrez (stcarrez@worldnet.fr)
+   Contributed by Stephane Carrez (stcarrez@nerim.fr)
 
 This file is part of GNU CC.
 
@@ -214,6 +214,10 @@ extern const char *m68hc11_soft_reg_count;
 
 #define OVERRIDE_OPTIONS       m68hc11_override_options ();
 
+/* Define this to change the optimizations performed by default.  */
+#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
+m68hc11_optimization_options(LEVEL, SIZE)
+
 \f
 /* Define cost parameters for a given processor variant.  */
 struct processor_costs {