diff options
| author | Michael Kuperstein <mkuper@google.com> | 2016-06-24 20:13:42 +0000 |
|---|---|---|
| committer | Michael Kuperstein <mkuper@google.com> | 2016-06-24 20:13:42 +0000 |
| commit | 82d5da5aac4ad77978326ba1c19966e224a5f700 (patch) | |
| tree | a039dee28373eea93ce21b3a7455ff841b409b3d /llvm/lib | |
| parent | 3b3e954ea2a48d0d466dec383f6bfa40a90dd0e1 (diff) | |
| download | bcm5719-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.cpp | 2 | ||||
| -rw-r--r-- | llvm/lib/CodeGen/PreISelIntrinsicLowering.cpp | 31 | ||||
| -rw-r--r-- | llvm/lib/Passes/PassBuilder.cpp | 1 | ||||
| -rw-r--r-- | llvm/lib/Passes/PassRegistry.def | 1 |
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())) |

