hanchenye-llvm-project/polly
Michael Kruse a43ba2d84f [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default.
Splitting basic blocks into multiple statements if there are now
additional scalar dependencies gives more freedom to the scheduler, but
more statements also means higher compile-time complexity. Switch to
finer statement granularity, the additional compile time should be
limited by the number of operations quota.

The regression tests are written for the -polly-stmt-granularity=bb
setting, therefore we add that flag to those tests that break with the
new default. Some of the tests only fail because the statements are
named differently due to a basic block resulting in multiple statements,
but which are removed during simplification of statements without
side-effects. Previous commits tried to reduce this effect, but it is
not completely avoidable.

Differential Revision: https://reviews.llvm.org/D42151

llvm-svn: 324169
2018-02-03 06:59:47 +00:00
..
cmake [CMake] Use only keyword-version of target_link_library. NFC. 2018-01-12 16:09:18 +00:00
docs Docs, release notes: update version to 7.0.0 2018-01-03 15:54:54 +00:00
include/polly Change memcpy/memove/memset to have dest and source alignment attributes. 2018-01-28 18:13:57 +00:00
lib [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
test [ScopBuilder] Make -polly-stmt-granularity=scalar-indep the default. 2018-02-03 06:59:47 +00:00
tools [GPUJIT] Improved temporary file handling. 2017-09-19 10:41:29 +00:00
unittests [CMake] Use PRIVATE in target_link_libraries for executables 2017-12-05 21:49:56 +00:00
utils
www [Polly] Information about generalized matrix multiplication 2017-09-24 19:00:25 +00:00
.arcconfig [polly] Set up .arcconfig to point to new Diffusion PLO repository 2017-11-27 17:34:03 +00:00
.arclint
.gitattributes
.gitignore
CMakeLists.txt [CMake] Use only keyword-version of target_link_library. NFC. 2018-01-12 16:09:18 +00:00
CREDITS.txt
LICENSE.txt
README Test commit 2017-06-28 12:58:44 +00:00

README

Polly - Polyhedral optimizations for LLVM
-----------------------------------------
http://polly.llvm.org/

Polly uses a mathematical representation, the polyhedral model, to represent and
transform loops and other control flow structures. Using an abstract
representation it is possible to reason about transformations in a more general
way and to use highly optimized linear programming libraries to figure out the
optimal loop structure. These transformations can be used to do constant
propagation through arrays, remove dead loop iterations, optimize loops for
cache locality, optimize arrays, apply advanced automatic parallelization, drive
vectorization, or they can be used to do software pipelining.