[Bug rtl-optimization/51069] [4.7 Regression] ICE in verify_loop_structure, at cfgloop.c:1559

jakub at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Mon Dec 5 12:46:00 GMT 2011


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

Jakub Jelinek <jakub at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |hubicka at gcc dot gnu.org

--- Comment #3 from Jakub Jelinek <jakub at gcc dot gnu.org> 2011-12-05 12:46:05 UTC ---
CCing Honza, not familiar enough with remove_path/unroll.
#0  unloop (loop=0x7ffff133d880, irred_invalidated=0x7fffffffdeef "") at
../../gcc/cfgloopmanip.c:797
#1  0x0000000000675e53 in remove_path (e=0x7ffff146c900) at
../../gcc/cfgloopmanip.c:319
#2  0x00000000009ae07f in peel_loop_completely (loop=0x7ffff133d880) at
../../gcc/loop-unroll.c:514
#3  0x00000000009ad89f in peel_loops_completely (flags=2) at
../../gcc/loop-unroll.c:256
#4  0x00000000009ad640 in unroll_and_peel_loops (flags=2) at
../../gcc/loop-unroll.c:165
#5  0x00000000009a07e4 in rtl_unroll_and_peel_loops () at
../../gcc/loop-init.c:329

is called with
loop_2 (header = 6, latch = 21, niter = )
{
  bb_6 (preds = {bb_21 bb_45 }, succs = {bb_9 bb_7 })
  bb_9 (preds = {bb_6 }, succs = {bb_10 bb_11 })
  bb_11 (preds = {bb_9 }, succs = {bb_21 bb_12 })
  bb_21 (preds = {bb_11 }, succs = {bb_6 })
}
where bb_4, bb_12, bb_13 and bb_14 are BB_IRREDUCIBLE_LOOP, before this unroll
call verify_loop_structure passes, after it already fails.  Of course calling
mark_irreducible_loops () after peel_loops_completely () fixes this up and let
the testcase pass, but remove_path/unroll should figure it out if it
invalidates this property.



More information about the Gcc-bugs mailing list