Commit 9e4b13a7 by Steven Bosscher Committed by Roger Sayle

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
parent 7c66d5f5
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> 2003-08-31 Olivier Hainque <hainque@act-europe.fr>
* builtins.c (expand_builtin_setjmp): Use emit_jump to jump around * 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) ...@@ -5419,7 +5419,8 @@ expand_end_case_type (tree orig_index, tree orig_type)
because we can optimize it. */ because we can optimize it. */
else if (count < case_values_threshold () 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 /* RANGE may be signed, and really large ranges will show up
as negative numbers. */ as negative numbers. */
|| compare_tree_int (range, 0) < 0 || compare_tree_int (range, 0) < 0
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment