From 102375cc1638bad5d52e899704dbd8d3afa0b557 Mon Sep 17 00:00:00 2001 From: Georg-Johann Lay Date: Fri, 8 Jun 2012 18:32:25 +0000 Subject: [PATCH] avr.c (avr_case_values_threshold): Return 7. * config/avr/avr.c (avr_case_values_threshold): Return 7. From-SVN: r188336 --- gcc/ChangeLog | 4 ++++ gcc/config/avr/avr.c | 12 ++++++++++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 19cbadefd04..1026c9002cc 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,7 @@ +2012-06-08 Georg-Johann Lay + + * config/avr/avr.c (avr_case_values_threshold): Return 7. + 2012-06-07 Andreas Schwab * genhooks.c (main): Set progname. diff --git a/gcc/config/avr/avr.c b/gcc/config/avr/avr.c index 208f650c9af..cd1a4af36b5 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; } -- 2.30.2