diff options
author | DJ Delorie <dj@redhat.com> | 2010-10-20 16:37:54 -0400 |
---|---|---|
committer | DJ Delorie <dj@gcc.gnu.org> | 2010-10-20 16:37:54 -0400 |
commit | d123bf41c91c7eeb4672ad126317dfbb2930b034 (patch) | |
tree | 3472f0a527c8959b7c1b3332ff8443bd77ad9582 /gcc | |
parent | 582346ed66a6dc53e22426ae66d01d935e3595bc (diff) | |
download | gcc-d123bf41c91c7eeb4672ad126317dfbb2930b034.zip gcc-d123bf41c91c7eeb4672ad126317dfbb2930b034.tar.gz gcc-d123bf41c91c7eeb4672ad126317dfbb2930b034.tar.bz2 |
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
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/config/m32c/m32c.c | 15 |
2 files changed, 22 insertions, 0 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index beed454..7a67b09 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2010-10-20 DJ Delorie <dj@redhat.com> + + * 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. + 2010-10-20 Nathan Froyd <froydnj@codesourcery.com> * ifcvt.c (noce_emit_cmove): If both of the values are SUBREGs, try 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 */ |