diff options
author | Yuanfang Chen <yuanfang.chen@sony.com> | 2020-09-11 18:51:54 -0700 |
---|---|---|
committer | Yuanfang Chen <yuanfang.chen@sony.com> | 2020-09-11 18:52:32 -0700 |
commit | ad99e34c59b80fd094a6acdbcde4869ff37dac87 (patch) | |
tree | 76e10e1a119801635fa09acf943d6c70d50d924f /llvm/lib/CodeGen/LLVMTargetMachine.cpp | |
parent | 12a281d368e3ae115b2340c45f93b62e20759811 (diff) | |
download | llvm-ad99e34c59b80fd094a6acdbcde4869ff37dac87.zip llvm-ad99e34c59b80fd094a6acdbcde4869ff37dac87.tar.gz llvm-ad99e34c59b80fd094a6acdbcde4869ff37dac87.tar.bz2 |
Revert "[NewPM][CodeGen] Introduce CodeGenPassBuilder to help build codegen pipeline"
This reverts commit 31ecf8d29d81d196374a562c6d2bd2c25a62861e.
This reverts commit 3fdaa8602a086a3fca5f0fc8527536ac659079d0.
There is laying violation for Target->CodeGen.
Diffstat (limited to 'llvm/lib/CodeGen/LLVMTargetMachine.cpp')
-rw-r--r-- | llvm/lib/CodeGen/LLVMTargetMachine.cpp | 35 |
1 files changed, 10 insertions, 25 deletions
diff --git a/llvm/lib/CodeGen/LLVMTargetMachine.cpp b/llvm/lib/CodeGen/LLVMTargetMachine.cpp index e86f255..e94b7ed 100644 --- a/llvm/lib/CodeGen/LLVMTargetMachine.cpp +++ b/llvm/lib/CodeGen/LLVMTargetMachine.cpp @@ -118,24 +118,6 @@ bool LLVMTargetMachine::addAsmPrinter(PassManagerBase &PM, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, MCContext &Context) { - Expected<std::unique_ptr<MCStreamer>> MCStreamerOrErr = - createMCStreamer(Out, DwoOut, FileType, Context); - if (auto Err = MCStreamerOrErr.takeError()) - return true; - - // Create the AsmPrinter, which takes ownership of AsmStreamer if successful. - FunctionPass *Printer = - getTarget().createAsmPrinter(*this, std::move(*MCStreamerOrErr)); - if (!Printer) - return true; - - PM.add(Printer); - return false; -} - -Expected<std::unique_ptr<MCStreamer>> LLVMTargetMachine::createMCStreamer( - raw_pwrite_stream &Out, raw_pwrite_stream *DwoOut, CodeGenFileType FileType, - MCContext &Context) { if (Options.MCOptions.MCSaveTempLabels) Context.setAllowTemporaryLabels(false); @@ -170,14 +152,10 @@ Expected<std::unique_ptr<MCStreamer>> LLVMTargetMachine::createMCStreamer( // Create the code emitter for the target if it exists. If not, .o file // emission fails. MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(MII, MRI, Context); - if (!MCE) - return make_error<StringError>("createMCCodeEmitter failed", - inconvertibleErrorCode()); MCAsmBackend *MAB = getTarget().createMCAsmBackend(STI, MRI, Options.MCOptions); - if (!MAB) - return make_error<StringError>("createMCAsmBackend failed", - inconvertibleErrorCode()); + if (!MCE || !MAB) + return true; Triple T(getTargetTriple().str()); AsmStreamer.reset(getTarget().createMCObjectStreamer( @@ -196,7 +174,14 @@ Expected<std::unique_ptr<MCStreamer>> LLVMTargetMachine::createMCStreamer( break; } - return std::move(AsmStreamer); + // Create the AsmPrinter, which takes ownership of AsmStreamer if successful. + FunctionPass *Printer = + getTarget().createAsmPrinter(*this, std::move(AsmStreamer)); + if (!Printer) + return true; + + PM.add(Printer); + return false; } bool LLVMTargetMachine::addPassesToEmitFile( |