With the following patch, both testcases for tree if conversion (gcc.dg/tree-ssa/ifc-20040816-1.c and gcc.dg/tree-ssa/ifc-20040816-2.c) ICE, because they produce wrong ssa.
I was unable to prepare a testcase for clean branch, however the patch obviously should not cause any problems. Index: tree-optimize.c =================================================================== RCS file: /cvs/gcc/gcc/gcc/tree-optimize.c,v retrieving revision 2.65 diff -c -3 -p -r2.65 tree-optimize.c *** tree-optimize.c 30 Nov 2004 15:38:33 -0000 2.65 --- tree-optimize.c 15 Dec 2004 01:01:15 -0000 *************** init_tree_optimization_passes (void) *** 378,383 **** --- 378,385 ---- NEXT_PASS (pass_may_alias); NEXT_PASS (pass_split_crit_edges); NEXT_PASS (pass_pre); + NEXT_PASS (pass_dominator); + NEXT_PASS (pass_dce); NEXT_PASS (pass_loop); NEXT_PASS (pass_dominator); NEXT_PASS (pass_redundant_phi); -- Summary: ICE in tree-if-conv Product: gcc Version: 4.0.0 Status: UNCONFIRMED Keywords: ice-on-valid-code Severity: normal Priority: P2 Component: tree-optimization AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: rakdver at gcc dot gnu dot org CC: dpatel at apple dot com,gcc-bugs at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=19067