[Bug tree-optimization/58326] [4.9 Regression] ICE in check_loop_closed_ssa_use, at tree-ssa-loop-manip.c:551

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Sep 6 09:00:00 GMT 2013


http://gcc.gnu.org/bugzilla/show_bug.cgi?id=58326

--- Comment #5 from Richard Biener <rguenth at gcc dot gnu.org> ---
I think the issue is latent - the bitmap with changed blocks fed to
rewrite_into_loop_closed_ssa is the blocks scanned for _uses_, but as
far as I can see unloop sets the blocks that had a non-trivial update
of their loop-father which doesn't seem to be the right set as the
interesting block is not marked.

Reverting the patch papers over the issue as then the cfgcleanup done
passes an empty bitmap to loop-closed-ssa-rewrite which fixes up the
previous mistake.

Adding verify_loop_closed_ssa into rewrite_into_loop_closed_ssa
shows the bogous IL is appearing after

          unloop_loops (loop_closed_ssa_invalidated, &irred_invalidated);

          /* We can not use TODO_update_ssa_no_phi because VOPS gets confused. 
*/
          if (loop_closed_ssa_invalidated
              && !bitmap_empty_p (loop_closed_ssa_invalidated))
            rewrite_into_loop_closed_ssa (loop_closed_ssa_invalidated,
                                          TODO_update_ssa);
          else
            update_ssa (TODO_update_ssa);

(just looked at the -O2 code for now)



More information about the Gcc-bugs mailing list