Commit 27837e0c by Richard Biener Committed by Richard Biener

re PR tree-optimization/84057 (ICE: Segmentation fault (in can_remove_branch_p))

2018-01-29  Richard Biener  <rguenther@suse.de>

	PR tree-optimization/84057
	* tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
	removed paths when removing edges.

	* gcc.dg/graphite/pr84057.c: New testcase.

From-SVN: r257139
parent 3be34c0b
2018-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/84057
* tree-ssa-loop-ivcanon.c (unloop_loops): Deal with already
removed paths when removing edges.
2018-01-27 H.J. Lu <hongjiu.lu@intel.com>
* doc/invoke.texi: Replace -mfunction-return==@var{choice} with
......
2018-01-29 Richard Biener <rguenther@suse.de>
PR tree-optimization/84057
* gcc.dg/graphite/pr84057.c: New testcase.
2017-01-29 Thomas Koenig <tkoenig@gcc.gnu.org>
PR fortran/84073
......
/* { dg-do compile } */
/* { dg-options "-O2 -fgraphite -funroll-loops -fno-tree-ccp -fno-tree-dce" } */
int ue;
void
fr (int ct)
{
int au = 0;
int *ra = &au;
while (au < 1)
{
au -= 0x7878788;
if (au != ct && ue != 0)
{
while (au < 1)
{
}
fc:
while (ct != 0)
{
}
}
}
for (au = 0; au < 2; ++au)
if (ct != 0)
goto fc;
}
......@@ -660,14 +660,21 @@ unloop_loops (bitmap loop_closed_ssa_invalidated,
loops_to_unloop.release ();
loops_to_unloop_nunroll.release ();
/* Remove edges in peeled copies. */
/* Remove edges in peeled copies. Given remove_path removes dominated
regions we need to cope with removal of already removed paths. */
unsigned i;
edge e;
auto_vec<int, 20> src_bbs;
src_bbs.reserve_exact (edges_to_remove.length ());
FOR_EACH_VEC_ELT (edges_to_remove, i, e)
{
bool ok = remove_path (e, irred_invalidated, loop_closed_ssa_invalidated);
gcc_assert (ok);
}
src_bbs.quick_push (e->src->index);
FOR_EACH_VEC_ELT (edges_to_remove, i, e)
if (BASIC_BLOCK_FOR_FN (cfun, src_bbs[i]))
{
bool ok = remove_path (e, irred_invalidated,
loop_closed_ssa_invalidated);
gcc_assert (ok);
}
edges_to_remove.release ();
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment