diff options
author | Andrew Trick <atrick@apple.com> | 2012-02-08 21:22:53 +0000 |
---|---|---|
committer | Andrew Trick <atrick@apple.com> | 2012-02-08 21:22:53 +0000 |
commit | c7d081b5946b9ff9f7400d5b41f36cad3fc317aa (patch) | |
tree | 184930c4459a1a3e98d94860cda629806b1cd2db | |
parent | 61f1e3db43e556f495b6b9360d2f550291f78471 (diff) | |
download | external_llvm-c7d081b5946b9ff9f7400d5b41f36cad3fc317aa.zip external_llvm-c7d081b5946b9ff9f7400d5b41f36cad3fc317aa.tar.gz external_llvm-c7d081b5946b9ff9f7400d5b41f36cad3fc317aa.tar.bz2 |
Move pass configuration out of pass constructors: PostRAScheduler.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@150096 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | include/llvm/CodeGen/Passes.h | 2 | ||||
-rw-r--r-- | lib/CodeGen/Passes.cpp | 2 | ||||
-rw-r--r-- | lib/CodeGen/PostRASchedulerList.cpp | 14 | ||||
-rw-r--r-- | lib/Target/PTX/PTXTargetMachine.cpp | 2 |
4 files changed, 11 insertions, 9 deletions
diff --git a/include/llvm/CodeGen/Passes.h b/include/llvm/CodeGen/Passes.h index 14dcd2c..b0b36db 100644 --- a/include/llvm/CodeGen/Passes.h +++ b/include/llvm/CodeGen/Passes.h @@ -271,7 +271,7 @@ namespace llvm { /// createPostRAScheduler - This pass performs post register allocation /// scheduling. - FunctionPass *createPostRAScheduler(CodeGenOpt::Level OptLevel); + FunctionPass *createPostRAScheduler(); /// BranchFolding Pass - This pass performs machine code CFG based /// optimizations to delete branches to branches, eliminate branches to diff --git a/lib/CodeGen/Passes.cpp b/lib/CodeGen/Passes.cpp index 0a4d4d7..877b4bf 100644 --- a/lib/CodeGen/Passes.cpp +++ b/lib/CodeGen/Passes.cpp @@ -285,7 +285,7 @@ void TargetPassConfig::addMachinePasses() { // Second pass scheduler. if (getOptLevel() != CodeGenOpt::None && !DisablePostRA) { - PM.add(createPostRAScheduler(getOptLevel())); + PM.add(createPostRAScheduler()); printNoVerify("After PostRAScheduler"); } diff --git a/lib/CodeGen/PostRASchedulerList.cpp b/lib/CodeGen/PostRASchedulerList.cpp index 1e06ee9..bc81464 100644 --- a/lib/CodeGen/PostRASchedulerList.cpp +++ b/lib/CodeGen/PostRASchedulerList.cpp @@ -82,16 +82,15 @@ namespace { AliasAnalysis *AA; const TargetInstrInfo *TII; RegisterClassInfo RegClassInfo; - CodeGenOpt::Level OptLevel; public: static char ID; - PostRAScheduler(CodeGenOpt::Level ol) : - MachineFunctionPass(ID), OptLevel(ol) {} + PostRAScheduler() : MachineFunctionPass(ID) {} void getAnalysisUsage(AnalysisUsage &AU) const { AU.setPreservesCFG(); AU.addRequired<AliasAnalysis>(); + AU.addRequired<TargetPassConfig>(); AU.addRequired<MachineDominatorTree>(); AU.addPreserved<MachineDominatorTree>(); AU.addRequired<MachineLoopInfo>(); @@ -209,6 +208,8 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) { MachineLoopInfo &MLI = getAnalysis<MachineLoopInfo>(); MachineDominatorTree &MDT = getAnalysis<MachineDominatorTree>(); AliasAnalysis *AA = &getAnalysis<AliasAnalysis>(); + TargetPassConfig *PassConfig = &getAnalysis<TargetPassConfig>(); + RegClassInfo.runOnMachineFunction(Fn); // Check for explicit enable/disable of post-ra scheduling. @@ -222,7 +223,8 @@ bool PostRAScheduler::runOnMachineFunction(MachineFunction &Fn) { // Check that post-RA scheduling is enabled for this target. // This may upgrade the AntiDepMode. const TargetSubtargetInfo &ST = Fn.getTarget().getSubtarget<TargetSubtargetInfo>(); - if (!ST.enablePostRAScheduler(OptLevel, AntiDepMode, CriticalPathRCs)) + if (!ST.enablePostRAScheduler(PassConfig->getOptLevel(), AntiDepMode, + CriticalPathRCs)) return false; } @@ -710,6 +712,6 @@ void SchedulePostRATDList::ListScheduleTopDown() { // Public Constructor Functions //===----------------------------------------------------------------------===// -FunctionPass *llvm::createPostRAScheduler(CodeGenOpt::Level OptLevel) { - return new PostRAScheduler(OptLevel); +FunctionPass *llvm::createPostRAScheduler() { + return new PostRAScheduler(); } diff --git a/lib/Target/PTX/PTXTargetMachine.cpp b/lib/Target/PTX/PTXTargetMachine.cpp index 38cc005..6c7f7b1 100644 --- a/lib/Target/PTX/PTXTargetMachine.cpp +++ b/lib/Target/PTX/PTXTargetMachine.cpp @@ -353,7 +353,7 @@ bool PTXPassConfig::addCodeGenPasses(MCContext *&OutContext) { // Second pass scheduler. if (getOptLevel() != CodeGenOpt::None) { - PM.add(createPostRAScheduler(getOptLevel())); + PM.add(createPostRAScheduler()); printAndVerify("After PostRAScheduler"); } |