Commit 24545562 by Richard Biener Committed by Richard Biener

re PR tree-optimization/84552 (Compile time hog w/ -O2 -floop-nest-optimize…

re PR tree-optimization/84552 (Compile time hog w/ -O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon)

2018-03-08  Richard Biener  <rguenther@suse.de>

	PR middle-end/84552
	* tree-scalar-evolution.c: Include tree-into-ssa.h.
	(follow_copies_to_constant): Do not follow SSA names registered
	for update.

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

From-SVN: r258365
parent 7fea20f6
2018-03-08 Richard Biener <rguenther@suse.de>
PR middle-end/84552
* tree-scalar-evolution.c: Include tree-into-ssa.h.
(follow_copies_to_constant): Do not follow SSA names registered
for update.
2018-03-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/84178
* tree-if-conv.c (combine_blocks): Move insert_gimplified_predicates
to caller.
......
2018-03-08 Richard Biener <rguenther@suse.de>
PR middle-end/84552
* gcc.dg/graphite/pr84552.c: New testcase.
2018-03-08 Richard Biener <rguenther@suse.de>
PR tree-optimization/84178
* gcc.dg/torture/pr84178-2.c: New testcase.
......
/* { dg-do compile } */
/* { dg-options "-O2 -floop-nest-optimize -fno-tree-copy-prop -fno-tree-fre -fno-tree-loop-ivcanon" } */
int cx;
int
e6 (int pj, int xe)
{
for (cx = 0; cx < 2; ++cx)
while (xe < 1)
{
for (cx = 0; cx < 2; ++cx)
pj *= 2;
if (cx != 0)
goto o3;
++xe;
}
o3:
return pj;
}
......@@ -280,6 +280,7 @@ along with GCC; see the file COPYING3. If not see
#include "params.h"
#include "tree-ssa-propagate.h"
#include "gimple-fold.h"
#include "tree-into-ssa.h"
static tree analyze_scalar_evolution_1 (struct loop *, tree);
static tree analyze_scalar_evolution_for_address_of (struct loop *loop,
......@@ -1540,7 +1541,10 @@ static tree
follow_copies_to_constant (tree var)
{
tree res = var;
while (TREE_CODE (res) == SSA_NAME)
while (TREE_CODE (res) == SSA_NAME
/* We face not updated SSA form in multiple places and this walk
may end up in sibling loops so we have to guard it. */
&& !name_registered_for_update_p (res))
{
gimple *def = SSA_NAME_DEF_STMT (res);
if (gphi *phi = dyn_cast <gphi *> (def))
......
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