hanchenye-llvm-project/polly
Michael Kruse 4485ae0890 [CodeGen] Allow undefined loads in statement instances outside context.
A check in assert-builds was meant to verify that a load provides a
value in all statement instances (i.e. its domain).  The domain is
commonly gist'ed within the parameter context to contain fewer
constraints.  However, statement instances outside the context are
no valid executions, hence the value provided can be undefined.

Refine the check for valid loads to only needed to be defined within
the SCoP context.

In addition, the JSONImporter had to be changed to allow importing
access relations that are broader than the current access relation,
but still defined over all statement instances.

This should fix the compiler crash in test-suite's oggenc of the
-polly-process-unprofitable buildbot.

llvm-svn: 329655
2018-04-10 01:20:51 +00:00
..
cmake [CMake] Use only keyword-version of target_link_library. NFC. 2018-01-12 16:09:18 +00:00
docs [doc] Overhaul doc on preparing IR for processing by Polly. 2018-04-06 19:24:18 +00:00
include/polly [ScopInfo] Completely remove MemoryAccesses when their parent statement is removed. 2018-04-09 23:13:05 +00:00
lib [CodeGen] Allow undefined loads in statement instances outside context. 2018-04-10 01:20:51 +00:00
test [CodeGen] Allow undefined loads in statement instances outside context. 2018-04-10 01:20:51 +00:00
tools [GPUJIT] Improved temporary file handling. 2017-09-19 10:41:29 +00:00
unittests Adjust to clang-format changes 2018-03-20 17:16:32 +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.