Mirror of official polly git repository located at http://llvm.org/git/polly. Updated every five minutes.
C LLVM C++ Shell Makefile Smalltalk Other
Latest commit c397ad2 Jan 19, 2017 @tobig tobig BlockGenerator: Do not redundantly reload from PHI-allocas in non-aff…
…ine stmts

Before this change we created an additional reload in the copy of the incoming
block of a PHI node to reload the incoming value, even though the necessary
value has already been made available by the normally generated scalar loads.
In this change, we drop the code that generates this redundant reload and
instead just reuse the scalar value already available.

Besides making the generated code slightly cleaner, this change also makes sure
that scalar loads go through the normal logic, which means they can be remapped
(e.g. to array slots) and corresponding code is generated to load from the
remapped location. Without this change, the original scalar load at the
beginning of the non-affine region would have been remapped, but the redundant
scalar load would continue to load from the old PHI slot location.

It might be possible to further simplify the code in addOperandToPHI,
but this would not only mean to pull out getNewValue, but to also change the
insertion point update logic. As this did not work when trying it the first
time, this change is likely not trivial. To not introduce bugs last minute, we
postpone further simplications to a subsequent commit.

We also document the current behavior a little bit better.

Reviewed By: Meinersbur

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

git-svn-id: https://llvm.org/svn/llvm-project/polly/trunk@292486 91177308-0d34-0410-b5e6-96231b3b80d8
Permalink
Failed to load latest commit information.
cmake Remove -fvisibility=hidden and FORCE_STATIC. Sep 12, 2016
docs docs: Add source of LLVM pass order illustration Jan 17, 2017
include/polly BlockGenerator: Do not redundantly reload from PHI-allocas in non-aff… Jan 19, 2017
lib BlockGenerator: Do not redundantly reload from PHI-allocas in non-aff… Jan 19, 2017
test BlockGenerator: Do not redundantly reload from PHI-allocas in non-aff… Jan 19, 2017
tools GPURuntime: ensure compilation with C99 Sep 11, 2016
unittests
utils Revise polly-{update|check}-format targets Sep 14, 2015
www www: Add dates RSS news Jan 8, 2017
.arcconfig Upgrade all the .arcconfigs to https. Jul 14, 2016
.arclint Adjusted arc linter config for modern version of arcanist Aug 12, 2015
.gitattributes gitattributes: .png and .txt are no text files Jul 28, 2013
.gitignore Do not track the isl PDF manual in SVN Jan 16, 2017
CMakeLists.txt Teach Polly's standalone build to work now that we include the gmock Jan 11, 2017
CREDITS.txt Add myself to the credits Aug 10, 2014
LICENSE.txt Update copyright year to 2016. Mar 30, 2016
README Trivial change to the README, mainly to test commit access. Oct 9, 2012

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.