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. From-SVN: r244811
This commit is contained in:
parent
b4fad9fa0e
commit
d886761fd0
@ -1,3 +1,8 @@
|
||||
2017-01-23 Michael Matz <matz@suse.de>
|
||||
|
||||
PR tree-optimization/78384
|
||||
* tree-ssa-loop-split.c (patch_loop_exit): Use correct edge.
|
||||
|
||||
2017-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/79186
|
||||
|
@ -1,3 +1,8 @@
|
||||
2017-01-23 Michael Matz <matz@suse.de>
|
||||
|
||||
PR tree-optimization/78384
|
||||
* gcc.dg/pr78384.c: New test.
|
||||
|
||||
2017-01-23 Richard Biener <rguenther@suse.de>
|
||||
|
||||
PR tree-optimization/79186
|
||||
|
25
gcc/testsuite/gcc.dg/pr78384.c
Normal file
25
gcc/testsuite/gcc.dg/pr78384.c
Normal file
@ -0,0 +1,25 @@
|
||||
/* PR tree-optimization/78384
|
||||
{ dg-do compile }
|
||||
{ dg-options "-O3 -w -fsplit-loops" } */
|
||||
void
|
||||
a2 (int wv, int yg, int r9)
|
||||
{
|
||||
while (wv < 1)
|
||||
{
|
||||
int vn = r9 % 0;
|
||||
|
||||
while (yg < 1)
|
||||
{
|
||||
int lz;
|
||||
|
||||
for (r9 = 0; r9 < 17; ++r9)
|
||||
{
|
||||
}
|
||||
|
||||
it:
|
||||
lz = (yg++ >= 0) ? 2 : 0;
|
||||
wv = vn < lz;
|
||||
}
|
||||
}
|
||||
goto it;
|
||||
}
|
@ -159,7 +159,7 @@ patch_loop_exit (struct loop *loop, gcond *guard, tree nextval, tree newbound,
|
||||
nextval, newbound);
|
||||
update_stmt (stmt);
|
||||
|
||||
edge stay = single_pred_edge (loop->latch);
|
||||
edge stay = EDGE_SUCC (exit->src, EDGE_SUCC (exit->src, 0) == exit);
|
||||
|
||||
exit->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
|
||||
stay->flags &= ~(EDGE_TRUE_VALUE | EDGE_FALSE_VALUE);
|
||||
|
Loading…
x
Reference in New Issue
Block a user