llvm-project/polly
Hongbin Zheng c5447f4c3b Do not incorrectly set the inverted flag.
In TempScopInfo::buildCondition we extract the conditions to guard the
BB *in addition of* loop bounds. This means we should only consider the
conditions in the paths (in CFG) that do not contain cycles (loops).

At the same time, we set the invert flag if the FalseBB of the current
branch dominates our target BB to indicate that we reach the target BB
with an inverted condition from the current branch.

In this case, the path from the FalseBB contains a cycle if the FalseBB
is the target of a backedge. The conditions implied by such a path should
not be consider. We can identify such a case by checking if the TrueBB
also dominates our target BB, which means we can also reach our target
BB from the TrueBB, without going through the backedge.

llvm-svn: 222907
2014-11-28 03:26:06 +00:00
..
autoconf Added arcanist linters and cleaned errors and warnings 2014-08-18 00:40:13 +00:00
cmake [Polly] Remove the PoCC and ScopLib support 2014-08-13 17:49:16 +00:00
docs
include Assume GetElementPtr offsets to be inbounds 2014-11-25 10:51:12 +00:00
lib Do not incorrectly set the inverted flag. 2014-11-28 03:26:06 +00:00
test Do not incorrectly set the inverted flag. 2014-11-28 03:26:06 +00:00
tools Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
utils Revert "Temporary disable formatting error" 2014-11-03 22:11:20 +00:00
www todo: We can support modifiable memory access functions 2014-11-19 16:31:33 +00:00
.arcconfig Added arcanist (arc) unit test support 2014-09-08 19:30:09 +00:00
.arclint Added arcanist linters and cleaned errors and warnings 2014-08-18 00:40:13 +00:00
.gitattributes gitattributes: .png and .txt are no text files 2013-07-28 09:05:20 +00:00
.gitignore Add test/lit.site.cfg to .gitignore 2014-09-07 15:03:30 +00:00
CMakeLists.txt Added arcanist linters and cleaned errors and warnings 2014-08-18 00:40:13 +00:00
CREDITS.txt Add myself to the credits 2014-08-10 03:37:29 +00:00
LICENSE.txt Update the copyright credits -- Happy new year 2014! 2014-01-01 08:27:31 +00:00
Makefile Revert "Fix a bug introduced by r153739: We are not able to provide the correct" 2012-04-11 07:43:13 +00:00
Makefile.common.in 'chmod -x' on files that do not need the executable bits 2012-12-29 15:09:03 +00:00
Makefile.config.in [Polly] Remove the PoCC and ScopLib support 2014-08-13 17:49:16 +00:00
README Trivial change to the README, mainly to test commit access. 2012-10-09 04:59:42 +00:00
configure [Polly] Remove the PoCC and ScopLib support 2014-08-13 17:49:16 +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.