diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-03-13 17:34:51 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-03-13 17:34:51 +0000 |
commit | b6bb0094b2486476e45570135f4b6fada05cdba6 (patch) | |
tree | 668c804631c3a942eab612131e39a3cdd25c8966 /gcc | |
parent | e84aaa332076c0b83e61326d3a1428bcf8ee8943 (diff) | |
download | gcc-b6bb0094b2486476e45570135f4b6fada05cdba6.zip gcc-b6bb0094b2486476e45570135f4b6fada05cdba6.tar.gz gcc-b6bb0094b2486476e45570135f4b6fada05cdba6.tar.bz2 |
Add PARAM_GRAPHITE_MAX_BBS_PER_FUNCTION.
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.
From-SVN: r157433
Diffstat (limited to 'gcc')
-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 2aa6fd5..3a94ee1 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 2159701..b856ca2 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 ba05cc7..a244b87 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 f6f549c..dca575d 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, |