diff options
Diffstat (limited to 'gcc/config/mmix/mmix.c')
-rw-r--r-- | gcc/config/mmix/mmix.c | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c index ce10a1b9bd0..293a2f5bde6 100644 --- a/gcc/config/mmix/mmix.c +++ b/gcc/config/mmix/mmix.c @@ -114,6 +114,7 @@ rtx mmix_compare_op1; static int mmix_output_destination_register; static void mmix_option_override (void); +static void mmix_option_optimization (int, int); static void mmix_asm_output_source_filename (FILE *, const char *); static void mmix_output_shiftvalue_op_from_str (FILE *, const char *, HOST_WIDEST_INT); @@ -236,6 +237,8 @@ static void mmix_trampoline_init (rtx, tree, rtx); #undef TARGET_OPTION_OVERRIDE #define TARGET_OPTION_OVERRIDE mmix_option_override +#undef TARGET_OPTION_OPTIMIZATION +#define TARGET_OPTION_OPTIMIZATION mmix_option_optimization struct gcc_target targetm = TARGET_INITIALIZER; @@ -259,6 +262,18 @@ mmix_option_override (void) } } +/* TARGET_OPTION_OPTIMIZATION. */ + +static void +mmix_option_optimization (int level, int size) +{ + if (level >= 1) + flag_regmove = 1; + + if (size || level > 1) + flag_omit_frame_pointer = 1; +} + /* INIT_EXPANDERS. */ void |