summaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-13 17:34:51 +0000
committerspop <spop@138bc75d-0d04-0410-961f-82ee72b054a4>2010-03-13 17:34:51 +0000
commit94ba21de76678316108cb184d517133a66622525 (patch)
tree668c804631c3a942eab612131e39a3cdd25c8966 /gcc
parentf49215cea754cbd1f73143110bbc832c05fd597f (diff)
downloadgcc-94ba21de76678316108cb184d517133a66622525.tar.gz
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. git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@157433 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.graphite7
-rw-r--r--gcc/doc/invoke.texi5
-rw-r--r--gcc/graphite.c2
-rw-r--r--gcc/params.def7
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,