diff options
author | Steven Bosscher <steven@gcc.gnu.org> | 2003-08-31 13:59:33 +0000 |
---|---|---|
committer | Roger Sayle <sayle@gcc.gnu.org> | 2003-08-31 13:59:33 +0000 |
commit | 9e4b13a79edbe22a7a4d20f0d4aefe59b9b2380b (patch) | |
tree | 2943e960a71d6eeaa5a2638ab20272ec65e903d9 | |
parent | 7c66d5f5f91c0e83d53ad9f9fbc129675d0dea08 (diff) | |
download | gcc-9e4b13a79edbe22a7a4d20f0d4aefe59b9b2380b.zip gcc-9e4b13a79edbe22a7a4d20f0d4aefe59b9b2380b.tar.gz gcc-9e4b13a79edbe22a7a4d20f0d4aefe59b9b2380b.tar.bz2 |
re PR middle-end/11823 (Optimizing large jump tables for switch statements)
PR middle-end/11823
* stmt.c (expand_end_case_type): Only use jump tables for dense
switch statements when optimizing for size.
Co-Authored-By: Roger Sayle <roger@eyesopen.com>
From-SVN: r70959
-rw-r--r-- | gcc/ChangeLog | 7 | ||||
-rw-r--r-- | gcc/stmt.c | 3 |
2 files changed, 9 insertions, 1 deletions
diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 790f581..422ceb9 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,10 @@ +2003-08-31 Steven Bosscher <steven@gcc.gnu.org> + Roger Sayle <roger@eyesopen.com> + + PR middle-end/11823 + * stmt.c (expand_end_case_type): Only use jump tables for dense + switch statements when optimizing for size. + 2003-08-31 Olivier Hainque <hainque@act-europe.fr> * builtins.c (expand_builtin_setjmp): Use emit_jump to jump around @@ -5419,7 +5419,8 @@ expand_end_case_type (tree orig_index, tree orig_type) because we can optimize it. */ else if (count < case_values_threshold () - || compare_tree_int (range, 10 * count) > 0 + || compare_tree_int (range, + (optimize_size ? 3 : 10) * count) > 0 /* RANGE may be signed, and really large ranges will show up as negative numbers. */ || compare_tree_int (range, 0) < 0 |