patches/gcc/4.2.1/260-flatten-switch-stmt-00.patch
author |
"Yann E. MORIN" <yann.morin.1998@anciens.enib.fr> |
|
Wed Oct 15 21:29:56 2008 +0000 (2008-10-15) |
changeset 940 |
f0f9ba3f98f2 |
parent 313 |
2f223aafc7cb
|
permissions |
-rw-r--r-- |
Cheesy kconfig stuff:
- silent/quiet/verbose build:
- ct-ng by default only prints quit messages, such as "CC xxx",
- if using V=0, nothing is printed,
- if using V=1, the full command lines are printed,
- other values are indeterminate,
- should help in debugging the kconfig stuff;
- complete kconfig/{,m}conf generation:
- fully dynamic dependencies on source files,
- compilation of .c into .o, then linking (instead of direct linking),
- VPATH usage when not --local;
Typo + a coment moved.
/trunk/kconfig/kconfig.mk | 140 87 53 0 +++++++++++++++++++++++++++++++++--------------------
/trunk/tools/tools.mk | 12 6 6 0 ++--
/trunk/steps.mk | 6 3 3 0 +-
/trunk/samples/samples.mk | 30 15 15 0 +++++-----
/trunk/ct-ng.in | 40 28 12 0 +++++++++++----
5 files changed, 139 insertions(+), 89 deletions(-)
yann@313
|
1 |
diff -durN gcc-4.2.1.orig/gcc/stmt.c gcc-4.2.1/gcc/stmt.c
|
yann@313
|
2 |
--- gcc-4.2.1.orig/gcc/stmt.c 2007-07-19 05:25:32.000000000 +0200
|
yann@313
|
3 |
+++ gcc-4.2.1/gcc/stmt.c 2007-08-03 20:37:19.000000000 +0200
|
yann@313
|
4 |
@@ -2512,7 +2512,11 @@
|
yann@313
|
5 |
use_cost_table
|
yann@313
|
6 |
= (TREE_CODE (orig_type) != ENUMERAL_TYPE
|
yann@313
|
7 |
&& estimate_case_costs (case_list));
|
yann@313
|
8 |
- balance_case_nodes (&case_list, NULL);
|
yann@313
|
9 |
+ /* When optimizing for size, we want a straight list to avoid
|
yann@313
|
10 |
+ jumps as much as possible. This basically creates an if-else
|
yann@313
|
11 |
+ chain. */
|
yann@313
|
12 |
+ if (!optimize_size)
|
yann@313
|
13 |
+ balance_case_nodes (&case_list, NULL);
|
yann@313
|
14 |
emit_case_nodes (index, case_list, default_label, index_type);
|
yann@313
|
15 |
emit_jump (default_label);
|
yann@313
|
16 |
}
|
yann@313
|
17 |
@@ -3070,6 +3074,7 @@
|
yann@313
|
18 |
{
|
yann@313
|
19 |
if (!node_has_low_bound (node, index_type))
|
yann@313
|
20 |
{
|
yann@313
|
21 |
+ if (!optimize_size) /* don't jl to the .default_label. */
|
yann@313
|
22 |
emit_cmp_and_jump_insns (index,
|
yann@313
|
23 |
convert_modes
|
yann@313
|
24 |
(mode, imode,
|