summaryrefslogtreecommitdiffstats
path: root/polly
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2019-03-25 23:26:59 +0000
committerMichael Kruse <llvm@meinersbur.de>2019-03-25 23:26:59 +0000
commitea40d5b05b8b7a08ec60d01d2381748390aeafe9 (patch)
tree5c7a293486d84df584e268b0a50903dde6fe47b3 /polly
parent1181c9f45db11e2c58170bd7e7b0bd49f1dcd63b (diff)
downloadbcm5719-llvm-ea40d5b05b8b7a08ec60d01d2381748390aeafe9.tar.gz
bcm5719-llvm-ea40d5b05b8b7a08ec60d01d2381748390aeafe9.zip
Moving ManagedMemoryRewritePass when hybrid option is selected
Compiling with -polly-target=hybrid was causing Polly to occur two times in the pipeline. The reason was how the ManagedMemoryRewritePass was registered in the pass manager. ManagedMemoryRewritePass being a ModulePass was forcing all previous passes to get recomputed. This commit avoids Polly to appear two times in the pipeline registering the ManagedMemoryRewritePass later in the pass manager. Patch by Lorenzo Chelini <l.chelini@icloud.com> Differential Revision: https://reviews.llvm.org/D59263 llvm-svn: 356965
Diffstat (limited to 'polly')
-rw-r--r--polly/lib/Support/RegisterPasses.cpp11
1 files changed, 7 insertions, 4 deletions
diff --git a/polly/lib/Support/RegisterPasses.cpp b/polly/lib/Support/RegisterPasses.cpp
index e0e02d1afe3..676756d2490 100644
--- a/polly/lib/Support/RegisterPasses.cpp
+++ b/polly/lib/Support/RegisterPasses.cpp
@@ -349,12 +349,9 @@ void registerPollyPasses(llvm::legacy::PassManagerBase &PM) {
PM.add(polly::createPruneUnprofitablePass());
#ifdef GPU_CODEGEN
- if (Target == TARGET_HYBRID) {
+ if (Target == TARGET_HYBRID)
PM.add(
polly::createPPCGCodeGenerationPass(GPUArchChoice, GPURuntimeChoice));
- PM.add(polly::createManagedMemoryRewritePassPass(GPUArchChoice,
- GPURuntimeChoice));
- }
#endif
if (Target == TARGET_CPU || Target == TARGET_HYBRID)
switch (Optimizer) {
@@ -388,6 +385,12 @@ void registerPollyPasses(llvm::legacy::PassManagerBase &PM) {
}
#endif
+#ifdef GPU_CODEGEN
+ if (Target == TARGET_HYBRID)
+ PM.add(polly::createManagedMemoryRewritePassPass(GPUArchChoice,
+ GPURuntimeChoice));
+#endif
+
// FIXME: This dummy ModulePass keeps some programs from miscompiling,
// probably some not correctly preserved analyses. It acts as a barrier to
// force all analysis results to be recomputed.
OpenPOWER on IntegriCloud