[llvm-commits] [llvm] r121949 - in /llvm/trunk: include/llvm/MC/MCStreamer.h include/llvm/Target/TargetRegistry.h lib/CodeGen/LLVMTargetMachine.cpp lib/MC/MCAsmStreamer.cpp lib/Target/PTX/PTXMCAsmStreamer.cpp lib/Target/PTX/PTXTargetMachine.cpp tools/llvm-mc/llvm-mc.cpp

Jim Grosbach grosbach at apple.com
Thu Dec 16 08:00:42 PST 2010


True, but the non-aggression pact achieved was the best alternative. Now if we can only get TargetMachine to the bargaining table...
-j
On Dec 15, 2010, at 7:05 PM, Daniel Dunbar wrote:

> Author: ddunbar
> Date: Wed Dec 15 21:05:59 2010
> New Revision: 121949
> 
> URL: http://llvm.org/viewvc/llvm-project?rev=121949&view=rev
> Log:
> MC: Make TargetAsmBackend available to the AsmStreamer.
> - Treaty talks on the non-proliferation of MC objects broke down.
> 
> Modified:
>    llvm/trunk/include/llvm/MC/MCStreamer.h
>    llvm/trunk/include/llvm/Target/TargetRegistry.h
>    llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
>    llvm/trunk/lib/MC/MCAsmStreamer.cpp
>    llvm/trunk/lib/Target/PTX/PTXMCAsmStreamer.cpp
>    llvm/trunk/lib/Target/PTX/PTXTargetMachine.cpp
>    llvm/trunk/tools/llvm-mc/llvm-mc.cpp
> 
> Modified: llvm/trunk/include/llvm/MC/MCStreamer.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/MC/MCStreamer.h?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/MC/MCStreamer.h (original)
> +++ llvm/trunk/include/llvm/MC/MCStreamer.h Wed Dec 15 21:05:59 2010
> @@ -426,6 +426,10 @@
>   /// \param CE - If given, a code emitter to use to show the instruction
>   /// encoding inline with the assembly. This method takes ownership of \arg CE.
>   ///
> +  /// \param TAB - If given, a target asm backend to use to show the fixup
> +  /// information in conjunction with encoding information. This method takes
> +  /// ownership of \arg TAB.
> +  ///
>   /// \param ShowInst - Whether to show the MCInst representation inline with
>   /// the assembly.
>   MCStreamer *createAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS,
> @@ -433,6 +437,7 @@
>                                 bool useLoc,
>                                 MCInstPrinter *InstPrint = 0,
>                                 MCCodeEmitter *CE = 0,
> +                                TargetAsmBackend *TAB = 0,
>                                 bool ShowInst = false);
> 
>   /// createMachOStreamer - Create a machine code streamer which will generate
> 
> Modified: llvm/trunk/include/llvm/Target/TargetRegistry.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Target/TargetRegistry.h?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Target/TargetRegistry.h (original)
> +++ llvm/trunk/include/llvm/Target/TargetRegistry.h Wed Dec 15 21:05:59 2010
> @@ -46,6 +46,7 @@
>                                 bool useLoc,
>                                 MCInstPrinter *InstPrint,
>                                 MCCodeEmitter *CE,
> +                                TargetAsmBackend *TAB,
>                                 bool ShowInst);
> 
>   /// Target - Wrapper for Target specific information.
> @@ -95,6 +96,7 @@
>                                              bool useLoc,
>                                              MCInstPrinter *InstPrint,
>                                              MCCodeEmitter *CE,
> +                                             TargetAsmBackend *TAB,
>                                              bool ShowInst);
> 
>   private:
> @@ -323,10 +325,11 @@
>                                   bool useLoc,
>                                   MCInstPrinter *InstPrint,
>                                   MCCodeEmitter *CE,
> +                                  TargetAsmBackend *TAB,
>                                   bool ShowInst) const {
>       // AsmStreamerCtorFn is default to llvm::createAsmStreamer
>       return AsmStreamerCtorFn(Ctx, OS, isVerboseAsm, useLoc,
> -                               InstPrint, CE, ShowInst);
> +                               InstPrint, CE, TAB, ShowInst);
>     }
> 
>     /// @}
> 
> Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)
> +++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Wed Dec 15 21:05:59 2010
> @@ -143,14 +143,17 @@
> 
>     // 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;
> 
> Modified: llvm/trunk/lib/MC/MCAsmStreamer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/MC/MCAsmStreamer.cpp?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/lib/MC/MCAsmStreamer.cpp (original)
> +++ llvm/trunk/lib/MC/MCAsmStreamer.cpp Wed Dec 15 21:05:59 2010
> @@ -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 @@
>   const MCAsmInfo &MAI;
>   OwningPtr<MCInstPrinter> InstPrinter;
>   OwningPtr<MCCodeEmitter> Emitter;
> +  OwningPtr<TargetAsmBackend> AsmBackend;
> 
>   SmallString<128> CommentToEmit;
>   raw_svector_ostream CommentStream;
> @@ -48,10 +50,12 @@
>   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 @@
> 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);
> }
> 
> Modified: llvm/trunk/lib/Target/PTX/PTXMCAsmStreamer.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PTX/PTXMCAsmStreamer.cpp?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PTX/PTXMCAsmStreamer.cpp (original)
> +++ llvm/trunk/lib/Target/PTX/PTXMCAsmStreamer.cpp Wed Dec 15 21:05:59 2010
> @@ -540,7 +540,8 @@
>                                    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);
>   }
> 
> Modified: llvm/trunk/lib/Target/PTX/PTXTargetMachine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PTX/PTXTargetMachine.cpp?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PTX/PTXTargetMachine.cpp (original)
> +++ llvm/trunk/lib/Target/PTX/PTXTargetMachine.cpp Wed Dec 15 21:05:59 2010
> @@ -24,6 +24,7 @@
>                                    bool isVerboseAsm, bool useLoc,
>                                    MCInstPrinter *InstPrint,
>                                    MCCodeEmitter *CE,
> +                                   TargetAsmBackend *TAB,
>                                    bool ShowInst);
> }
> 
> 
> Modified: llvm/trunk/tools/llvm-mc/llvm-mc.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/tools/llvm-mc/llvm-mc.cpp?rev=121949&r1=121948&r2=121949&view=diff
> ==============================================================================
> --- llvm/trunk/tools/llvm-mc/llvm-mc.cpp (original)
> +++ llvm/trunk/tools/llvm-mc/llvm-mc.cpp Wed Dec 15 21:05:59 2010
> @@ -340,10 +340,14 @@
>     MCInstPrinter *IP =
>       TheTarget->createMCInstPrinter(OutputAsmVariant, *MAI);
>     MCCodeEmitter *CE = 0;
> -    if (ShowEncoding)
> +    TargetAsmBackend *TAB = 0;
> +    if (ShowEncoding) {
>       CE = TheTarget->createCodeEmitter(*TM, Ctx);
> +      TAB = TheTarget->createAsmBackend(TripleName);
> +    }
>     Str.reset(TheTarget->createAsmStreamer(Ctx, FOS, /*asmverbose*/true,
> -                                           /*useLoc*/ true, IP, CE, ShowInst));
> +                                           /*useLoc*/ true, IP, CE, TAB,
> +                                           ShowInst));
>   } else if (FileType == OFT_Null) {
>     Str.reset(createNullStreamer(Ctx));
>   } else {
> 
> 
> _______________________________________________
> llvm-commits mailing list
> llvm-commits at cs.uiuc.edu
> http://lists.cs.uiuc.edu/mailman/listinfo/llvm-commits





More information about the llvm-commits mailing list