[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 Michael Matz changed: What|Removed |Added Status|ASSIGNED|RESOLVED Resolution|--- |FIXED --- Comment #6 from Michael Matz --- fixed.
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 --- Comment #5 from Michael Matz --- Author: matz Date: Mon Jan 23 13:57:31 2017 New Revision: 244811 URL: https://gcc.gnu.org/viewcvs?rev=244811&root=gcc&view=rev Log: fix pr78384 PR tree-optimization/78384 * tree-ssa-loop-split.c (patch_loop_exit): Use correct edge. testsuite/ PR tree-optimization/78384 * gcc.dg/pr78384.c: New test. Added: trunk/gcc/testsuite/gcc.dg/pr78384.c Modified: trunk/gcc/ChangeLog trunk/gcc/testsuite/ChangeLog trunk/gcc/tree-ssa-loop-split.c
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 --- Comment #4 from Michael Matz --- (In reply to Jakub Jelinek from comment #3) > Any progress with this? It fell through the cracks over christmas vacation, I'll get to it this week.
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 Jakub Jelinek changed: What|Removed |Added CC||jakub at gcc dot gnu.org --- Comment #3 from Jakub Jelinek --- Any progress with this? Briefly looking at the testcase, it seems patch_loop_exit assumes that single_exit (loop)->src == single_pred_edge (loop->latch)->src, but doesn't actually verify it in the caller. So either the caller should verify it and punt if that is not the case, or it should allow also some bbs in between single_exit (loop)->src and loop->latch. On the testcase from this PR there is an extra empty block, single_exit (loop)->src has one edge to that (the other is loop exit) and that empty block has just a single pred and single succ (loop->latch). One could also just set stay to the other edge from single_exit (loop)->src (look through both edges and pick one that is not equal to exit). The question is if it won't try to split loops that shouldn't be split that way.
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 Richard Biener changed: What|Removed |Added Priority|P3 |P1
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 Michael Matz changed: What|Removed |Added Status|NEW |ASSIGNED Assignee|unassigned at gcc dot gnu.org |matz at gcc dot gnu.org --- Comment #2 from Michael Matz --- Mine.
[Bug tree-optimization/78384] [7 Regression] ICE: verify_flow_info failed (error: wrong outgoing edge flags at end of bb 15)
https://gcc.gnu.org/bugzilla/show_bug.cgi?id=78384 Richard Biener changed: What|Removed |Added Status|UNCONFIRMED |NEW Last reconfirmed||2016-11-17 CC||matz at gcc dot gnu.org Target Milestone|--- |7.0 Ever confirmed|0 |1 --- Comment #1 from Richard Biener --- Confirmed. Caused by loop splitting.