* 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
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
/* 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.
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));
}
+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 ()
{
/* 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.
#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 {