forked from OSchip/llvm-project
49a59ca093
ISL can conclude additional conditions on parameters from restrictions on loop variables. Such conditions persist when leaving the loop and the loop variable is projected out. This results in a narrower domain for exiting the loop than entering it and is logically impossible for non-infinite loops. We fix this by not adding a lower bound i>=0 when constructing BB domains, but defer it to when also the upper bound it computed, which was done redundantly even before this patch. This reduces the number of LNT fails with -polly-process-unprofitable -polly-position=before-vectorizer from 8 to 6. llvm-svn: 264118 |
||
---|---|---|
.. | ||
cmake | ||
docs | ||
include/polly | ||
lib | ||
test | ||
tools | ||
utils | ||
www | ||
.arcconfig | ||
.arclint | ||
.gitattributes | ||
.gitignore | ||
CMakeLists.txt | ||
CREDITS.txt | ||
LICENSE.txt | ||
README |
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.