aboutsummaryrefslogtreecommitdiff
path: root/gcc
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2009-11-25 04:58:16 +0000
committerSebastian Pop <spop@gcc.gnu.org>2009-11-25 04:58:16 +0000
commit24c79709800fe1f0213ef441f26fe08e881e5ab5 (patch)
treef6a3de9cab437f1335d5a15c73ead4cf2cf686d0 /gcc
parenta0517b76ddeb6fdbc4346a508e98ac842b539694 (diff)
downloadgcc-24c79709800fe1f0213ef441f26fe08e881e5ab5.zip
gcc-24c79709800fe1f0213ef441f26fe08e881e5ab5.tar.gz
gcc-24c79709800fe1f0213ef441f26fe08e881e5ab5.tar.bz2
graphite-poly.c (apply_poly_transforms): Implement the high level driver for flag_loop_block.
2009-10-09 Sebastian Pop <sebastian.pop@amd.com> * graphite-poly.c (apply_poly_transforms): Implement the high level driver for flag_loop_block. * tree-ssa-loop.c (gate_graphite_transforms): Remove call to sorry for flag_loop_block. * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add -floop-block. * gfortran.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add -floop-block. From-SVN: r154569
Diffstat (limited to 'gcc')
-rw-r--r--gcc/ChangeLog.graphite12
-rw-r--r--gcc/graphite-poly.c17
-rw-r--r--gcc/testsuite/gcc.dg/graphite/graphite.exp6
-rw-r--r--gcc/testsuite/gfortran.dg/graphite/graphite.exp6
-rw-r--r--gcc/tree-ssa-loop.c3
5 files changed, 29 insertions, 15 deletions
diff --git a/gcc/ChangeLog.graphite b/gcc/ChangeLog.graphite
index a058e52..388b4fd 100644
--- a/gcc/ChangeLog.graphite
+++ b/gcc/ChangeLog.graphite
@@ -1,5 +1,17 @@
2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
+ * graphite-poly.c (apply_poly_transforms): Implement the high
+ level driver for flag_loop_block.
+ * tree-ssa-loop.c (gate_graphite_transforms): Remove call to sorry for
+ flag_loop_block.
+
+ * gcc.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK): Add
+ -floop-block.
+ * gfortran.dg/graphite/graphite.exp (DEFAULT_CFLAGS_GRAPHITE_BLOCK):
+ Add -floop-block.
+
+2009-10-09 Sebastian Pop <sebastian.pop@amd.com>
+
* graphite-poly.h (lst_find_pbb): New.
(find_lst_loop): New.
diff --git a/gcc/graphite-poly.c b/gcc/graphite-poly.c
index 6fef0e3..d956ad4 100644
--- a/gcc/graphite-poly.c
+++ b/gcc/graphite-poly.c
@@ -250,13 +250,18 @@ apply_poly_transforms (scop_p scop)
transform_done = true;
if (flag_loop_block)
- gcc_unreachable (); /* Not yet supported. */
-
- if (flag_loop_strip_mine)
- transform_done |= scop_do_strip_mine (scop);
+ {
+ transform_done |= scop_do_strip_mine (scop);
+ transform_done |= scop_do_interchange (scop);
+ }
+ else
+ {
+ if (flag_loop_strip_mine)
+ transform_done |= scop_do_strip_mine (scop);
- if (flag_loop_interchange)
- transform_done |= scop_do_interchange (scop);
+ if (flag_loop_interchange)
+ transform_done |= scop_do_interchange (scop);
+ }
return transform_done;
}
diff --git a/gcc/testsuite/gcc.dg/graphite/graphite.exp b/gcc/testsuite/gcc.dg/graphite/graphite.exp
index ae0fa16..1267cf2 100644
--- a/gcc/testsuite/gcc.dg/graphite/graphite.exp
+++ b/gcc/testsuite/gcc.dg/graphite/graphite.exp
@@ -43,7 +43,7 @@ dg-init
set wait_to_run_files [lsort [glob -nocomplain $srcdir/$subdir/*.c ] ]
# Flags using for block-* files.
-set DEFAULT_CFLAGS_GRAPHITE_BLOCK "-O2 -fdump-tree-graphite-all"
+set DEFAULT_CFLAGS_GRAPHITE_BLOCK "-O2 -floop-block -fdump-tree-graphite-all"
set block_files [lsort [glob -nocomplain $srcdir/$subdir/block-*.c ] ]
dg-runtest $block_files "" $DEFAULT_CFLAGS_GRAPHITE_BLOCK
foreach block_file $block_files {lremove wait_to_run_files $block_file}
@@ -55,9 +55,9 @@ dg-runtest $id_files "" $DEFAULT_CFLAGS_GRAPHITE_IDENTITY
foreach id_file $id_files {lremove wait_to_run_files $id_file}
# Flags using for interchange-* files.
-set DEFAULT_CFLAGS_GRAPHITE_BLOCK "-O2 -fdump-tree-graphite-all -floop-interchange -ffast-math"
+set DEFAULT_CFLAGS_GRAPHITE_INTERCHANGE "-O2 -fdump-tree-graphite-all -floop-interchange -ffast-math"
set interchange_files [lsort [glob -nocomplain $srcdir/$subdir/interchange-*.c ] ]
-dg-runtest $interchange_files "" $DEFAULT_CFLAGS_GRAPHITE_BLOCK
+dg-runtest $interchange_files "" $DEFAULT_CFLAGS_GRAPHITE_INTERCHANGE
foreach interchange_file $interchange_files {lremove wait_to_run_files $interchange_file}
# Flags using for scop-* files.
diff --git a/gcc/testsuite/gfortran.dg/graphite/graphite.exp b/gcc/testsuite/gfortran.dg/graphite/graphite.exp
index 717413e..0746d37 100644
--- a/gcc/testsuite/gfortran.dg/graphite/graphite.exp
+++ b/gcc/testsuite/gfortran.dg/graphite/graphite.exp
@@ -42,7 +42,7 @@ dg-init
set wait_to_run_files [lsort [glob -nocomplain $srcdir/$subdir/*.\[fF\]{,90,95,03,08} ] ]
# Flags using for block-* files.
-set DEFAULT_FLAGS_GRAPHITE_BLOCK "-O2 -fdump-tree-graphite-all"
+set DEFAULT_FLAGS_GRAPHITE_BLOCK "-O2 -floop-block -fdump-tree-graphite-all"
set block_files [lsort [glob -nocomplain $srcdir/$subdir/block-*.\[fF\]{,90,95,03,08} ] ]
gfortran-dg-runtest $block_files $DEFAULT_FLAGS_GRAPHITE_BLOCK
foreach block_file $block_files {lremove wait_to_run_files $block_file}
@@ -54,9 +54,9 @@ gfortran-dg-runtest $id_files $DEFAULT_FLAGS_GRAPHITE_IDENTITY
foreach id_file $id_files {lremove wait_to_run_files $id_file}
# Flags using for interchange-* files.
-set DEFAULT_FLAGS_GRAPHITE_BLOCK "-O2 -fdump-tree-graphite-all -floop-interchange"
+set DEFAULT_FLAGS_GRAPHITE_INTERCHANGE "-O2 -fdump-tree-graphite-all -floop-interchange"
set interchange_files [lsort [glob -nocomplain $srcdir/$subdir/interchange-*.\[fF\]{,90,95,03,08} ] ]
-gfortran-dg-runtest $interchange_files $DEFAULT_FLAGS_GRAPHITE_BLOCK
+gfortran-dg-runtest $interchange_files $DEFAULT_FLAGS_GRAPHITE_INTERCHANGE
foreach interchange_file $interchange_files {lremove wait_to_run_files $interchange_file}
# Flags using for scop-* files.
diff --git a/gcc/tree-ssa-loop.c b/gcc/tree-ssa-loop.c
index c52b787..b497ccc 100644
--- a/gcc/tree-ssa-loop.c
+++ b/gcc/tree-ssa-loop.c
@@ -311,9 +311,6 @@ gate_graphite_transforms (void)
|| flag_graphite_identity || flag_loop_parallelize_all)
flag_graphite = 1;
- if (flag_loop_block)
- sorry ("loop blocking not implemented");
-
return flag_graphite != 0;
}