From: Sebastian Pop Date: Sat, 13 Mar 2010 17:34:51 +0000 (+0000) Subject: Add PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. X-Git-Tag: releases/gcc-4.5.0~393 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=b6bb0094b2486476e45570135f4b6fada05cdba6;p=thirdparty%2Fgcc.git Add PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. 2010-03-09 Sebastian Pop * graphite.c (graphite_initialize): To bound the number of bbs per function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared. * doc/invoke.texi: Document it. From-SVN: r157433 --- diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 2aa6fd55b86d..3a94ee184595 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,3 +1,10 @@ +2010-03-09 Sebastian Pop + + * graphite.c (graphite_initialize): To bound the number of bbs per + function, use PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION. + * params.def (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION): Declared. + * doc/invoke.texi: Document it. + 2010-03-09 Sebastian Pop * graphite-sese-to-poly.c (build_poly_scop): Do not return bool. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 21597017b539..b856ca2256f3 100644 --- a/gcc/doc/invoke.texi +++ b/gcc/doc/invoke.texi @@ -8496,6 +8496,11 @@ pointer parameter. To avoid exponential effects in the Graphite loop transforms, the number of parameters in a SCoP is bounded by 10. +@item graphite-max-bbs-per-function +To avoid exponential effects in the detection of SCoPs, the functions +with more than 100 basic blocks are not handled by the Graphite loop +transforms. + @end table @end table diff --git a/gcc/graphite.c b/gcc/graphite.c index ba05cc74361b..a244b870e8c6 100644 --- a/gcc/graphite.c +++ b/gcc/graphite.c @@ -202,7 +202,7 @@ graphite_initialize (void) if (number_of_loops () <= 1 /* FIXME: This limit on the number of basic blocks of a function should be removed when the SCOP detection is faster. */ - || n_basic_blocks > 100) + || n_basic_blocks > PARAM_VALUE (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION)) { if (dump_file && (dump_flags & TDF_DETAILS)) print_global_statistics (dump_file); diff --git a/gcc/params.def b/gcc/params.def index f6f549c1466b..dca575d4ab09 100644 --- a/gcc/params.def +++ b/gcc/params.def @@ -752,6 +752,13 @@ DEFPARAM (PARAM_GRAPHITE_MAX_NB_SCOP_PARAMS, "maximal number of parameters in a SCoP", 10, 0, 0) +/* Maximal number of basic blocks in the functions analyzed by Graphite. */ + +DEFPARAM (PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION, + "graphite-max-bbs-per-function", + "maximal number of basic blocks per function to be analyzed by Graphite", + 100, 0, 0) + /* Avoid doing loop invariant motion on very large loops. */ DEFPARAM (PARAM_LOOP_INVARIANT_MAX_BBS_IN_LOOP,