1.1 --- a/patches/gcc/4.2.2/904-flatten-switch-stmt-00.patch Mon Jul 28 21:08:01 2008 +0000
1.2 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000
1.3 @@ -1,24 +0,0 @@
1.4 -diff -durN gcc-4.2.1.orig/gcc/stmt.c gcc-4.2.1/gcc/stmt.c
1.5 ---- gcc-4.2.1.orig/gcc/stmt.c 2007-07-19 05:25:32.000000000 +0200
1.6 -+++ gcc-4.2.1/gcc/stmt.c 2007-08-03 20:37:19.000000000 +0200
1.7 -@@ -2512,7 +2512,11 @@
1.8 - use_cost_table
1.9 - = (TREE_CODE (orig_type) != ENUMERAL_TYPE
1.10 - && estimate_case_costs (case_list));
1.11 -- balance_case_nodes (&case_list, NULL);
1.12 -+ /* When optimizing for size, we want a straight list to avoid
1.13 -+ jumps as much as possible. This basically creates an if-else
1.14 -+ chain. */
1.15 -+ if (!optimize_size)
1.16 -+ balance_case_nodes (&case_list, NULL);
1.17 - emit_case_nodes (index, case_list, default_label, index_type);
1.18 - emit_jump (default_label);
1.19 - }
1.20 -@@ -3070,6 +3074,7 @@
1.21 - {
1.22 - if (!node_has_low_bound (node, index_type))
1.23 - {
1.24 -+ if (!optimize_size) /* don't jl to the .default_label. */
1.25 - emit_cmp_and_jump_insns (index,
1.26 - convert_modes
1.27 - (mode, imode,