summaryrefslogtreecommitdiffstats
path: root/polly/lib/CodeGen/CodeGeneration.cpp
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2015-08-14 20:10:27 +0000
committerMichael Kruse <llvm@meinersbur.de>2015-08-14 20:10:27 +0000
commit82a1c7de09c9d650c1378f377524f70065f11b61 (patch)
treedea125e21b76285308625b3cf1ea49cbba18af5a /polly/lib/CodeGen/CodeGeneration.cpp
parent8b4edba9da520dae8a577d8d29caa3f8bc96dc4d (diff)
downloadbcm5719-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.cpp2
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>();
OpenPOWER on IntegriCloud