[Bug tree-optimization/89253] [8/9 Regression] ICE in split_loop, at tree-ssa-loop-split.c:566

rguenth at gcc dot gnu.org gcc-bugzilla@gcc.gnu.org
Fri Feb 8 13:38:00 GMT 2019


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

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

           What    |Removed                     |Added
----------------------------------------------------------------------------
           Priority|P3                          |P2
             Status|UNCONFIRMED                 |ASSIGNED
           Keywords|ice-on-invalid-code         |ice-on-valid-code
   Last reconfirmed|                            |2019-02-08
                 CC|                            |matz at gcc dot gnu.org
           Assignee|unassigned at gcc dot gnu.org      |rguenth at gcc dot gnu.org
     Ever confirmed|0                           |1
   Target Milestone|---                         |8.3

--- Comment #1 from Richard Biener <rguenth at gcc dot gnu.org> ---
Confirmed on x86_64-linux.  loop_version can (and does) fail here, possibly
because there's abnormal edges (computed goto) inside.

(gdb) p can_duplicate_loop_p (loop1)
$2 = false

but this isn't checked.  I am testing

Index: gcc/tree-ssa-loop-split.c
===================================================================
--- gcc/tree-ssa-loop-split.c   (revision 268679)
+++ gcc/tree-ssa-loop-split.c   (working copy)
@@ -649,7 +649,8 @@ tree_ssa_split_loops (void)
                                        false, true)
          && niter.cmp != ERROR_MARK
          /* We can't yet handle loops controlled by a != predicate.  */
-         && niter.cmp != NE_EXPR)
+         && niter.cmp != NE_EXPR
+         && can_duplicate_loop_p (loop))
        {
          if (split_loop (loop, &niter))
            {


More information about the Gcc-bugs mailing list