From 14dd9aabd6cdb21bd3c482452239f06230be84c3 Mon Sep 17 00:00:00 2001 From: Sebastian Pop Date: Wed, 2 Feb 2011 15:52:08 +0000 Subject: [PATCH] Fix PR47576 and PR47555: add PARAM_SCEV_MAX_EXPR_COMPLEXITY. 2011-02-02 Sebastian Pop 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 --- gcc/ChangeLog | 10 ++++++++++ gcc/doc/invoke.texi | 4 ++++ gcc/params.def | 7 ++++++- gcc/tree-scalar-evolution.c | 2 +- 4 files changed, 21 insertions(+), 2 deletions(-) diff --git a/gcc/ChangeLog b/gcc/ChangeLog index 2af2c32edd6..cbe95a0034d 100644 --- a/gcc/ChangeLog +++ b/gcc/ChangeLog @@ -1,3 +1,13 @@ +2011-02-02 Sebastian Pop + + 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 PR tree-optimization/47566 diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index b25d8cf4826..da226dc0c76 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -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. diff --git a/gcc/params.def b/gcc/params.def index 3138bc22cd7..5749eb2e5f3 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -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", diff --git a/gcc/tree-scalar-evolution.c b/gcc/tree-scalar-evolution.c index d60e56915c3..1b68b36b30b 100644 --- a/gcc/tree-scalar-evolution.c +++ b/gcc/tree-scalar-evolution.c @@ -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);