hanchenye-llvm-project/polly
Tobias Grosser 1d348673e0 Add a sceleton for a polyhedral dead code elimination.
Such a dead code elimination can remove redundant stores to arrays. It can also
eliminate calculations where the results are stored to memory but where they are
overwritten before ever being read. It may also fix bugs like:
http://llvm.org/bugs/show_bug.cgi?id=5117

This commit just adds a sceleton without any functionality.

If anybody is interested to learn about polyhedral optimizations this would be
a good task. Well definined, self contained and pretty simple. Ping me if you
want to start and you need some pointers to get going.

llvm-svn: 149386
2012-01-31 14:00:27 +00:00
..
autoconf configure: Add gmp_inc when checking for CLooG 2011-10-04 06:55:03 +00:00
cmake
docs
include Add a sceleton for a polyhedral dead code elimination. 2012-01-31 14:00:27 +00:00
lib Add a sceleton for a polyhedral dead code elimination. 2012-01-31 14:00:27 +00:00
test Support non-affine access functions in Polly. 2011-12-20 10:43:14 +00:00
tools
utils Use isl version: 3c66541593a6bf3b5a3d35d31567abe6c9e5a04b 2012-01-30 19:38:40 +00:00
www www: Add news about the improved isl scheduling support 2012-01-31 09:13:12 +00:00
CMakeLists.txt Buildsystem: Add -no-rtti 2011-06-30 19:50:04 +00:00
CREDITS.txt (Test commit for polly) 2011-07-16 13:30:03 +00:00
LICENSE.txt Happy new year 2012! 2012-01-01 08:16:56 +00:00
Makefile
Makefile.common.in
Makefile.config.in Buildsystem: Add -no-rtti 2011-06-30 19:50:04 +00:00
README Remove some empty lines 2011-10-04 06:56:36 +00:00
configure configure: Add gmp_inc when checking for CLooG 2011-10-04 06:55:03 +00:00

README

Polly - Polyhedral optimizations for LLVM

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.