aboutsummaryrefslogtreecommitdiff
path: root/gcc/config/mmix/mmix.c
diff options
context:
space:
mode:
Diffstat (limited to 'gcc/config/mmix/mmix.c')
-rw-r--r--gcc/config/mmix/mmix.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/gcc/config/mmix/mmix.c b/gcc/config/mmix/mmix.c
index ce10a1b..293a2f5 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