summaryrefslogtreecommitdiffstats
path: root/llvm/lib
diff options
context:
space:
mode:
authorMichael Kuperstein <mkuper@google.com>2016-06-24 20:13:42 +0000
committerMichael Kuperstein <mkuper@google.com>2016-06-24 20:13:42 +0000
commit82d5da5aac4ad77978326ba1c19966e224a5f700 (patch)
treea039dee28373eea93ce21b3a7455ff841b409b3d /llvm/lib
parent3b3e954ea2a48d0d466dec383f6bfa40a90dd0e1 (diff)
downloadbcm5719-llvm-82d5da5aac4ad77978326ba1c19966e224a5f700.tar.gz
bcm5719-llvm-82d5da5aac4ad77978326ba1c19966e224a5f700.zip
[PM] Port PreISelIntrinsicLowering to the new PM
llvm-svn: 273713
Diffstat (limited to 'llvm/lib')
-rw-r--r--llvm/lib/CodeGen/CodeGen.cpp2
-rw-r--r--llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp31
-rw-r--r--llvm/lib/Passes/PassBuilder.cpp1
-rw-r--r--llvm/lib/Passes/PassRegistry.def1
4 files changed, 23 insertions, 12 deletions
diff --git a/llvm/lib/CodeGen/CodeGen.cpp b/llvm/lib/CodeGen/CodeGen.cpp
index dc19013be94..bea1bbe0dac 100644
--- a/llvm/lib/CodeGen/CodeGen.cpp
+++ b/llvm/lib/CodeGen/CodeGen.cpp
@@ -65,7 +65,7 @@ void llvm::initializeCodeGen(PassRegistry &Registry) {
initializePostMachineSchedulerPass(Registry);
initializePostRAHazardRecognizerPass(Registry);
initializePostRASchedulerPass(Registry);
- initializePreISelIntrinsicLoweringPass(Registry);
+ initializePreISelIntrinsicLoweringLegacyPassPass(Registry);
initializeProcessImplicitDefsPass(Registry);
initializeRegisterCoalescerPass(Registry);
initializeRenameIndependentSubregsPass(Registry);
diff --git a/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp b/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
index a1ff231412d..fbc2bc64f42 100644
--- a/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
+++ b/llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp
@@ -11,6 +11,7 @@
//
//===----------------------------------------------------------------------===//
+#include "llvm/CodeGen/PreISelIntrinsicLowering.h"
#include "llvm/CodeGen/Passes.h"
#include "llvm/IR/Function.h"
#include "llvm/IR/IRBuilder.h"
@@ -63,23 +64,31 @@ bool lowerIntrinsics(Module &M) {
return Changed;
}
-class PreISelIntrinsicLowering : public ModulePass {
+class PreISelIntrinsicLoweringLegacyPass : public ModulePass {
public:
static char ID;
- PreISelIntrinsicLowering() : ModulePass(ID) {}
+ PreISelIntrinsicLoweringLegacyPass() : ModulePass(ID) {}
- bool runOnModule(Module &M) {
- return lowerIntrinsics(M);
- }
+ bool runOnModule(Module &M) { return lowerIntrinsics(M); }
};
-char PreISelIntrinsicLowering::ID;
-
+char PreISelIntrinsicLoweringLegacyPass::ID;
}
-INITIALIZE_PASS(PreISelIntrinsicLowering, "pre-isel-intrinsic-lowering",
- "Pre-ISel Intrinsic Lowering", false, false)
+INITIALIZE_PASS(PreISelIntrinsicLoweringLegacyPass,
+ "pre-isel-intrinsic-lowering", "Pre-ISel Intrinsic Lowering",
+ false, false)
+
+namespace llvm {
+ModulePass *createPreISelIntrinsicLoweringPass() {
+ return new PreISelIntrinsicLoweringLegacyPass;
+}
-ModulePass *llvm::createPreISelIntrinsicLoweringPass() {
- return new PreISelIntrinsicLowering;
+PreservedAnalyses PreISelIntrinsicLoweringPass::run(Module &M,
+ ModuleAnalysisManager &AM) {
+ if (!lowerIntrinsics(M))
+ return PreservedAnalyses::all();
+ else
+ return PreservedAnalyses::none();
}
+} // End llvm namespace
diff --git a/llvm/lib/Passes/PassBuilder.cpp b/llvm/lib/Passes/PassBuilder.cpp
index 5a5b49af2f4..c372b5a378a 100644
--- a/llvm/lib/Passes/PassBuilder.cpp
+++ b/llvm/lib/Passes/PassBuilder.cpp
@@ -44,6 +44,7 @@
#include "llvm/Analysis/TargetLibraryInfo.h"
#include "llvm/Analysis/TargetTransformInfo.h"
#include "llvm/Analysis/TypeBasedAliasAnalysis.h"
+#include "llvm/CodeGen/PreISelIntrinsicLowering.h"
#include "llvm/IR/Dominators.h"
#include "llvm/IR/IRPrintingPasses.h"
#include "llvm/IR/PassManager.h"
diff --git a/llvm/lib/Passes/PassRegistry.def b/llvm/lib/Passes/PassRegistry.def
index 18b50ddcc20..c1e1e59ae82 100644
--- a/llvm/lib/Passes/PassRegistry.def
+++ b/llvm/lib/Passes/PassRegistry.def
@@ -53,6 +53,7 @@ MODULE_PASS("no-op-module", NoOpModulePass())
MODULE_PASS("pgo-icall-prom", PGOIndirectCallPromotion())
MODULE_PASS("pgo-instr-gen", PGOInstrumentationGen())
MODULE_PASS("pgo-instr-use", PGOInstrumentationUse())
+MODULE_PASS("pre-isel-intrinsic-lowering", PreISelIntrinsicLoweringPass())
MODULE_PASS("print-profile-summary", ProfileSummaryPrinterPass(dbgs()))
MODULE_PASS("print-callgraph", CallGraphPrinterPass(dbgs()))
MODULE_PASS("print", PrintModulePass(dbgs()))
OpenPOWER on IntegriCloud