From d123bf41c91c7eeb4672ad126317dfbb2930b034 Mon Sep 17 00:00:00 2001 From: DJ Delorie Date: Wed, 20 Oct 2010 16:37:54 -0400 Subject: m32c.c (m32c_option_override): Always disable function-cse in 16-bit mode. * config/m32c/m32c.c (m32c_option_override): Always disable function-cse in 16-bit mode. Indirect calls are always worse than direct calls as there is no 16-bit indirect call opcode. (m32c_override_options_after_change): New, likewise. From-SVN: r165737 --- gcc/config/m32c/m32c.c | 15 +++++++++++++++ 1 file changed, 15 insertions(+) (limited to 'gcc/config/m32c/m32c.c') diff --git a/gcc/config/m32c/m32c.c b/gcc/config/m32c/m32c.c index d62b4f2..39b3393 100644 --- a/gcc/config/m32c/m32c.c +++ b/gcc/config/m32c/m32c.c @@ -429,6 +429,21 @@ m32c_option_override (void) /* This target defaults to strict volatile bitfields. */ if (flag_strict_volatile_bitfields < 0) flag_strict_volatile_bitfields = 1; + + /* r8c/m16c have no 16-bit indirect call, so thunks are involved. + This is always worse than an absolute call. */ + if (TARGET_A16) + flag_no_function_cse = 1; +} + +#undef TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE +#define TARGET_OVERRIDE_OPTIONS_AFTER_CHANGE m32c_override_options_after_change + +static void +m32c_override_options_after_change (void) +{ + if (TARGET_A16) + flag_no_function_cse = 1; } /* Defining data structures for per-function information */ -- cgit v1.1