Fix PR47576 and PR47555: add PARAM_SCEV_MAX_EXPR_COMPLEXITY.

2011-02-02  Sebastian Pop  <sebastian.pop@amd.com>

	PR tree-optimization/47576
	PR tree-optimization/47555
	* doc/invoke.texi (scev-max-expr-complexity): Documented.
	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
	(PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
	* tree-scalar-evolution.c (follow_ssa_edge): Use
	PARAM_SCEV_MAX_EXPR_COMPLEXITY.

From-SVN: r169530
This commit is contained in:
Sebastian Pop 2011-02-02 15:52:08 +00:00 committed by Sebastian Pop
parent d46efcfe97
commit 14dd9aabd6
4 changed files with 21 additions and 2 deletions

View File

@ -1,3 +1,13 @@
2011-02-02 Sebastian Pop <sebastian.pop@amd.com>
PR tree-optimization/47576
PR tree-optimization/47555
* doc/invoke.texi (scev-max-expr-complexity): Documented.
* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
(PARAM_SCEV_MAX_EXPR_COMPLEXITY): Declared.
* tree-scalar-evolution.c (follow_ssa_edge): Use
PARAM_SCEV_MAX_EXPR_COMPLEXITY.
2011-02-02 Richard Guenther <rguenther@suse.de>
PR tree-optimization/47566

View File

@ -8463,6 +8463,10 @@ optimization when a new iv is added to the set.
Bound on size of expressions used in the scalar evolutions analyzer.
Large expressions slow the analyzer.
@item scev-max-expr-complexity
Bound on the complexity of the expressions in the scalar evolutions analyzer.
Complex expressions slow the analyzer.
@item omega-max-vars
The maximum number of variables in an Omega constraint system.
The default value is 128.

View File

@ -481,7 +481,12 @@ DEFPARAM(PARAM_IV_ALWAYS_PRUNE_CAND_SET_BOUND,
DEFPARAM(PARAM_SCEV_MAX_EXPR_SIZE,
"scev-max-expr-size",
"Bound on size of expressions used in the scalar evolutions analyzer",
20, 0, 0)
100, 0, 0)
DEFPARAM(PARAM_SCEV_MAX_EXPR_COMPLEXITY,
"scev-max-expr-complexity",
"Bound on the complexity of the expressions in the scalar evolutions analyzer",
10, 0, 0)
DEFPARAM(PARAM_OMEGA_MAX_VARS,
"omega-max-vars",

View File

@ -1399,7 +1399,7 @@ follow_ssa_edge (struct loop *loop, gimple def, gimple halting_phi,
return t_false;
/* Give up if the path is longer than the MAX that we allow. */
if (limit > PARAM_VALUE (PARAM_SCEV_MAX_EXPR_SIZE))
if (limit > PARAM_VALUE (PARAM_SCEV_MAX_EXPR_COMPLEXITY))
return t_dont_know;
def_loop = loop_containing_stmt (def);