https://gcc.gnu.org/bugzilla/show_bug.cgi?id=61757
--- Comment #8 from Andreas Schwab <sch...@linux-m68k.org> --- $ diff -u gcc-201407{08,10}/Build/20030922-2.c.079t.dom1 --- gcc-20140708/Build/20030922-2.c.079t.dom1 2014-07-10 12:25:20.886372197 +0200 +++ gcc-20140710/Build/20030922-2.c.079t.dom1 2014-07-10 12:25:11.460420770 +0200 @@ -12,7 +12,6 @@ ;; 4 succs { 5 6 } ;; 5 succs { 1 } ;; 6 succs { 1 } -Removing basic block 4 rgn_rank (struct rtx_def * insn1, struct rtx_def * insn2) { int * block_to_bb.0_2; @@ -43,19 +42,25 @@ if (_8 != _14) goto <bb 3>; else - goto <bb 5>; + goto <bb 6>; <bb 3>: target_bb.1_15 = target_bb; if (_14 == target_bb.1_15) goto <bb 4>; else - goto <bb 5>; + goto <bb 6>; <bb 4>: - return 1; + if (_8 != target_bb.1_15) + goto <bb 5>; + else + goto <bb 6>; <bb 5>: + return 1; + + <bb 6>: return; }