aboutsummaryrefslogtreecommitdiff
path: root/gcc/doc
diff options
context:
space:
mode:
authorSebastian Pop <sebastian.pop@amd.com>2010-09-30 21:20:45 +0000
committerSebastian Pop <spop@gcc.gnu.org>2010-09-30 21:20:45 +0000
commit98af4c9ffeba9ea5549c06aa91e074a258cdd493 (patch)
tree77b4af2c50159c96052312846c33a591f9c1a01a /gcc/doc
parentc498b9b99772f4f810ff2d6cf61c6b8bf194b095 (diff)
downloadgcc-98af4c9ffeba9ea5549c06aa91e074a258cdd493.zip
gcc-98af4c9ffeba9ea5549c06aa91e074a258cdd493.tar.gz
gcc-98af4c9ffeba9ea5549c06aa91e074a258cdd493.tar.bz2
New pass: loop flattening.
2010-09-09 Sebastian Pop <sebastian.pop@amd.com> * Makefile.in (OBJS-common): Add graphite-flattening.o. (graphite-flattening.o): New rule. * common.opt (floop-flatten): New flag. * doc/invoke.texi (-floop-flatten): Documented. * graphite-flattening.c: New. * graphite-poly.c (apply_poly_transforms): Call flatten_all_loops. * graphite-poly.h (flatten_all_loops): Declared. (lst_remove_loop_and_inline_stmts_in_loop_father): New. * tree-ssa-loop.c (gate_graphite_transforms): When flag_loop_flatten is set, also set flag_graphite. From-SVN: r164804
Diffstat (limited to 'gcc/doc')
-rw-r--r--gcc/doc/invoke.texi12
1 files changed, 11 insertions, 1 deletions
diff --git a/gcc/doc/invoke.texi b/gcc/doc/invoke.texi
index 7d36418..df39e16 100644
--- a/gcc/doc/invoke.texi
+++ b/gcc/doc/invoke.texi
@@ -352,7 +352,7 @@ Objective-C and Objective-C++ Dialects}.
-fira-loop-pressure -fno-ira-share-save-slots @gol
-fno-ira-share-spill-slots -fira-verbose=@var{n} @gol
-fivopts -fkeep-inline-functions -fkeep-static-consts @gol
--floop-block -floop-interchange -floop-strip-mine @gol
+-floop-block -floop-flatten -floop-interchange -floop-strip-mine @gol
-floop-parallelize-all -flto -flto-compression-level -flto-report @gol
-fltrans -fltrans-output-list -fmerge-all-constants -fmerge-constants @gol
-fmodulo-sched -fmodulo-sched-allow-regmoves -fmove-loop-invariants @gol
@@ -6798,6 +6798,7 @@ Perform linear loop transformations on tree. This flag can improve cache
performance and allow further loop optimizations to take place.
@item -floop-interchange
+@opindex floop-interchange
Perform loop interchange transformations on loops. Interchanging two
nested loops switches the inner and outer loops. For example, given a
loop like:
@@ -6826,6 +6827,7 @@ with @option{--with-ppl} and @option{--with-cloog} to enable the
Graphite loop transformation infrastructure.
@item -floop-strip-mine
+@opindex floop-strip-mine
Perform loop strip mining transformations on loops. Strip mining
splits a loop into two nested loops. The outer loop has strides
equal to the strip size and the inner loop has strides of the
@@ -6851,6 +6853,7 @@ be configured with @option{--with-ppl} and @option{--with-cloog} to
enable the Graphite loop transformation infrastructure.
@item -floop-block
+@opindex floop-block
Perform loop blocking transformations on loops. Blocking strip mines
each loop in the loop nest such that the memory accesses of the
element loops fit inside caches. The strip length can be changed
@@ -6892,7 +6895,14 @@ GIMPLE -> GRAPHITE -> GIMPLE transformation. Some minimal optimizations
are also performed by the code generator CLooG, like index splitting and
dead code elimination in loops.
+@item -floop-flatten
+@opindex floop-flatten
+Removes the loop nesting structure: transforms the loop nest into a
+single loop. This transformation can be useful to vectorize all the
+levels of the loop nest.
+
@item -floop-parallelize-all
+@opindex floop-parallelize-all
Use the Graphite data dependence analysis to identify loops that can
be parallelized. Parallelize all the loops that can be analyzed to
not contain loop carried dependences without checking that it is