summaryrefslogtreecommitdiffstats
path: root/llvm/lib/CodeGen
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2010-02-02 19:14:27 +0000
committerChris Lattner <sabre@nondot.org>2010-02-02 19:14:27 +0000
commit03dc0f7077f1396e096d4da47ffce07c49d22595 (patch)
tree58a264e77bf8bf711bc920163dbea3a578112128 /llvm/lib/CodeGen
parent8345a07c255317b6c6b5bca2da30e41d2d9e6fbb (diff)
downloadbcm5719-llvm-03dc0f7077f1396e096d4da47ffce07c49d22595.tar.gz
bcm5719-llvm-03dc0f7077f1396e096d4da47ffce07c49d22595.zip
eliminate all forms of addPassesToEmitMachineCode except
the one used by the JIT. Remove all forms of addPassesToEmitFileFinish except the one used by the static code generator. Inline the remaining version of addPassesToEmitFileFinish into its only caller. llvm-svn: 95109
Diffstat (limited to 'llvm/lib/CodeGen')
-rw-r--r--llvm/lib/CodeGen/LLVMTargetMachine.cpp80
1 files changed, 8 insertions, 72 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp
index 55c659afce9..4bb8af5ac6f 100644
--- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp
+++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp
@@ -105,91 +105,27 @@ LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
if (addCommonCodeGenPasses(PM, OptLevel))
return FileModel::Error;
+ FileModel::Model ResultTy;
switch (FileType) {
default:
- break;
+ return FileModel::Error;
+ case TargetMachine::ObjectFile:
+ return FileModel::Error;
case TargetMachine::AssemblyFile: {
FunctionPass *Printer =
getTarget().createAsmPrinter(Out, *this, getMCAsmInfo(),
getAsmVerbosityDefault());
- if (Printer == 0) break;
+ if (Printer == 0) return FileModel::Error;
PM.add(Printer);
- return FileModel::AsmFile;
+ ResultTy = FileModel::AsmFile;
+ break;
}
- case TargetMachine::ObjectFile:
- return FileModel::Error;
}
- return FileModel::Error;
-}
-
-/// 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(PassManagerBase &PM,
- MachineCodeEmitter *MCE,
- CodeGenOpt::Level OptLevel) {
- // Make sure the code model is set.
- setCodeModelForStatic();
- if (MCE)
- addSimpleCodeEmitter(PM, OptLevel, *MCE);
-
- PM.add(createGCInfoDeleter());
-
- return false; // success!
-}
-
-/// 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(PassManagerBase &PM,
- JITCodeEmitter *JCE,
- CodeGenOpt::Level OptLevel) {
- // Make sure the code model is set.
- setCodeModelForJIT();
-
- if (JCE)
- addSimpleCodeEmitter(PM, OptLevel, *JCE);
-
- PM.add(createGCInfoDeleter());
-
- return false; // success!
-}
-
-/// 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(PassManagerBase &PM,
- ObjectCodeEmitter *OCE,
- CodeGenOpt::Level OptLevel) {
// Make sure the code model is set.
setCodeModelForStatic();
-
- PM.add(createGCInfoDeleter());
-
- return false; // success!
-}
-
-/// addPassesToEmitMachineCode - Add passes to the specified pass manager to
-/// get machine code emitted. This uses a MachineCodeEmitter object to handle
-/// actually outputting the machine code and resolving things like the address
-/// of functions. This method should returns true if machine code emission is
-/// not supported.
-///
-bool LLVMTargetMachine::addPassesToEmitMachineCode(PassManagerBase &PM,
- MachineCodeEmitter &MCE,
- CodeGenOpt::Level OptLevel) {
- // Make sure the code model is set.
- setCodeModelForJIT();
-
- // Add common CodeGen passes.
- if (addCommonCodeGenPasses(PM, OptLevel))
- return true;
-
- addCodeEmitter(PM, OptLevel, MCE);
PM.add(createGCInfoDeleter());
-
- return false; // success!
+ return ResultTy;
}
/// addPassesToEmitMachineCode - Add passes to the specified pass manager to
OpenPOWER on IntegriCloud