diff options
Diffstat (limited to 'gcc/config/pdp11/pdp11.c')
-rw-r--r-- | gcc/config/pdp11/pdp11.c | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/gcc/config/pdp11/pdp11.c b/gcc/config/pdp11/pdp11.c index 5629718..2812e95 100644 --- a/gcc/config/pdp11/pdp11.c +++ b/gcc/config/pdp11/pdp11.c @@ -145,6 +145,7 @@ decode_pdp11_d (const struct real_format *fmt ATTRIBUTE_UNUSED, /* rtx cc0_reg_rtx; - no longer needed? */ static bool pdp11_handle_option (size_t, const char *, int); +static void pdp11_option_optimization (int, int); static rtx find_addr_reg (rtx); static const char *singlemove_string (rtx *); static bool pdp11_assemble_integer (rtx, unsigned int, int); @@ -182,6 +183,8 @@ static void pdp11_trampoline_init (rtx, tree, rtx); (MASK_FPU | MASK_45 | MASK_ABSHI_BUILTIN | TARGET_UNIX_ASM_DEFAULT) #undef TARGET_HANDLE_OPTION #define TARGET_HANDLE_OPTION pdp11_handle_option +#undef TARGET_OPTION_OPTIMIZATION +#define TARGET_OPTION_OPTIMIZATION pdp11_option_optimization #undef TARGET_RTX_COSTS #define TARGET_RTX_COSTS pdp11_rtx_costs @@ -218,6 +221,21 @@ pdp11_handle_option (size_t code, const char *arg ATTRIBUTE_UNUSED, } } +/* Implement TARGET_OPTION_OPTIMIZATION. */ + +static void +pdp11_option_optimization (int level, int size ATTRIBUTE_UNUSED) +{ + flag_finite_math_only = 0; + flag_trapping_math = 0; + flag_signaling_nans = 0; + if (level >= 3) + { + flag_omit_frame_pointer = 1; + /* flag_unroll_loops = 1; */ + } +} + /* Nonzero if OP is a valid second operand for an arithmetic insn. */ int |