This is the mail archive of the gcc-bugs@gcc.gnu.org mailing list for the GCC project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tree-optimization/81240] [7/8 Regression] ICE in dfs_enumerate_from


https://gcc.gnu.org/bugzilla/show_bug.cgi?id=81240

Richard Biener <rguenth at gcc dot gnu.org> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |NEW
   Last reconfirmed|                            |2017-06-28
                 CC|                            |law at gcc dot gnu.org
   Target Milestone|---                         |7.2
     Ever confirmed|0                           |1

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed.

#1  0x0000000000948646 in dfs_enumerate_from (
    bb=<basic_block 0x7ffff69e3750 (11)>, reverse=1, predicate=
    0x11a81ba <dbds_continue_enumeration_p(const_basic_block, void const*)>, 
    rslt=0x283fbf0, rslt_max=16, data=0x7ffff689d680)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/cfganal.c:1244
#2  0x00000000011a82e6 in determine_bb_domination_status (loop=0x7ffff69de420, 
    bb=<basic_block 0x7ffff689d680 (13)>)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/tree-ssa-threadupdate.c:1705
#3  0x00000000011a856e in thread_through_loop_header (loop=0x7ffff69de420, 
    may_peel_loop_headers=false)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/tree-ssa-threadupdate.c:1851
#4  0x00000000011aa150 in thread_through_all_blocks (
    may_peel_loop_headers=false)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/tree-ssa-threadupdate.c:2562
#5  0x000000000126411a in execute_vrp (warn_array_bounds_p=false)
    at /space/rguenther/src/svn/gcc-7-branch/gcc/tree-vrp.c:11759

I suppose loop->num_nodes is no longer accurate (sth before broke loops, not
unheard of in threading...)

1704      nblocks = dfs_enumerate_from (loop->latch, 1,
dbds_continue_enumeration_p,
1705                                    bblocks, loop->num_nodes, bb);

called from

1849      /* The target block must dominate the loop latch, otherwise we would
be
1850         creating a subloop.  */
1851      domst = determine_bb_domination_status (loop, tgt_bb);
1852      if (domst == DOMST_NONDOMINATING)
1853        goto fail;
1854      if (domst == DOMST_LOOP_BROKEN)

domst == DOMST_LOOP_BROKEN is telling sth ;)

Jeff?

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]