diff options
author | Sebastian Pop <sebastian.pop@amd.com> | 2010-09-30 21:20:45 +0000 |
---|---|---|
committer | Sebastian Pop <spop@gcc.gnu.org> | 2010-09-30 21:20:45 +0000 |
commit | 98af4c9ffeba9ea5549c06aa91e074a258cdd493 (patch) | |
tree | 77b4af2c50159c96052312846c33a591f9c1a01a /gcc/doc | |
parent | c498b9b99772f4f810ff2d6cf61c6b8bf194b095 (diff) | |
download | gcc-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.texi | 12 |
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 |