Original patch from gentoo: gentoo/src/patchsets/gcc/4.3.1/gentoo/18_all_904-flatten-switch-stmt-00.patch
http://gcc.gnu.org/ml/gcc-patches/2007-04/msg00927.html

Hi,

The attached patch makes sure that we create smaller object code for
simple switch statements. We just make sure to flatten the switch
statement into an if-else chain, basically.

This fixes a size-regression as compared to gcc-3.4, as can be seen
below.

2007-04-15  Bernhard Fischer  <..>

	* stmt.c (expand_case): Do not create a complex binary tree when
	optimizing for size but rather use the simple ordered list.
	(emit_case_nodes): do not emit jumps to the default_label when
	optimizing for size.

Not regtested so far.
Comments?

Attached is the test switch.c mentioned below.

$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
gcc-$i  -DCHAIN -Os -o switch-CHAIN-$i.o -c switch.c ;done
$ for i in 2.95 3.3 3.4 4.0 4.1 4.2.orig-HEAD 4.3.orig-HEAD 4.3-HEAD;do
gcc-$i  -UCHAIN -Os -o switch-$i.o -c switch.c ;done

$ size switch-*.o
   text	   data	    bss	    dec	    hex	filename
    169	      0	      0	    169	     a9	switch-2.95.o
    115	      0	      0	    115	     73	switch-3.3.o
    103	      0	      0	    103	     67	switch-3.4.o
    124	      0	      0	    124	     7c	switch-4.0.o
    124	      0	      0	    124	     7c	switch-4.1.o
    124	      0	      0	    124	     7c	switch-4.2.orig-HEAD.o
     95	      0	      0	     95	     5f	switch-4.3-HEAD.o
    124	      0	      0	    124	     7c	switch-4.3.orig-HEAD.o
    166	      0	      0	    166	     a6	switch-CHAIN-2.95.o
    111	      0	      0	    111	     6f	switch-CHAIN-3.3.o
     95	      0	      0	     95	     5f	switch-CHAIN-3.4.o
     95	      0	      0	     95	     5f	switch-CHAIN-4.0.o
     95	      0	      0	     95	     5f	switch-CHAIN-4.1.o
     95	      0	      0	     95	     5f	switch-CHAIN-4.2.orig-HEAD.o
     95	      0	      0	     95	     5f	switch-CHAIN-4.3-HEAD.o
     95	      0	      0	     95	     5f	switch-CHAIN-4.3.orig-HEAD.o


Content-Type: text/x-diff; charset=us-ascii
Content-Disposition: attachment; filename="gcc-4.3.gcc-flatten-switch-stmt.00.diff"

diff -durN gcc-4.3.1.orig/gcc/stmt.c gcc-4.3.1/gcc/stmt.c
--- gcc-4.3.1.orig/gcc/stmt.c	2008-05-09 20:12:13.000000000 +0200
+++ gcc-4.3.1/gcc/stmt.c	2008-06-10 14:57:58.000000000 +0200
@@ -2509,7 +2509,11 @@
 	  use_cost_table
 	    = (TREE_CODE (orig_type) != ENUMERAL_TYPE
 	       && estimate_case_costs (case_list));
-	  balance_case_nodes (&case_list, NULL);
+	  /* When optimizing for size, we want a straight list to avoid
+	     jumps as much as possible. This basically creates an if-else
+	     chain.  */
+	  if (!optimize_size)
+	    balance_case_nodes (&case_list, NULL);
 	  emit_case_nodes (index, case_list, default_label, index_type);
 	  emit_jump (default_label);
 	}
@@ -3067,6 +3071,7 @@
 	    {
 	      if (!node_has_low_bound (node, index_type))
 		{
+		  if (!optimize_size) /* don't jl to the .default_label. */
 		  emit_cmp_and_jump_insns (index,
 					   convert_modes
 					   (mode, imode,
