diff options
author | Georg-Johann Lay <avr@gjlay.de> | 2012-06-08 18:32:25 +0000 |
---|---|---|
committer | Georg-Johann Lay <gjl@gcc.gnu.org> | 2012-06-08 18:32:25 +0000 |
commit | 102375cc1638bad5d52e899704dbd8d3afa0b557 (patch) | |
tree | 99a6b0ff22e48cf1f742d36c3ecc2f8b8114dd0e /gcc | |
parent | 98cf47d1a57c7c8f0541aa61488863f4864b0e40 (diff) | |
download | gcc-102375cc1638bad5d52e899704dbd8d3afa0b557.zip gcc-102375cc1638bad5d52e899704dbd8d3afa0b557.tar.gz gcc-102375cc1638bad5d52e899704dbd8d3afa0b557.tar.bz2 |
avr.c (avr_case_values_threshold): Return 7.
* config/avr/avr.c (avr_case_values_threshold): Return 7.
From-SVN: r188336
Diffstat (limited to 'gcc')
-rw-r--r-- | gcc/ChangeLog | 4 | ||||
-rw-r--r-- | gcc/config/avr/avr.c | 12 |
2 files changed, 14 insertions, 2 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 19cbade..1026c90 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-06-08 Georg-Johann Lay <avr@gjlay.de> + + * config/avr/avr.c (avr_case_values_threshold): Return 7. + 2012-06-07 Andreas Schwab <schwab@linux-m68k.org> * genhooks.c (main): Set progname. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 208f650..cd1a4af 100644 --- a/gcc/config/avr/avr.c +++ b/gcc/config/avr/avr.c @@ -9419,12 +9419,20 @@ avr_return_in_memory (const_tree type, const_tree fntype ATTRIBUTE_UNUSED) return false; } -/* Worker function for CASE_VALUES_THRESHOLD. */ + +/* Implement `CASE_VALUES_THRESHOLD'. */ +/* Supply the default for --param case-values-threshold=0 */ static unsigned int avr_case_values_threshold (void) { - return (!AVR_HAVE_JMP_CALL || TARGET_CALL_PROLOGUES) ? 8 : 17; + /* The exact break-even point between a jump table and an if-else tree + depends on several factors not available here like, e.g. if 8-bit + comparisons can be used in the if-else tree or not, on the + range of the case values, if the case value can be reused, on the + register allocation, etc. '7' appears to be a good choice. */ + + return 7; } |