llvm-project/polly/lib
Michael Kruse 4c86a1d97b IR cleanup after CodeGeneration
Re-run canonicalization passes after Polly's code generation.

The set of passes currently added here are nearly all the passes between
--polly-position=early and --polly-position=before-vectorizer, i.e. all
passes that would usually run after Polly.

In order to run these only if Polly actually modified the code, we add a
function attribute "polly-optimzed" to a function that contains
generated code. The cleanup pass is skipped if the function does not
have this attribute.

There is no support by the (legacy) PassManager to run passes only under
some conditions. One could have wrapped all transformation passes to run
only when CodeGeneration changed the code, but the analyses would run
anyway. This patch creates an independent pass manager. The
disadvantages are that all analyses have to re-run even if preserved and
it does not honor compiler switches like the PassManagerBuilder does.

Differential Revision: http://reviews.llvm.org/D14333

llvm-svn: 254150
2015-11-26 12:36:25 +00:00
..
Analysis Introduce origin/kind for exit PHI node accesses 2015-11-26 12:26:06 +00:00
CodeGen IR cleanup after CodeGeneration 2015-11-26 12:36:25 +00:00
Exchange [NFC] Consistenly use commented and annotated ScopPass functions 2015-09-27 15:43:29 +00:00
External isl: Update to isl-0.15-136-g4d5654a 2015-11-21 20:48:39 +00:00
JSON Added arcanist linters and cleaned errors and warnings 2014-08-18 00:40:13 +00:00
Support IR cleanup after CodeGeneration 2015-11-26 12:36:25 +00:00
Transform Full/partial tile separation for vectorization 2015-10-20 09:12:21 +00:00
CMakeLists.txt IR cleanup after CodeGeneration 2015-11-26 12:36:25 +00:00
Makefile Remove independent blocks pass 2015-10-18 12:28:00 +00:00
Polly.cpp Move Pass registration into polly library 2014-03-19 17:54:23 +00:00