diff options
Diffstat (limited to 'llvm/lib/Target/CBackend')
| -rw-r--r-- | llvm/lib/Target/CBackend/CTargetMachine.h | 3 | ||||
| -rw-r--r-- | llvm/lib/Target/CBackend/Writer.cpp | 7 |
2 files changed, 6 insertions, 4 deletions
diff --git a/llvm/lib/Target/CBackend/CTargetMachine.h b/llvm/lib/Target/CBackend/CTargetMachine.h index 80dc3c4a94c..56c53672312 100644 --- a/llvm/lib/Target/CBackend/CTargetMachine.h +++ b/llvm/lib/Target/CBackend/CTargetMachine.h @@ -24,7 +24,8 @@ struct CTargetMachine : public TargetMachine { TargetMachine("CBackend", IL, M) {} // This is the only thing that actually does anything here. - virtual bool addPassesToEmitAssembly(PassManager &PM, std::ostream &Out); + virtual bool addPassesToEmitFile(PassManager &PM, std::ostream &Out, + CodeGenFileType FileType); // This class always works, but shouldn't be the default in most cases. static unsigned getModuleMatchQuality(const Module &M) { return 1; } diff --git a/llvm/lib/Target/CBackend/Writer.cpp b/llvm/lib/Target/CBackend/Writer.cpp index c30b306483e..f821a77caa5 100644 --- a/llvm/lib/Target/CBackend/Writer.cpp +++ b/llvm/lib/Target/CBackend/Writer.cpp @@ -1725,7 +1725,10 @@ void CWriter::visitVAArgInst(VAArgInst &I) { // External Interface declaration //===----------------------------------------------------------------------===// -bool CTargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &o) { +bool CTargetMachine::addPassesToEmitFile(PassManager &PM, std::ostream &o, + CodeGenFileType FileType) { + if (FileType != TargetMachine::AssemblyFile) return true; + PM.add(createLowerGCPass()); PM.add(createLowerAllocationsPass(true)); PM.add(createLowerInvokePass()); @@ -1733,5 +1736,3 @@ bool CTargetMachine::addPassesToEmitAssembly(PassManager &PM, std::ostream &o) { PM.add(new CWriter(o, getIntrinsicLowering())); return false; } - -// vim: sw=2 |

