diff options
-rw-r--r-- | gcc/ChangeLog.graphite | 7 | ||||
-rw-r--r-- | gcc/doc/invoke.texi | 5 | ||||
-rw-r--r-- | gcc/graphite.c | 2 | ||||
-rw-r--r-- | gcc/params.def | 7 |
4 files changed, 20 insertions, 1 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite index 2aa6fd55b86..3a94ee18459 100644 --- a/gcc/ChangeLog.graphite +++ b/gcc/ChangeLog.graphite @@ -1,5 +1,12 @@ 2010-03-09 Sebastian Pop <sebastian.pop@amd.com> + * 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 <sebastian.pop@amd.com> + * graphite-sese-to-poly.c (build_poly_scop): Do not return bool. * graphite-sese-to-poly.h (build_poly_scop): Same. diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi index 21597017b53..b856ca2256f 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 ba05cc74361..a244b870e8c 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 f6f549c1466..dca575d4ab0 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, |