+2002-08-01 Richard Henderson <rth@redhat.com>
+
+ * toplev.c (parse_options_and_default_flags): Don't set
+ flag_reorder_blocks for -Os.
+
+ * config/avr/avr.c (avr_optimization_options): Remove.
+ * config/avr/avr.h (OPTIMIZATION_OPTIONS): Remove.
+ * config/m68hc11/m68hc11.c (m68hc11_optimization_options): Remove.
+ * config/m68hc11/m68hc11.h (OPTIMIZATION_OPTIONS): Remove.
+
2002-08-01 H.J. Lu <hjl@gnu.org>
Richard Henderson <rth@redhat.com>
}
-void
-avr_optimization_options (level, size)
- int level ATTRIBUTE_UNUSED;
- int size;
-{
- if (size)
- flag_reorder_blocks = 0;
-}
-
-
/* Initialize TMP_REG_RTX and ZERO_REG_RTX */
void
avr_init_once ()
Don't use this macro to turn on various extra optimizations for
`-O'. That is what `OPTIMIZATION_OPTIONS' is for. */
-#define OPTIMIZATION_OPTIONS(LEVEL, SIZE) \
- avr_optimization_options (LEVEL, SIZE)
-
#define CAN_DEBUG_WITHOUT_FP
/* Define this macro if debugging can be performed even without a
frame pointer. If this macro is defined, GNU CC will turn on the
}
-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 ()
{
#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 {
align_jumps = 1;
align_labels = 1;
align_functions = 1;
+
+ /* Don't reorder blocks when optimizing for size because extra
+ jump insns may be created; also barrier may create extra padding.
+
+ More correctly we should have a block reordering mode that tried
+ to minimize the combined size of all the jumps. This would more
+ or less automatically remove extra jumps, but would also try to
+ use more short jumps instead of long jumps. */
+ flag_reorder_blocks = 0;
}
/* Initialize whether `char' is signed. */