diff options
author | Michael Kruse <llvm@meinersbur.de> | 2015-08-14 20:10:27 +0000 |
---|---|---|
committer | Michael Kruse <llvm@meinersbur.de> | 2015-08-14 20:10:27 +0000 |
commit | 82a1c7de09c9d650c1378f377524f70065f11b61 (patch) | |
tree | dea125e21b76285308625b3cf1ea49cbba18af5a /polly/lib/CodeGen/CodeGeneration.cpp | |
parent | 8b4edba9da520dae8a577d8d29caa3f8bc96dc4d (diff) | |
download | bcm5719-llvm-82a1c7de09c9d650c1378f377524f70065f11b61.tar.gz bcm5719-llvm-82a1c7de09c9d650c1378f377524f70065f11b61.zip |
Make TempScopInfo a RegionPass
This modifies the order in which Polly passes are executed.
Assuming a function has two scops (A and B), the order before was:
FunctionPassManager
ScopDetection
IndependentBlocks
TempScopInfo for A and B
RegionPassManager
ScopInfo for A
DependenceInfo for A
IslScheduleOptimizer for A
IslAstInfo for A
CodeGeneration for A
ScopInfo for B
DependenceInfo for B
IslScheduleOptimizer for B
IslAstInfo for B
CodeGeneration for B
After this patch:
FunctionPassManager
ScopDetection
IndependentBlocks
RegionPassManager
TempScopInfo for A
ScopInfo for A
DependenceInfo for A
IslScheduleOptimizer for A
IslAstInfo for A
CodeGeneration for A
TempScopInfo for B
ScopInfo for B
DependenceInfo for B
IslScheduleOptimizer for B
IslAstInfo for B
CodeGeneration for B
TempScopInfo for B might store information and references to the IR
that CodeGeneration for A might modify. Changing the order ensures that
the IR is not modified from the analysis of a region until code
generation.
Reviewers: grosser
Differential Revision: http://reviews.llvm.org/D12014
llvm-svn: 245091
Diffstat (limited to 'polly/lib/CodeGen/CodeGeneration.cpp')
-rw-r--r-- | polly/lib/CodeGen/CodeGeneration.cpp | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/polly/lib/CodeGen/CodeGeneration.cpp b/polly/lib/CodeGen/CodeGeneration.cpp index 1795cadad58..b2631a2687b 100644 --- a/polly/lib/CodeGen/CodeGeneration.cpp +++ b/polly/lib/CodeGen/CodeGeneration.cpp @@ -30,6 +30,7 @@ #include "llvm/IR/Module.h" #include "llvm/IR/Verifier.h" #include "llvm/Support/Debug.h" +#include "llvm/Analysis/PostDominators.h" using namespace polly; using namespace llvm; @@ -170,6 +171,7 @@ public: AU.addPreserved<LoopInfoWrapperPass>(); AU.addPreserved<DominatorTreeWrapperPass>(); + AU.addPreserved<PostDominatorTree>(); AU.addPreserved<IslAstInfo>(); AU.addPreserved<ScopDetection>(); AU.addPreserved<ScalarEvolution>(); |