When copy propagation is called from the loop optimizer, copy prop does not update the loop closed SSA form, and we end up on a representation that crashes on verify_loop_closed_ssa ().
This bug appeared on the Graphite branch with -O3 on the attached testcase reduced from perlbench. Note that the graphite pass does not execute for this testcase, as there are more than 100 basic blocks in its CFG, only the cleanup passes that are scheduled after the graphite pass are run: so this bug is not related to Graphite, and could also occur in the current pass ordering after we build the loop closed SSA form: NEXT_PASS (pass_tree_loop_init); NEXT_PASS (pass_copy_prop); NEXT_PASS (pass_dce_loop); NEXT_PASS (pass_lim); -- Summary: copy prop breaks loop closed SSA form Product: gcc Version: 4.5.0 Status: UNCONFIRMED Severity: normal Priority: P3 Component: middle-end AssignedTo: unassigned at gcc dot gnu dot org ReportedBy: spop at gcc dot gnu dot org http://gcc.gnu.org/bugzilla/show_bug.cgi?id=43464