aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gcc/ChangeLog7
-rw-r--r--gcc/stmt.c3
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
diff --git a/gcc/stmt.c b/gcc/stmt.c
index 54c93be..9a8c0bc 100644
--- a/gcc/stmt.c
+++ b/gcc/stmt.c
@@ -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