hanchenye-llvm-project/polly
Siddharth Bhat a1b2086a33 [Invariant Loads] Do not consider invariant loads to have dependences.
We need to relax constraints on invariant loads so that they do not
create fake RAW dependences. So, we do not consider invariant loads as
scalar dependences in a region.

During these changes, it turned out that we do not consider `llvm::Value`
replacements correctly within `PPCGCodeGeneration` and `ISLNodeBuilder`.
The replacements dictated by `ValueMap` were not being followed in all
places. This was fixed in this commit. There is no clean way to decouple
this change because this bug only seems to arise when the relaxed
version of invariant load hoisting was enabled.

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

llvm-svn: 307907
2017-07-13 12:18:56 +00:00
..
cmake [Polly][CMake] Use the CMake Package instead of llvm-config in out-of-tree builds 2017-07-11 11:24:25 +00:00
docs [doc] Add Davide's links regarding automated bisecting 2017-06-17 08:44:12 +00:00
include/polly [Invariant Loads] Do not consider invariant loads to have dependences. 2017-07-13 12:18:56 +00:00
lib [Invariant Loads] Do not consider invariant loads to have dependences. 2017-07-13 12:18:56 +00:00
test [Invariant Loads] Do not consider invariant loads to have dependences. 2017-07-13 12:18:56 +00:00
tools [CMake] Retire Polly's FindCUDA.cmake in favour of CMake's default FindCUDA.cmake script. 2017-06-06 19:20:48 +00:00
unittests Update Polly to reflect a change to a clang-format patch. I'm not sure 2017-06-29 23:58:03 +00:00
utils
www [WWW] Add a section to Getting Started about building out-of-tree 2017-07-11 20:37:28 +00:00
.arcconfig
.arclint
.gitattributes
.gitignore
CMakeLists.txt [Polly][CMake] Skip unit-tests in lit if gtest is not available 2017-07-11 11:37:35 +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.