summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMichael Kruse <llvm@meinersbur.de>2016-03-02 14:59:16 +0000
committerMichael Kruse <llvm@meinersbur.de>2016-03-02 14:59:16 +0000
commit1bf6bafb2d47867d19f5b9e666e3195b776c0bf7 (patch)
tree3dfe3893a410d0953134df7df72141da41ab7e1d
parent649fdb126a611a4776b79d235db879c1f9db808b (diff)
downloadbcm5719-llvm-1bf6bafb2d47867d19f5b9e666e3195b776c0bf7.tar.gz
bcm5719-llvm-1bf6bafb2d47867d19f5b9e666e3195b776c0bf7.zip
Fix: Add pass manager barrier.
The LNT test suite with -polly-process-unprofitable -polly-position=before-vectorizer currenty fails 59 tests. With this barrier added, only 16 keep failing. This is probably because Polly's code generation currently does not correctly preserve all analyses it promised to preserve. Temporarily add this barrier until further investigation. llvm-svn: 262488
-rw-r--r--polly/lib/Support/RegisterPasses.cpp6
1 files changed, 6 insertions, 0 deletions
diff --git a/polly/lib/Support/RegisterPasses.cpp b/polly/lib/Support/RegisterPasses.cpp
index e2f33490162..2a59fd9f6cf 100644
--- a/polly/lib/Support/RegisterPasses.cpp
+++ b/polly/lib/Support/RegisterPasses.cpp
@@ -30,6 +30,7 @@
#include "polly/ScopInfo.h"
#include "llvm/Analysis/CFGPrinter.h"
#include "llvm/IR/LegacyPassManager.h"
+#include "llvm/Transforms/IPO.h"
#include "llvm/Transforms/IPO/PassManagerBuilder.h"
#include "llvm/Transforms/Scalar.h"
#include "llvm/Transforms/Vectorize.h"
@@ -226,6 +227,11 @@ void registerPollyPasses(llvm::legacy::PassManagerBase &PM) {
break;
}
+ // 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.
+ PM.add(createBarrierNoopPass());
+
if (CFGPrinter)
PM.add(llvm::createCFGPrinterPass());
}
OpenPOWER on IntegriCloud