This patch is extracted from http://gcc.gnu.org/ml/gcc-patches/2004-01/msg00791.html - Juergen "George" Sawinski --- gcc-3.2.3/gcc/cfgcleanup.c.orig 2004-01-12 01:03:22.000000000 +0100 +++ gcc-3.2.3/gcc/cfgcleanup.c 2004-01-12 01:04:59.000000000 +0100 @@ -1640,7 +1640,7 @@ /* If the jump insn has side effects, we can't kill the edge. */ && (GET_CODE (b->end) != JUMP_INSN - || (flow2_completed + || (reload_completed ? simplejump_p (b->end) : onlyjump_p (b->end))) && merge_blocks (s, b, c, mode)) --- gcc-3.2.3/gcc/cfgrtl.c.orig 2004-01-12 01:03:40.000000000 +0100 +++ gcc-3.2.3/gcc/cfgrtl.c 2004-01-12 01:06:41.000000000 +0100 @@ -674,7 +674,7 @@ if (tmp || !onlyjump_p (insn)) return false; - if ((!optimize || flow2_completed) && tablejump_p (insn)) + if ((!optimize || reload_completed) && tablejump_p (insn)) return false; /* Avoid removing branch with side effects. */