hanchenye-llvm-project/polly
Tobias Grosser 50165ffdee Add support for srem instruction
Remainder operations with constant divisor can be modeled as quasi-affine
expression. This patch adds support for detecting and modeling them. We also
add a test that ensures they are correctly code generated.

This patch was extracted from a larger patch contributed by Johannes Doerfert
in http://reviews.llvm.org/D5293

llvm-svn: 240518
2015-06-24 04:13:29 +00:00
..
autoconf Prepare replacing ISL by its 'make dist' files 2015-06-22 17:52:33 +00:00
cmake Use C99 to compile ISL 2015-06-22 20:31:16 +00:00
include Handle zero-element ArrayRefs in CUDA run-time debug builder 2015-06-22 18:45:23 +00:00
lib Add support for srem instruction 2015-06-24 04:13:29 +00:00
test Add support for srem instruction 2015-06-24 04:13:29 +00:00
tools Fix formatting issues in banner 2015-04-27 12:02:36 +00:00
utils Rename 'scattering' to 'schedule' 2015-04-21 11:37:25 +00:00
www [doc] Rename -polly-detect-only= to -polly-only-func= 2015-06-03 15:45:19 +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
.gitignore Add git patch files to .gitignore 2015-06-23 20:55:01 +00:00
CMakeLists.txt Prepare replacing ISL by its 'make dist' files 2015-06-22 17:52:33 +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
Makefile.common.in
Makefile.config.in Use C99 to compile ISL 2015-06-22 20:31:16 +00:00
README
configure Prepare replacing ISL by its 'make dist' files 2015-06-22 17:52:33 +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.