diff options
author | Daniel Dunbar <daniel@zuster.org> | 2010-12-16 03:05:59 +0000 |
---|---|---|
committer | Daniel Dunbar <daniel@zuster.org> | 2010-12-16 03:05:59 +0000 |
commit | 745dacc91d7ee9531bfba76b21beb5d4eef93a7d (patch) | |
tree | 26d2182d9f9814be4558eeed58b985f727e88936 /lib | |
parent | 1d6547eb49ef46d2606810f0abad2570c41e38bd (diff) |
MC: Make TargetAsmBackend available to the AsmStreamer.
- Treaty talks on the non-proliferation of MC objects broke down.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121949 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib')
-rw-r--r-- | lib/CodeGen/LLVMTargetMachine.cpp | 7 | ||||
-rw-r--r-- | lib/MC/MCAsmStreamer.cpp | 18 | ||||
-rw-r--r-- | lib/Target/PTX/PTXMCAsmStreamer.cpp | 3 | ||||
-rw-r--r-- | lib/Target/PTX/PTXTargetMachine.cpp | 1 |
4 files changed, 19 insertions, 10 deletions
diff --git a/lib/CodeGen/LLVMTargetMachine.cpp b/lib/CodeGen/LLVMTargetMachine.cpp index af94365218..564d593d7a 100644 --- a/lib/CodeGen/LLVMTargetMachine.cpp +++ b/lib/CodeGen/LLVMTargetMachine.cpp @@ -143,14 +143,17 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM, // Create a code emitter if asked to show the encoding. MCCodeEmitter *MCE = 0; - if (ShowMCEncoding) + TargetAsmBackend *TAB = 0; + if (ShowMCEncoding) { MCE = getTarget().createCodeEmitter(*this, *Context); + TAB = getTarget().createAsmBackend(TargetTriple); + } MCStreamer *S = getTarget().createAsmStreamer(*Context, Out, getVerboseAsm(), hasMCUseLoc(), InstPrinter, - MCE, + MCE, TAB, ShowMCInst); AsmStreamer.reset(S); break; diff --git a/lib/MC/MCAsmStreamer.cpp b/lib/MC/MCAsmStreamer.cpp index a1c02208a0..3d041cbac2 100644 --- a/lib/MC/MCAsmStreamer.cpp +++ b/lib/MC/MCAsmStreamer.cpp @@ -23,8 +23,9 @@ #include "llvm/Support/MathExtras.h" #include "llvm/Support/Format.h" #include "llvm/Support/FormattedStream.h" -#include "llvm/Target/TargetLoweringObjectFile.h" +#include "llvm/Target/TargetAsmBackend.h" #include "llvm/Target/TargetAsmInfo.h" +#include "llvm/Target/TargetLoweringObjectFile.h" using namespace llvm; namespace { @@ -34,6 +35,7 @@ class MCAsmStreamer : public MCStreamer { const MCAsmInfo &MAI; OwningPtr<MCInstPrinter> InstPrinter; OwningPtr<MCCodeEmitter> Emitter; + OwningPtr<TargetAsmBackend> AsmBackend; SmallString<128> CommentToEmit; raw_svector_ostream CommentStream; @@ -48,10 +50,12 @@ public: MCAsmStreamer(MCContext &Context, formatted_raw_ostream &os, bool isVerboseAsm, bool useLoc, - MCInstPrinter *printer, MCCodeEmitter *emitter, bool showInst) + MCInstPrinter *printer, MCCodeEmitter *emitter, + TargetAsmBackend *asmbackend, + bool showInst) : MCStreamer(Context), OS(os), MAI(Context.getAsmInfo()), - InstPrinter(printer), Emitter(emitter), CommentStream(CommentToEmit), - IsVerboseAsm(isVerboseAsm), + InstPrinter(printer), Emitter(emitter), AsmBackend(asmbackend), + CommentStream(CommentToEmit), IsVerboseAsm(isVerboseAsm), ShowInst(showInst), UseLoc(useLoc) { if (InstPrinter && IsVerboseAsm) InstPrinter->setCommentStream(CommentStream); @@ -893,8 +897,8 @@ void MCAsmStreamer::Finish() { MCStreamer *llvm::createAsmStreamer(MCContext &Context, formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, - MCInstPrinter *IP, - MCCodeEmitter *CE, bool ShowInst) { + MCInstPrinter *IP, MCCodeEmitter *CE, + TargetAsmBackend *TAB, bool ShowInst) { return new MCAsmStreamer(Context, OS, isVerboseAsm, useLoc, - IP, CE, ShowInst); + IP, CE, TAB, ShowInst); } diff --git a/lib/Target/PTX/PTXMCAsmStreamer.cpp b/lib/Target/PTX/PTXMCAsmStreamer.cpp index ec9dc960be..313647c48b 100644 --- a/lib/Target/PTX/PTXMCAsmStreamer.cpp +++ b/lib/Target/PTX/PTXMCAsmStreamer.cpp @@ -540,7 +540,8 @@ namespace llvm { formatted_raw_ostream &OS, bool isVerboseAsm, bool useLoc, MCInstPrinter *IP, - MCCodeEmitter *CE, bool ShowInst) { + MCCodeEmitter *CE, TargetAsmBackend *TAB, + bool ShowInst) { return new PTXMCAsmStreamer(Context, OS, isVerboseAsm, useLoc, IP, CE, ShowInst); } diff --git a/lib/Target/PTX/PTXTargetMachine.cpp b/lib/Target/PTX/PTXTargetMachine.cpp index 0e9f5181ed..a041d07ec1 100644 --- a/lib/Target/PTX/PTXTargetMachine.cpp +++ b/lib/Target/PTX/PTXTargetMachine.cpp @@ -24,6 +24,7 @@ namespace llvm { bool isVerboseAsm, bool useLoc, MCInstPrinter *InstPrint, MCCodeEmitter *CE, + TargetAsmBackend *TAB, bool ShowInst); } |