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

Reply via email to