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
This commit is contained in:
parent
7c66d5f5f9
commit
9e4b13a79e
2 changed files with 9 additions and 1 deletions
|
@ -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
|
||||
|
|
Loading…
Add table
Reference in a new issue