aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDwarakanath Rajagopal <dwarak.rajagopal@amd.com>2008-07-24 20:49:39 +0000
committerSebastian Pop <sebastian.pop@amd.com>2008-07-24 20:49:39 +0000
commitf1701f8a8319ae32a8e56484f4325c2cf4f98950 (patch)
treed5b201500566ab91b31f99c4c4712fff6953ac8a
parenta3528722738b98ed38525b219f7135f6acbfdfb9 (diff)
2008-07-24 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
* common.opt: New user flag -floop-block, -floop-strip-mine and -floop-interchange. * toplev.c (process_options): Enable -fgraphite pass if any one of the graphite loop optimization flags is turned on. * graphite.c (graphite_apply_transformations): Add flag_loop_block, flag_loop_strip_mine and flag_loop_interchange checks before optimizations. * doc/invoke.texi: Remove -fgraphite and add -floop-block, -floop-strip-mine and -floop-interchange. * testsuite/gcc.dg/graphite/block-0.c: Add -floop-block and remove -fgraphite. * testsuite/gcc.dg/graphite/scop-16.c: Ditto. * testsuite/gcc.dg/graphite/scop-17.c: Ditto. * testsuite/gcc.dg/graphite/scop-18.c: Ditto. git-svn-id: https://gcc.gnu.org/svn/gcc/branches/graphite@138124 138bc75d-0d04-0410-961f-82ee72b054a4
-rw-r--r--gcc/ChangeLog.graphite17
-rw-r--r--gcc/common.opt14
-rw-r--r--gcc/doc/invoke.texi13
-rw-r--r--gcc/graphite.c15
-rw-r--r--gcc/testsuite/gcc.dg/graphite/block-0.c2
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-16.c2
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-17.c2
-rw-r--r--gcc/testsuite/gcc.dg/graphite/scop-18.c2
-rw-r--r--gcc/toplev.c5
9 files changed, 55 insertions, 17 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index c678783df37..9ef26f53b29 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,3 +1,20 @@
+2008-07-24 Dwarakanath Rajagopal <dwarak.rajagopal@amd.com>
+
+ * common.opt: New user flag -floop-block, -floop-strip-mine
+ and -floop-interchange.
+ * toplev.c (process_options): Enable -fgraphite pass if any one of the
+ graphite loop optimization flags is turned on.
+ * graphite.c (graphite_apply_transformations): Add flag_loop_block,
+ flag_loop_strip_mine and flag_loop_interchange checks before
+ optimizations.
+ * doc/invoke.texi: Remove -fgraphite and add -floop-block,
+ -floop-strip-mine and -floop-interchange.
+ * testsuite/gcc.dg/graphite/block-0.c: Add -floop-block and remove
+ -fgraphite.
+ * testsuite/gcc.dg/graphite/scop-16.c: Ditto.
+ * testsuite/gcc.dg/graphite/scop-17.c: Ditto.
+ * testsuite/gcc.dg/graphite/scop-18.c: Ditto.
+
2008-07-23 Jan Sjodin <jan.sjodin@amd.com>
Sebastian Pop <sebastian.pop@amd.com>
diff --git a/gcc/common.opt b/gcc/common.opt
index 668b0badf52..cdc0c5f7543 100644
--- a/gcc/common.opt
+++ b/gcc/common.opt
@@ -541,7 +541,19 @@ has finished
fgraphite
Common Report Var(flag_graphite)
-Enable GRAPHITE loop transforms
+Enable in and out of Graphite representation, not modifying the compiled program
+
+floop-strip-mine
+Common Report Var(flag_loop_strip_mine) Optimization
+Enable Loop Strip Mining transformation
+
+floop-interchange
+Common Report Var(flag_loop_interchange) Optimization
+Enable Loop Interchange transformation
+
+floop-block
+Common Report Var(flag_loop_block) Optimization
+Enable Loop Blocking transformation
fguess-branch-probability
Common Report Var(flag_guess_branch_prob) Optimization
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 83de7f2d098..e228da239a7 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -328,7 +328,8 @@ Objective-C and Objective-C++ Dialects}.
-fearly-inlining -fexpensive-optimizations -ffast-math @gol
-ffinite-math-only -ffloat-store -fforward-propagate @gol
-ffunction-sections -fgcse -fgcse-after-reload -fgcse-las -fgcse-lm @gol
--fgcse-sm -fgraphite -fif-conversion -fif-conversion2 -finline-functions @gol
+-fgcse-sm -floop-block -floop-interchange -floop-strip-mine @gol
+-fif-conversion -fif-conversion2 -finline-functions @gol
-finline-functions-called-once -finline-limit=@var{n} @gol
-finline-small-functions -fipa-cp -fipa-marix-reorg -fipa-pta @gol
-fipa-pure-const -fipa-reference -fipa-struct-reorg @gol
@@ -6096,8 +6097,14 @@ at @option{-O} and higher.
Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
-@item -fgraphite
-Perform polyhedral transformations on loops.
+@item -floop-block
+Perform loop blocking transformations on loops.
+
+@item -floop-strip-mine
+Perform loop strip mining transformations on loops.
+
+@item -floop-interchange
+Perform loop interchange transformations on loops.
@item -fcheck-data-deps
@opindex fcheck-data-deps
diff --git a/gcc/graphite.c b/gcc/graphite.c
index 58b3eeec782..dc2738dec42 100644
--- a/gcc/graphite.c
+++ b/gcc/graphite.c
@@ -4580,22 +4580,19 @@ graphite_apply_transformations (scop_p scop)
graphite_sort_gbbs (scop);
scop_remove_ignoreable_gbbs (scop);
+
/* XXX: This functions are able to show some loop
transformations. They blindly enable the named transformation
on all bbs, without checking dependencies or if these
transformations are valid at all. So disable the transformations, that
may generate invalid code by default. */
-
- if (0)
- graphite_trans_scop_swap_1and2 (scop);
- if (0)
- graphite_trans_scop_strip (scop);
-
- /* Enabled by default to get tested. At the moment this is not save for all
- scops, as we do not check dependencies. */
- if (1)
+ if (flag_loop_block)
graphite_trans_scop_block (scop);
+ else if (flag_loop_strip_mine)
+ graphite_trans_scop_strip (scop);
+ else if (flag_loop_interchange)
+ graphite_trans_scop_swap_1and2 (scop);
}
/* Perform a set of linear transforms on LOOPS. */
diff --git a/gcc/testsuite/gcc.dg/graphite/block-0.c b/gcc/testsuite/gcc.dg/graphite/block-0.c
index 2b981df52d7..c7035a3c86d 100644
--- a/gcc/testsuite/gcc.dg/graphite/block-0.c
+++ b/gcc/testsuite/gcc.dg/graphite/block-0.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O -fgraphite -fdump-tree-graphite-all" } */
+/* { dg-options "-O -floop-block -fdump-tree-graphite-all" } */
#define N 1000
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-16.c b/gcc/testsuite/gcc.dg/graphite/scop-16.c
index c22e3bb9f9a..798ab577d52 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-16.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-16.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
#define N 100000
void foo (int);
int test ()
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-17.c b/gcc/testsuite/gcc.dg/graphite/scop-17.c
index 829fe2829af..fb64cc6efcd 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-17.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-17.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
#define N 100000
void foo (int);
int test ()
diff --git a/gcc/testsuite/gcc.dg/graphite/scop-18.c b/gcc/testsuite/gcc.dg/graphite/scop-18.c
index 084e526c015..3338fe333be 100644
--- a/gcc/testsuite/gcc.dg/graphite/scop-18.c
+++ b/gcc/testsuite/gcc.dg/graphite/scop-18.c
@@ -1,5 +1,5 @@
/* { dg-do compile } */
-/* { dg-options "-O2 -fgraphite -fdump-tree-graphite-all" } */
+/* { dg-options "-O2 -floop-block -fdump-tree-graphite-all" } */
#define N 24
#define M 1000
diff --git a/gcc/toplev.c b/gcc/toplev.c
index f5d08a0fcf9..198a5039893 100644
--- a/gcc/toplev.c
+++ b/gcc/toplev.c
@@ -1948,6 +1948,11 @@ process_options (void)
"for correctness");
flag_omit_frame_pointer = 0;
}
+
+ /* Enable -fgraphite pass if any one of the graphite optimization flags
+ is turned on. */
+ if (flag_loop_block || flag_loop_interchange || flag_loop_strip_mine)
+ flag_graphite = 1;
}
/* This function can be called multiple times to reinitialize the compiler