llvm-project/polly
Tobias Grosser 1e55db30d5 Delinearize memory accesses that reference parameters coming from function calls
Certain affine memory accesses which we model today might contain products of
parameters which we might combined into a new parameter to be able to create an
affine expression that represents these memory accesses. Especially in the
context of OpenCL, this approach looses information as memory accesses such as
A[get_global_id(0) * N + get_global_id(1)] are assumed to be linear. We
correctly recover their multi-dimensional structure by assuming that parameters
that are the result of a function call at IR level likely are not parameters,
but indeed induction variables. The resulting access is now
A[get_global_id(0)][get_global_id(1)] for an array A[][N].

llvm-svn: 304075
2017-05-27 15:18:53 +00:00
..
cmake [Polly][CMake] Fix variable name in target exports 2017-05-12 10:39:38 +00:00
docs Update information on isl C++ bindings in Polly release notes 2017-05-27 11:01:01 +00:00
include/polly Delinearize memory accesses that reference parameters coming from function calls 2017-05-27 15:18:53 +00:00
lib Delinearize memory accesses that reference parameters coming from function calls 2017-05-27 15:18:53 +00:00
test Delinearize memory accesses that reference parameters coming from function calls 2017-05-27 15:18:53 +00:00
tools [GPUJIT] Disabled gcc's -Wpedantic for use of dlsym 2017-05-10 11:51:44 +00:00
unittests [Polly][NewPM] Reenable ScopPassManager unittest 2017-05-23 11:28:50 +00:00
utils Revise polly-{update|check}-format targets 2015-09-14 16:59:50 +00:00
www Add a permanent Polly Hangouts URL 2017-05-24 06:46:11 +00:00
.arcconfig Upgrade all the .arcconfigs to https. 2016-07-14 13:15:37 +00:00
.arclint [External] Move lib/JSON to lib/External/JSON. NFC. 2017-02-05 15:26:56 +00:00
.gitattributes
.gitignore Do not track the isl PDF manual in SVN 2017-01-16 11:48:03 +00:00
CMakeLists.txt [Polly][CMake] Exclude isl_config from the polly-check-format target. 2017-05-15 13:20:26 +00:00
CREDITS.txt Add myself to the credits 2014-08-10 03:37:29 +00:00
LICENSE.txt [External] Move lib/JSON to lib/External/JSON. NFC. 2017-02-05 15:26:56 +00:00
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.