Patchwork [06/12] Bump the size of scevs.

login
register
mail settings
Submitter Sebastian Pop
Date July 16, 2010, 7:03 a.m.
Message ID <1279263843-9149-7-git-send-email-sebpop@gmail.com>
Download mbox | patch
Permalink /patch/59073/
State New
Headers show

Comments

Sebastian Pop - July 16, 2010, 7:03 a.m.
2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>

	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
---
 gcc/ChangeLog.graphite |    4 ++++
 gcc/params.def         |    2 +-
 2 files changed, 5 insertions(+), 1 deletions(-)
Richard Guenther - July 16, 2010, 8:03 a.m.
On Fri, Jul 16, 2010 at 9:03 AM, Sebastian Pop <sebpop@gmail.com> wrote:
> 2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
>
>        * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.

What's the effect on compile-time here?

Richard.

> ---
>  gcc/ChangeLog.graphite |    4 ++++
>  gcc/params.def         |    2 +-
>  2 files changed, 5 insertions(+), 1 deletions(-)
>
> diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
> index 8408cf2..d75912c 100644
> --- a/gcc/ChangeLog.graphite
> +++ b/gcc/ChangeLog.graphite
> @@ -1,5 +1,9 @@
>  2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
>
> +       * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
> +
> +2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
> +
>        * cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
>        * cfgloop.h (struct loop): Remove single_iv field.
>        * graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
> diff --git a/gcc/params.def b/gcc/params.def
> index 35650ff..5a91e74 100644
> --- a/gcc/params.def
> +++ b/gcc/params.def
> @@ -438,7 +438,7 @@ 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_OMEGA_MAX_VARS,
>         "omega-max-vars",
> --
> 1.7.0.4
>
>
Sebastian Pop - July 16, 2010, 2:40 p.m.
On Fri, Jul 16, 2010 at 03:03, Richard Guenther
<richard.guenther@gmail.com> wrote:
> On Fri, Jul 16, 2010 at 9:03 AM, Sebastian Pop <sebpop@gmail.com> wrote:
>> 2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
>>
>>        * params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
>
> What's the effect on compile-time here?

PARAM_SCEV_MAX_EXPR_SIZE was introduced to solve
http://gcc.gnu.org/PR20742
I see that we never committed the testcase for that PR.
With a slightly modified testcase:

/* { dg-do compile } */
/* { dg-options "-O2" } */

#define TEN(x) x x x x x x x x x x
#define THOUSAND(x) TEN (TEN (TEN (x)))

int
foo (int x, int y)
{
  register int a = y + 57;
  register int b = y + 31;

  while (x-- > 0)
    {
      TEN (THOUSAND (a += b; b -= a;))
    }
  return a + b;
}

I am seeing this with the Graphite branch (passes taking more than a
second):

 tree SSA verifier     :   1.92 (16%) usr   0.00 ( 0%) sys   1.96
(16%) wall       0 kB ( 0%) ggc
 tree STMT verifier    :   4.17 (35%) usr   0.04 (25%) sys   4.26
(35%) wall       0 kB ( 0%) ggc
 combiner              :   1.15 (10%) usr   0.00 ( 0%) sys   1.17 (
9%) wall    5664 kB (10%) ggc
 TOTAL                 :  11.96             0.16            12.32
        58997 kB

These passes are not using the scev analysis.
Without the patch I am seeing the exact same thing:

 tree SSA verifier     :   1.86 (15%) usr   0.01 ( 4%) sys   1.93
(15%) wall       0 kB ( 0%) ggc
 tree STMT verifier    :   4.12 (34%) usr   0.09 (36%) sys   4.23
(33%) wall       0 kB ( 0%) ggc
 combiner              :   1.17 (10%) usr   0.00 ( 0%) sys   1.19 (
9%) wall    5664 kB ( 9%) ggc
 TOTAL                 :  12.25             0.25            12.64
        61271 kB

I will probably add a testcase with a THOUSAND operations to the
tree-ssa testsuite.

Sebastian

Patch

diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index 8408cf2..d75912c 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,5 +1,9 @@ 
 2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
 
+	* params.def (PARAM_SCEV_MAX_EXPR_SIZE): Bump the value to 100.
+
+2010-07-15  Sebastian Pop  <sebastian.pop@amd.com>
+
 	* cfgloop.c (alloc_loop): Remove initialization of loop->single_iv.
 	* cfgloop.h (struct loop): Remove single_iv field.
 	* graphite-sese-to-poly.c (graphite_loop_normal_form): Removed.
diff --git a/gcc/params.def b/gcc/params.def
index 35650ff..5a91e74 100644
--- a/gcc/params.def
+++ b/gcc/params.def
@@ -438,7 +438,7 @@  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_OMEGA_MAX_VARS,
  	 "omega-max-vars",