diff options
author | Dan Gohman <gohman@apple.com> | 2008-03-11 22:29:46 +0000 |
---|---|---|
committer | Dan Gohman <gohman@apple.com> | 2008-03-11 22:29:46 +0000 |
commit | bfae83139dcb4fffd50b939e1b1224b0126f04d4 (patch) | |
tree | 384a612855c8cb2cdf31642dc137ed7c9081449b /lib | |
parent | e846dd89c173d462d197046b76d37588896623f3 (diff) | |
download | external_llvm-bfae83139dcb4fffd50b939e1b1224b0126f04d4.zip external_llvm-bfae83139dcb4fffd50b939e1b1224b0126f04d4.tar.gz external_llvm-bfae83139dcb4fffd50b939e1b1224b0126f04d4.tar.bz2 |
Use PassManagerBase instead of FunctionPassManager for functions
that merely add passes. This allows them to be used with either
FunctionPassManager or PassManager, or even with a custom new
kind of pass manager.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@48256 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
22 files changed, 69 insertions, 72 deletions
diff --git a/lib/CodeGen/ELFWriter.cpp b/lib/CodeGen/ELFWriter.cpp index 82bf992..8b6fbb7 100644 --- a/lib/CodeGen/ELFWriter.cpp +++ b/lib/CodeGen/ELFWriter.cpp @@ -50,11 +50,11 @@ using namespace llvm; char ELFWriter::ID = 0; /// AddELFWriter - Concrete function to add the ELF writer to the function pass /// manager. -MachineCodeEmitter *llvm::AddELFWriter(FunctionPassManager &FPM, +MachineCodeEmitter *llvm::AddELFWriter(PassManagerBase &PM, std::ostream &O, TargetMachine &TM) { ELFWriter *EW = new ELFWriter(O, TM); - FPM.add(EW); + PM.add(EW); return &EW->getMachineCodeEmitter(); } diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index 32fbc15..33cf6b5 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -51,7 +51,7 @@ DisablePostRAScheduler("disable-post-RA-scheduler", cl::init(true)); FileModel::Model -LLVMTargetMachine::addPassesToEmitFile(FunctionPassManager &PM, +LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM, std::ostream &Out, CodeGenFileType FileType, bool Fast) { @@ -158,7 +158,7 @@ LLVMTargetMachine::addPassesToEmitFile(FunctionPassManager &PM, /// addPassesToEmitFileFinish - If the passes to emit the specified file had to /// be split up (e.g., to add an object writer pass), this method can be used to /// finish up adding passes to emit the file, if necessary. -bool LLVMTargetMachine::addPassesToEmitFileFinish(FunctionPassManager &PM, +bool LLVMTargetMachine::addPassesToEmitFileFinish(PassManagerBase &PM, MachineCodeEmitter *MCE, bool Fast) { if (MCE) @@ -178,7 +178,7 @@ bool LLVMTargetMachine::addPassesToEmitFileFinish(FunctionPassManager &PM, /// of functions. This method should returns true if machine code emission is /// not supported. /// -bool LLVMTargetMachine::addPassesToEmitMachineCode(FunctionPassManager &PM, +bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM, MachineCodeEmitter &MCE, bool Fast) { // Standard LLVM-Level Passes. diff --git a/lib/CodeGen/MachOWriter.cpp b/lib/CodeGen/MachOWriter.cpp index d163df3..f77f85e 100644 --- a/lib/CodeGen/MachOWriter.cpp +++ b/lib/CodeGen/MachOWriter.cpp @@ -43,11 +43,11 @@ using namespace llvm; /// AddMachOWriter - Concrete function to add the Mach-O writer to the function /// pass manager. -MachineCodeEmitter *llvm::AddMachOWriter(FunctionPassManager &FPM, +MachineCodeEmitter *llvm::AddMachOWriter(PassManagerBase &PM, std::ostream &O, TargetMachine &TM) { MachOWriter *MOW = new MachOWriter(O, TM); - FPM.add(MOW); + PM.add(MOW); return &MOW->getMachineCodeEmitter(); } diff --git a/lib/Target/ARM/ARMTargetMachine.cpp b/lib/Target/ARM/ARMTargetMachine.cpp index 66d8953..1b51373 100644 --- a/lib/Target/ARM/ARMTargetMachine.cpp +++ b/lib/Target/ARM/ARMTargetMachine.cpp @@ -116,12 +116,12 @@ const TargetAsmInfo *ARMTargetMachine::createTargetAsmInfo() const { // Pass Pipeline Configuration -bool ARMTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool ARMTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { PM.add(createARMISelDag(*this)); return false; } -bool ARMTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { +bool ARMTargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) { // FIXME: temporarily disabling load / store optimization pass for Thumb mode. if (!Fast && !DisableLdStOpti && !Subtarget.isThumb()) PM.add(createARMLoadStoreOptimizationPass()); @@ -133,7 +133,7 @@ bool ARMTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { return true; } -bool ARMTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool ARMTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { // Output assembly language. PM.add(createARMCodePrinterPass(Out, *this)); @@ -141,7 +141,7 @@ bool ARMTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, } -bool ARMTargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, +bool ARMTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // FIXME: Move this to TargetJITInfo! setRelocationModel(Reloc::Static); @@ -153,7 +153,7 @@ bool ARMTargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, return false; } -bool ARMTargetMachine::addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, +bool ARMTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // Machine code emitter pass for ARM. PM.add(createARMCodeEmitterPass(*this, MCE)); diff --git a/lib/Target/ARM/ARMTargetMachine.h b/lib/Target/ARM/ARMTargetMachine.h index 84416d6..d4c4118 100644 --- a/lib/Target/ARM/ARMTargetMachine.h +++ b/lib/Target/ARM/ARMTargetMachine.h @@ -55,13 +55,13 @@ public: virtual const TargetAsmInfo *createTargetAsmInfo() const; // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); - virtual bool addCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); - virtual bool addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); }; diff --git a/lib/Target/Alpha/AlphaTargetMachine.cpp b/lib/Target/Alpha/AlphaTargetMachine.cpp index 23ce313..0887b95 100644 --- a/lib/Target/Alpha/AlphaTargetMachine.cpp +++ b/lib/Target/Alpha/AlphaTargetMachine.cpp @@ -70,29 +70,29 @@ AlphaTargetMachine::AlphaTargetMachine(const Module &M, const std::string &FS) // Pass Pipeline Configuration //===----------------------------------------------------------------------===// -bool AlphaTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool AlphaTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { PM.add(createAlphaISelDag(*this)); return false; } -bool AlphaTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { +bool AlphaTargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) { // Must run branch selection immediately preceding the asm printer PM.add(createAlphaBranchSelectionPass()); return false; } -bool AlphaTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool AlphaTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { PM.add(createAlphaLLRPPass(*this)); PM.add(createAlphaCodePrinterPass(Out, *this)); return false; } -bool AlphaTargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, +bool AlphaTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { PM.add(createAlphaCodeEmitterPass(*this, MCE)); if (DumpAsm) PM.add(createAlphaCodePrinterPass(*cerr.stream(), *this)); return false; } -bool AlphaTargetMachine::addSimpleCodeEmitter(FunctionPassManager &PM, +bool AlphaTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { return addCodeEmitter(PM, Fast, DumpAsm, MCE); diff --git a/lib/Target/Alpha/AlphaTargetMachine.h b/lib/Target/Alpha/AlphaTargetMachine.h index 5c74181..d365b7d 100644 --- a/lib/Target/Alpha/AlphaTargetMachine.h +++ b/lib/Target/Alpha/AlphaTargetMachine.h @@ -58,13 +58,13 @@ public: static unsigned getModuleMatchQuality(const Module &M); // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); - virtual bool addCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); - virtual bool addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); }; diff --git a/lib/Target/CellSPU/SPUTargetMachine.cpp b/lib/Target/CellSPU/SPUTargetMachine.cpp index aca949a..3019b55 100644 --- a/lib/Target/CellSPU/SPUTargetMachine.cpp +++ b/lib/Target/CellSPU/SPUTargetMachine.cpp @@ -71,14 +71,14 @@ SPUTargetMachine::SPUTargetMachine(const Module &M, const std::string &FS) //===----------------------------------------------------------------------===// bool -SPUTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) +SPUTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { // Install an instruction selector. PM.add(createSPUISelDag(*this)); return false; } -bool SPUTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool SPUTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { PM.add(createSPUAsmPrinterPass(Out, *this)); return false; diff --git a/lib/Target/CellSPU/SPUTargetMachine.h b/lib/Target/CellSPU/SPUTargetMachine.h index 6f1cabb..c8f70d7 100644 --- a/lib/Target/CellSPU/SPUTargetMachine.h +++ b/lib/Target/CellSPU/SPUTargetMachine.h @@ -83,8 +83,8 @@ public: } // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); }; diff --git a/lib/Target/IA64/IA64TargetMachine.cpp b/lib/Target/IA64/IA64TargetMachine.cpp index eb84e6a..d472b5c 100644 --- a/lib/Target/IA64/IA64TargetMachine.cpp +++ b/lib/Target/IA64/IA64TargetMachine.cpp @@ -73,17 +73,17 @@ IA64TargetMachine::IA64TargetMachine(const Module &M, const std::string &FS) // Pass Pipeline Configuration //===----------------------------------------------------------------------===// -bool IA64TargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool IA64TargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { PM.add(createIA64DAGToDAGInstructionSelector(*this)); return false; } -bool IA64TargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { +bool IA64TargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) { // Make sure everything is bundled happily PM.add(createIA64BundlingPass(*this)); return true; } -bool IA64TargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool IA64TargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { PM.add(createIA64CodePrinterPass(Out, *this)); return false; diff --git a/lib/Target/IA64/IA64TargetMachine.h b/lib/Target/IA64/IA64TargetMachine.h index 5b320c2..9e553a1 100644 --- a/lib/Target/IA64/IA64TargetMachine.h +++ b/lib/Target/IA64/IA64TargetMachine.h @@ -48,9 +48,9 @@ public: static unsigned getModuleMatchQuality(const Module &M); // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); }; } // End llvm namespace diff --git a/lib/Target/Mips/Mips.h b/lib/Target/Mips/Mips.h index 64c51f7..0387c6a 100644 --- a/lib/Target/Mips/Mips.h +++ b/lib/Target/Mips/Mips.h @@ -19,7 +19,6 @@ namespace llvm { class MipsTargetMachine; - class FunctionPassManager; class FunctionPass; class MachineCodeEmitter; diff --git a/lib/Target/Mips/MipsTargetMachine.cpp b/lib/Target/Mips/MipsTargetMachine.cpp index 7493bb5..09e058f 100644 --- a/lib/Target/Mips/MipsTargetMachine.cpp +++ b/lib/Target/Mips/MipsTargetMachine.cpp @@ -65,7 +65,7 @@ getModuleMatchQuality(const Module &M) // Install an instruction selector pass using // the ISelDag to gen Mips code. bool MipsTargetMachine:: -addInstSelector(FunctionPassManager &PM, bool Fast) +addInstSelector(PassManagerBase &PM, bool Fast) { PM.add(createMipsISelDag(*this)); return false; @@ -75,7 +75,7 @@ addInstSelector(FunctionPassManager &PM, bool Fast) // machine code is emitted. return true if -print-machineinstrs should // print out the code after the passes. bool MipsTargetMachine:: -addPreEmitPass(FunctionPassManager &PM, bool Fast) +addPreEmitPass(PassManagerBase &PM, bool Fast) { PM.add(createMipsDelaySlotFillerPass(*this)); return true; @@ -84,7 +84,7 @@ addPreEmitPass(FunctionPassManager &PM, bool Fast) // Implements the AssemblyEmitter for the target. Must return // true if AssemblyEmitter is supported bool MipsTargetMachine:: -addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { // Output assembly language. diff --git a/lib/Target/Mips/MipsTargetMachine.h b/lib/Target/Mips/MipsTargetMachine.h index d974d3c..2b877f2 100644 --- a/lib/Target/Mips/MipsTargetMachine.h +++ b/lib/Target/Mips/MipsTargetMachine.h @@ -55,9 +55,9 @@ namespace llvm { static unsigned getModuleMatchQuality(const Module &M); // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); }; } // End llvm namespace diff --git a/lib/Target/PowerPC/PPC.h b/lib/Target/PowerPC/PPC.h index 39407f7..b9f6483 100644 --- a/lib/Target/PowerPC/PPC.h +++ b/lib/Target/PowerPC/PPC.h @@ -23,7 +23,6 @@ namespace llvm { class PPCTargetMachine; - class FunctionPassManager; class FunctionPass; class MachineCodeEmitter; diff --git a/lib/Target/PowerPC/PPCTargetMachine.cpp b/lib/Target/PowerPC/PPCTargetMachine.cpp index f770eeb..a77cc15 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.cpp +++ b/lib/Target/PowerPC/PPCTargetMachine.cpp @@ -118,26 +118,26 @@ PPC64TargetMachine::PPC64TargetMachine(const Module &M, const std::string &FS) // Pass Pipeline Configuration //===----------------------------------------------------------------------===// -bool PPCTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool PPCTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { // Install an instruction selector. PM.add(createPPCISelDag(*this)); return false; } -bool PPCTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { +bool PPCTargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) { // Must run branch selection immediately preceding the asm printer. PM.add(createPPCBranchSelectionPass()); return false; } -bool PPCTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool PPCTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { PM.add(createPPCAsmPrinterPass(Out, *this)); return false; } -bool PPCTargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, +bool PPCTargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // The JIT should use the static relocation model in ppc32 mode, PIC in ppc64. // FIXME: This should be moved to TargetJITInfo!! @@ -161,7 +161,7 @@ bool PPCTargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, return false; } -bool PPCTargetMachine::addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, +bool PPCTargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // Machine code emitter pass for PowerPC. PM.add(createPPCCodeEmitterPass(*this, MCE)); diff --git a/lib/Target/PowerPC/PPCTargetMachine.h b/lib/Target/PowerPC/PPCTargetMachine.h index 1d76d15..ed87809 100644 --- a/lib/Target/PowerPC/PPCTargetMachine.h +++ b/lib/Target/PowerPC/PPCTargetMachine.h @@ -65,13 +65,13 @@ public: } // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); - virtual bool addCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); - virtual bool addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); virtual bool getEnableTailMergeDefault() const; }; diff --git a/lib/Target/Sparc/SparcTargetMachine.cpp b/lib/Target/Sparc/SparcTargetMachine.cpp index bef34e6..38f6d6a 100644 --- a/lib/Target/Sparc/SparcTargetMachine.cpp +++ b/lib/Target/Sparc/SparcTargetMachine.cpp @@ -61,7 +61,7 @@ unsigned SparcTargetMachine::getModuleMatchQuality(const Module &M) { #endif } -bool SparcTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool SparcTargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { PM.add(createSparcISelDag(*this)); return false; } @@ -69,13 +69,13 @@ bool SparcTargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { /// addPreEmitPass - This pass may be implemented by targets that want to run /// passes immediately before machine code is emitted. This should return /// true if -print-machineinstrs should print out the code after the passes. -bool SparcTargetMachine::addPreEmitPass(FunctionPassManager &PM, bool Fast) { +bool SparcTargetMachine::addPreEmitPass(PassManagerBase &PM, bool Fast) { PM.add(createSparcFPMoverPass(*this)); PM.add(createSparcDelaySlotFillerPass(*this)); return true; } -bool SparcTargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool SparcTargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { // Output assembly language. PM.add(createSparcCodePrinterPass(Out, *this)); diff --git a/lib/Target/Sparc/SparcTargetMachine.h b/lib/Target/Sparc/SparcTargetMachine.h index 0da9293..6ccb0d6 100644 --- a/lib/Target/Sparc/SparcTargetMachine.h +++ b/lib/Target/Sparc/SparcTargetMachine.h @@ -46,9 +46,9 @@ public: static unsigned getModuleMatchQuality(const Module &M); // Pass Pipeline Configuration - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPreEmitPass(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPreEmitPass(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); }; diff --git a/lib/Target/X86/X86.h b/lib/Target/X86/X86.h index c2a1dfd..81177ba 100644 --- a/lib/Target/X86/X86.h +++ b/lib/Target/X86/X86.h @@ -20,7 +20,6 @@ namespace llvm { class X86TargetMachine; -class FunctionPassManager; class FunctionPass; class MachineCodeEmitter; diff --git a/lib/Target/X86/X86TargetMachine.cpp b/lib/Target/X86/X86TargetMachine.cpp index 850eb38..2d0424b 100644 --- a/lib/Target/X86/X86TargetMachine.cpp +++ b/lib/Target/X86/X86TargetMachine.cpp @@ -153,24 +153,24 @@ X86TargetMachine::X86TargetMachine(const Module &M, const std::string &FS, // Pass Pipeline Configuration //===----------------------------------------------------------------------===// -bool X86TargetMachine::addInstSelector(FunctionPassManager &PM, bool Fast) { +bool X86TargetMachine::addInstSelector(PassManagerBase &PM, bool Fast) { // Install an instruction selector. PM.add(createX86ISelDag(*this, Fast)); return false; } -bool X86TargetMachine::addPostRegAlloc(FunctionPassManager &PM, bool Fast) { +bool X86TargetMachine::addPostRegAlloc(PassManagerBase &PM, bool Fast) { PM.add(createX86FloatingPointStackifierPass()); return true; // -print-machineinstr should print after this. } -bool X86TargetMachine::addAssemblyEmitter(FunctionPassManager &PM, bool Fast, +bool X86TargetMachine::addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out) { PM.add(createX86CodePrinterPass(Out, *this)); return false; } -bool X86TargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, +bool X86TargetMachine::addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { // FIXME: Move this to TargetJITInfo! if (DefRelocModel == Reloc::Default) { @@ -189,7 +189,7 @@ bool X86TargetMachine::addCodeEmitter(FunctionPassManager &PM, bool Fast, return false; } -bool X86TargetMachine::addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, +bool X86TargetMachine::addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE) { PM.add(createX86CodeEmitterPass(*this, MCE)); if (DumpAsm) diff --git a/lib/Target/X86/X86TargetMachine.h b/lib/Target/X86/X86TargetMachine.h index e9148b5..7a807b1 100644 --- a/lib/Target/X86/X86TargetMachine.h +++ b/lib/Target/X86/X86TargetMachine.h @@ -61,13 +61,13 @@ public: static unsigned getJITMatchQuality(); // Set up the pass pipeline. - virtual bool addInstSelector(FunctionPassManager &PM, bool Fast); - virtual bool addPostRegAlloc(FunctionPassManager &PM, bool Fast); - virtual bool addAssemblyEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addInstSelector(PassManagerBase &PM, bool Fast); + virtual bool addPostRegAlloc(PassManagerBase &PM, bool Fast); + virtual bool addAssemblyEmitter(PassManagerBase &PM, bool Fast, std::ostream &Out); - virtual bool addCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); - virtual bool addSimpleCodeEmitter(FunctionPassManager &PM, bool Fast, + virtual bool addSimpleCodeEmitter(PassManagerBase &PM, bool Fast, bool DumpAsm, MachineCodeEmitter &MCE); }; |