diff options
author | Michael Kruse <llvm@meinersbur.de> | 2015-11-26 12:36:25 +0000 |
---|---|---|
committer | Michael Kruse <llvm@meinersbur.de> | 2015-11-26 12:36:25 +0000 |
commit | 4c86a1d97b9361490c385cb521746a5ed7c270ec (patch) | |
tree | 630e3034ce7a0a1d3243412e0c5af1ef2f319fd8 /lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp | |
parent | cba170e4d0c7b82c29e66a45a4a9db7617b1ee44 (diff) | |
download | bcm5719-llvm-4c86a1d97b9361490c385cb521746a5ed7c270ec.tar.gz bcm5719-llvm-4c86a1d97b9361490c385cb521746a5ed7c270ec.zip |
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
Diffstat (limited to 'lldb/packages/Python/lldbsuite/test/python_api/process/main.cpp')
0 files changed, 0 insertions, 0 deletions