Message ID | 1279263843-9149-7-git-send-email-sebpop@gmail.com |
---|---|
State | New |
Headers | show |
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 > >
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
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",