patches/gcc/4.4.4/190-flatten-switch-stmt-00.patch
author Remy Bohmer <linux@bohmer.net>
Thu May 27 23:18:19 2010 +0200 (2010-05-27)
changeset 2060 51e4597b07fc
child 2148 ada9128c98b8
permissions -rw-r--r--
scripts: add option to strip all toolchain executables

To reduce filesizes of the toolchain and even improve build times
of projects to be build with this toolchain it is usefull to strip
the delivered toolchain executables. Since it is not likely that we
will debug the toolchain executables itself we do not need the
debug information inside the executables itself.

Signed-off-by: Remy Bohmer <linux@bohmer.net>
yann@1948
     1
diff -durN gcc-4.4.0.orig/gcc/stmt.c gcc-4.4.0/gcc/stmt.c
yann@1948
     2
yann@1948
     3
diff -durN gcc-4.4.4.orig/gcc/stmt.c gcc-4.4.4/gcc/stmt.c
yann@1948
     4
--- gcc-4.4.4.orig/gcc/stmt.c	2010-03-08 12:46:28.000000000 +0100
yann@1948
     5
+++ gcc-4.4.4/gcc/stmt.c	2010-05-16 19:12:31.000000000 +0200
yann@1948
     6
@@ -2377,7 +2377,11 @@
yann@1948
     7
 	  use_cost_table
yann@1948
     8
 	    = (TREE_CODE (orig_type) != ENUMERAL_TYPE
yann@1948
     9
 	       && estimate_case_costs (case_list));
yann@1948
    10
-	  balance_case_nodes (&case_list, NULL);
yann@1948
    11
+	  /* When optimizing for size, we want a straight list to avoid
yann@1948
    12
+	     jumps as much as possible. This basically creates an if-else
yann@1948
    13
+	     chain.  */
yann@1948
    14
+	  if (!optimize_size)
yann@1948
    15
+	    balance_case_nodes (&case_list, NULL);
yann@1948
    16
 	  emit_case_nodes (index, case_list, default_label, index_type);
yann@1948
    17
 	  if (default_label)
yann@1948
    18
 	    emit_jump (default_label);
yann@1948
    19
@@ -2943,6 +2947,7 @@
yann@1948
    20
 	    {
yann@1948
    21
 	      if (!node_has_low_bound (node, index_type))
yann@1948
    22
 		{
yann@1948
    23
+		  if (!optimize_size) /* don't jl to the .default_label. */
yann@1948
    24
 		  emit_cmp_and_jump_insns (index,
yann@1948
    25
 					   convert_modes
yann@1948
    26
 					   (mode, imode,