forked from OSchip/llvm-project
9d63234ad1
When a region header is part of a loop, then all entering edges of this region should not come from the loop but outside the region. Otherwise, the loop may be only partially part of the region, which would cause troubles in handling induction variables. Currently, we can only model induction variables that are either fully part of the scop (loop induction variable) or induction variables that are scop- invariant (parameter). A loop that is only partially part of the scop causes troubles, as there is no good way to handle the induction variable in the independent blocks pass. Contributed-by: Star Tan <tanmx_star@yeah.net> llvm-svn: 183800 |
||
---|---|---|
.. | ||
autoconf | ||
cmake | ||
docs | ||
include | ||
lib | ||
test | ||
tools | ||
utils | ||
www | ||
CMakeLists.txt | ||
CREDITS.txt | ||
LICENSE.txt | ||
Makefile | ||
Makefile.common.in | ||
Makefile.config.in | ||
README | ||
configure |
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.