[llvm-commits] [llvm] r164132 - in /llvm/trunk: include/llvm/Support/ lib/CodeGen/ lib/Target/ARM/MCTargetDesc/ lib/Target/MBlaze/MCTargetDesc/ lib/Target/Mips/MCTargetDesc/ lib/Target/PowerPC/MCTargetDesc/ lib/Target/X86/MCTargetDesc/ tools/llvm

David Blaikie dblaikie at gmail.com
Tue Sep 18 10:06:29 PDT 2012


On Tue, Sep 18, 2012 at 9:08 AM, Roman Divacky <rdivacky at freebsd.org> wrote:
> Author: rdivacky
> Date: Tue Sep 18 11:08:49 2012
> New Revision: 164132
>
> URL: http://llvm.org/viewvc/llvm-project?rev=164132&view=rev
> Log:
> When creating MCAsmBackend pass the CPU string as well. In X86AsmBackend
> store this and use it to not emit long nops when the CPU is geode which
> doesnt support them.
>
> Fixes PR11212.

Please provide test cases for this. (& in future include test cases in
the same commit as the feature/fix - this makes it easier for other
developers to understand and have confidence in your change)

- David

> Modified:
>     llvm/trunk/include/llvm/Support/TargetRegistry.h
>     llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
>     llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
>     llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
>     llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp
>     llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h
>     llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
>     llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h
>     llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
>     llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
>     llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
>     llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
>     llvm/trunk/tools/llvm-mc/llvm-mc.cpp
>
> Modified: llvm/trunk/include/llvm/Support/TargetRegistry.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/include/llvm/Support/TargetRegistry.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/include/llvm/Support/TargetRegistry.h (original)
> +++ llvm/trunk/include/llvm/Support/TargetRegistry.h Tue Sep 18 11:08:49 2012
> @@ -93,7 +93,9 @@
>                                                    CodeGenOpt::Level OL);
>      typedef AsmPrinter *(*AsmPrinterCtorTy)(TargetMachine &TM,
>                                              MCStreamer &Streamer);
> -    typedef MCAsmBackend *(*MCAsmBackendCtorTy)(const Target &T, StringRef TT);
> +    typedef MCAsmBackend *(*MCAsmBackendCtorTy)(const Target &T,
> +                                                StringRef TT,
> +                                                StringRef CPU);
>      typedef MCTargetAsmLexer *(*MCAsmLexerCtorTy)(const Target &T,
>                                                    const MCRegisterInfo &MRI,
>                                                    const MCAsmInfo &MAI);
> @@ -352,10 +354,10 @@
>      /// createMCAsmBackend - Create a target specific assembly parser.
>      ///
>      /// \param Triple The target triple string.
> -    MCAsmBackend *createMCAsmBackend(StringRef Triple) const {
> +    MCAsmBackend *createMCAsmBackend(StringRef Triple, StringRef CPU) const {
>        if (!MCAsmBackendCtorFn)
>          return 0;
> -      return MCAsmBackendCtorFn(*this, Triple);
> +      return MCAsmBackendCtorFn(*this, Triple, CPU);
>      }
>
>      /// createMCAsmLexer - Create a target specific assembly lexer.
> @@ -1062,8 +1064,9 @@
>      }
>
>    private:
> -    static MCAsmBackend *Allocator(const Target &T, StringRef Triple) {
> -      return new MCAsmBackendImpl(T, Triple);
> +    static MCAsmBackend *Allocator(const Target &T, StringRef Triple,
> +                                   StringRef CPU) {
> +      return new MCAsmBackendImpl(T, Triple, CPU);
>      }
>    };
>
>
> Modified: llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp (original)
> +++ llvm/trunk/lib/CodeGen/LLVMTargetMachine.cpp Tue Sep 18 11:08:49 2012
> @@ -172,7 +172,7 @@
>        const MCSubtargetInfo &STI = getSubtarget<MCSubtargetInfo>();
>        MCE = getTarget().createMCCodeEmitter(*getInstrInfo(), MRI, STI,
>                                              *Context);
> -      MAB = getTarget().createMCAsmBackend(getTargetTriple());
> +      MAB = getTarget().createMCAsmBackend(getTargetTriple(), TargetCPU);
>      }
>
>      MCStreamer *S = getTarget().createAsmStreamer(*Context, Out,
> @@ -191,7 +191,7 @@
>      // emission fails.
>      MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(*getInstrInfo(), MRI,
>                                                           STI, *Context);
> -    MCAsmBackend *MAB = getTarget().createMCAsmBackend(getTargetTriple());
> +    MCAsmBackend *MAB = getTarget().createMCAsmBackend(getTargetTriple(), TargetCPU);
>      if (MCE == 0 || MAB == 0)
>        return true;
>
> @@ -266,7 +266,7 @@
>    const MCSubtargetInfo &STI = getSubtarget<MCSubtargetInfo>();
>    MCCodeEmitter *MCE = getTarget().createMCCodeEmitter(*getInstrInfo(), MRI,
>                                                         STI, *Ctx);
> -  MCAsmBackend *MAB = getTarget().createMCAsmBackend(getTargetTriple());
> +  MCAsmBackend *MAB = getTarget().createMCAsmBackend(getTargetTriple(), TargetCPU);
>    if (MCE == 0 || MAB == 0)
>      return true;
>
>
> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMAsmBackend.cpp Tue Sep 18 11:08:49 2012
> @@ -674,7 +674,7 @@
>
>  } // end anonymous namespace
>
> -MCAsmBackend *llvm::createARMAsmBackend(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createARMAsmBackend(const Target &T, StringRef TT, StringRef CPU) {
>    Triple TheTriple(TT);
>
>    if (TheTriple.isOSDarwin()) {
>
> Modified: llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h (original)
> +++ llvm/trunk/lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.h Tue Sep 18 11:08:49 2012
> @@ -46,7 +46,7 @@
>                                        const MCSubtargetInfo &STI,
>                                        MCContext &Ctx);
>
> -MCAsmBackend *createARMAsmBackend(const Target &T, StringRef TT);
> +MCAsmBackend *createARMAsmBackend(const Target &T, StringRef TT, StringRef CPU);
>
>  /// createARMELFObjectWriter - Construct an ELF Mach-O object writer.
>  MCObjectWriter *createARMELFObjectWriter(raw_ostream &OS,
>
> Modified: llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeAsmBackend.cpp Tue Sep 18 11:08:49 2012
> @@ -156,7 +156,8 @@
>  }
>  } // end anonymous namespace
>
> -MCAsmBackend *llvm::createMBlazeAsmBackend(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createMBlazeAsmBackend(const Target &T, StringRef TT,
> +                                           StringRef CPU) {
>    Triple TheTriple(TT);
>
>    if (TheTriple.isOSDarwin())
>
> Modified: llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h (original)
> +++ llvm/trunk/lib/Target/MBlaze/MCTargetDesc/MBlazeMCTargetDesc.h Tue Sep 18 11:08:49 2012
> @@ -35,7 +35,8 @@
>                                           const MCSubtargetInfo &STI,
>                                           MCContext &Ctx);
>
> -MCAsmBackend *createMBlazeAsmBackend(const Target &T, StringRef TT);
> +MCAsmBackend *createMBlazeAsmBackend(const Target &T, StringRef TT,
> +                                     StringRef CPU);
>
>  MCObjectWriter *createMBlazeELFObjectWriter(raw_ostream &OS, uint8_t OSABI);
>  } // End llvm namespace
>
> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsAsmBackend.cpp Tue Sep 18 11:08:49 2012
> @@ -244,22 +244,26 @@
>  } // namespace
>
>  // MCAsmBackend
> -MCAsmBackend *llvm::createMipsAsmBackendEL32(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createMipsAsmBackendEL32(const Target &T, StringRef TT,
> +                                             StringRef CPU) {
>    return new MipsAsmBackend(T, Triple(TT).getOS(),
>                              /*IsLittle*/true, /*Is64Bit*/false);
>  }
>
> -MCAsmBackend *llvm::createMipsAsmBackendEB32(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createMipsAsmBackendEB32(const Target &T, StringRef TT,
> +                                             StringRef CPU) {
>    return new MipsAsmBackend(T, Triple(TT).getOS(),
>                              /*IsLittle*/false, /*Is64Bit*/false);
>  }
>
> -MCAsmBackend *llvm::createMipsAsmBackendEL64(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createMipsAsmBackendEL64(const Target &T, StringRef TT,
> +                                             StringRef CPU) {
>    return new MipsAsmBackend(T, Triple(TT).getOS(),
>                              /*IsLittle*/true, /*Is64Bit*/true);
>  }
>
> -MCAsmBackend *llvm::createMipsAsmBackendEB64(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createMipsAsmBackendEB64(const Target &T, StringRef TT,
> +                                             StringRef CPU) {
>    return new MipsAsmBackend(T, Triple(TT).getOS(),
>                              /*IsLittle*/false, /*Is64Bit*/true);
>  }
>
> Modified: llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h (original)
> +++ llvm/trunk/lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.h Tue Sep 18 11:08:49 2012
> @@ -42,10 +42,14 @@
>                                           const MCSubtargetInfo &STI,
>                                           MCContext &Ctx);
>
> -MCAsmBackend *createMipsAsmBackendEB32(const Target &T, StringRef TT);
> -MCAsmBackend *createMipsAsmBackendEL32(const Target &T, StringRef TT);
> -MCAsmBackend *createMipsAsmBackendEB64(const Target &T, StringRef TT);
> -MCAsmBackend *createMipsAsmBackendEL64(const Target &T, StringRef TT);
> +MCAsmBackend *createMipsAsmBackendEB32(const Target &T, StringRef TT,
> +                                       StringRef CPU);
> +MCAsmBackend *createMipsAsmBackendEL32(const Target &T, StringRef TT,
> +                                       StringRef CPU);
> +MCAsmBackend *createMipsAsmBackendEB64(const Target &T, StringRef TT,
> +                                       StringRef CPU);
> +MCAsmBackend *createMipsAsmBackendEL64(const Target &T, StringRef TT,
> +                                       StringRef CPU);
>
>  MCObjectWriter *createMipsELFObjectWriter(raw_ostream &OS,
>                                            uint8_t OSABI,
>
> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCAsmBackend.cpp Tue Sep 18 11:08:49 2012
> @@ -181,7 +181,7 @@
>
>
>
> -MCAsmBackend *llvm::createPPCAsmBackend(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createPPCAsmBackend(const Target &T, StringRef TT, StringRef CPU) {
>    if (Triple(TT).isOSDarwin())
>      return new DarwinPPCAsmBackend(T);
>
>
> Modified: llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h (original)
> +++ llvm/trunk/lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.h Tue Sep 18 11:08:49 2012
> @@ -36,7 +36,7 @@
>                                        const MCSubtargetInfo &STI,
>                                        MCContext &Ctx);
>
> -MCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT);
> +MCAsmBackend *createPPCAsmBackend(const Target &T, StringRef TT, StringRef CPU);
>
>  /// createPPCELFObjectWriter - Construct an PPC ELF object writer.
>  MCObjectWriter *createPPCELFObjectWriter(raw_ostream &OS,
>
> Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp (original)
> +++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86AsmBackend.cpp Tue Sep 18 11:08:49 2012
> @@ -66,9 +66,10 @@
>  };
>
>  class X86AsmBackend : public MCAsmBackend {
> +  StringRef CPU;
>  public:
> -  X86AsmBackend(const Target &T)
> -    : MCAsmBackend() {}
> +  X86AsmBackend(const Target &T, StringRef _CPU)
> +    : MCAsmBackend(), CPU(_CPU) {}
>
>    unsigned getNumFixupKinds() const {
>      return X86::NumTargetFixupKinds;
> @@ -305,6 +306,13 @@
>      {0x66, 0x2e, 0x0f, 0x1f, 0x84, 0x00, 0x00, 0x00, 0x00, 0x00},
>    };
>
> +  // This CPU doesnt support long nops. If needed add more.
> +  if (CPU == "geode") {
> +    for (uint64_t i = 0; i < Count; ++i)
> +      OW->Write8(0x90);
> +    return true;
> +  }
> +
>    // Write an optimal sequence for the first 15 bytes.
>    const uint64_t OptimalCount = (Count < 16) ? Count : 15;
>    const uint64_t Prefixes = OptimalCount <= 10 ? 0 : OptimalCount - 10;
> @@ -327,8 +335,8 @@
>  class ELFX86AsmBackend : public X86AsmBackend {
>  public:
>    uint8_t OSABI;
> -  ELFX86AsmBackend(const Target &T, uint8_t _OSABI)
> -    : X86AsmBackend(T), OSABI(_OSABI) {
> +  ELFX86AsmBackend(const Target &T, uint8_t _OSABI, StringRef CPU)
> +    : X86AsmBackend(T, CPU), OSABI(_OSABI) {
>      HasReliableSymbolDifference = true;
>    }
>
> @@ -340,8 +348,8 @@
>
>  class ELFX86_32AsmBackend : public ELFX86AsmBackend {
>  public:
> -  ELFX86_32AsmBackend(const Target &T, uint8_t OSABI)
> -    : ELFX86AsmBackend(T, OSABI) {}
> +  ELFX86_32AsmBackend(const Target &T, uint8_t OSABI, StringRef CPU)
> +    : ELFX86AsmBackend(T, OSABI, CPU) {}
>
>    MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
>      return createX86ELFObjectWriter(OS, /*Is64Bit*/ false, OSABI);
> @@ -350,8 +358,8 @@
>
>  class ELFX86_64AsmBackend : public ELFX86AsmBackend {
>  public:
> -  ELFX86_64AsmBackend(const Target &T, uint8_t OSABI)
> -    : ELFX86AsmBackend(T, OSABI) {}
> +  ELFX86_64AsmBackend(const Target &T, uint8_t OSABI, StringRef CPU)
> +    : ELFX86AsmBackend(T, OSABI, CPU) {}
>
>    MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
>      return createX86ELFObjectWriter(OS, /*Is64Bit*/ true, OSABI);
> @@ -362,8 +370,8 @@
>    bool Is64Bit;
>
>  public:
> -  WindowsX86AsmBackend(const Target &T, bool is64Bit)
> -    : X86AsmBackend(T)
> +  WindowsX86AsmBackend(const Target &T, bool is64Bit, StringRef CPU)
> +    : X86AsmBackend(T, CPU)
>      , Is64Bit(is64Bit) {
>    }
>
> @@ -374,14 +382,14 @@
>
>  class DarwinX86AsmBackend : public X86AsmBackend {
>  public:
> -  DarwinX86AsmBackend(const Target &T)
> -    : X86AsmBackend(T) { }
> +  DarwinX86AsmBackend(const Target &T, StringRef CPU)
> +    : X86AsmBackend(T, CPU) { }
>  };
>
>  class DarwinX86_32AsmBackend : public DarwinX86AsmBackend {
>  public:
> -  DarwinX86_32AsmBackend(const Target &T)
> -    : DarwinX86AsmBackend(T) {}
> +  DarwinX86_32AsmBackend(const Target &T, StringRef CPU)
> +    : DarwinX86AsmBackend(T, CPU) {}
>
>    MCObjectWriter *createObjectWriter(raw_ostream &OS) const {
>      return createX86MachObjectWriter(OS, /*Is64Bit=*/false,
> @@ -392,8 +400,8 @@
>
>  class DarwinX86_64AsmBackend : public DarwinX86AsmBackend {
>  public:
> -  DarwinX86_64AsmBackend(const Target &T)
> -    : DarwinX86AsmBackend(T) {
> +  DarwinX86_64AsmBackend(const Target &T, StringRef CPU)
> +    : DarwinX86AsmBackend(T, CPU) {
>      HasReliableSymbolDifference = true;
>    }
>
> @@ -439,28 +447,28 @@
>
>  } // end anonymous namespace
>
> -MCAsmBackend *llvm::createX86_32AsmBackend(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createX86_32AsmBackend(const Target &T, StringRef TT, StringRef CPU) {
>    Triple TheTriple(TT);
>
>    if (TheTriple.isOSDarwin() || TheTriple.getEnvironment() == Triple::MachO)
> -    return new DarwinX86_32AsmBackend(T);
> +    return new DarwinX86_32AsmBackend(T, CPU);
>
>    if (TheTriple.isOSWindows())
> -    return new WindowsX86AsmBackend(T, false);
> +    return new WindowsX86AsmBackend(T, false, CPU);
>
>    uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TheTriple.getOS());
> -  return new ELFX86_32AsmBackend(T, OSABI);
> +  return new ELFX86_32AsmBackend(T, OSABI, CPU);
>  }
>
> -MCAsmBackend *llvm::createX86_64AsmBackend(const Target &T, StringRef TT) {
> +MCAsmBackend *llvm::createX86_64AsmBackend(const Target &T, StringRef TT, StringRef CPU) {
>    Triple TheTriple(TT);
>
>    if (TheTriple.isOSDarwin() || TheTriple.getEnvironment() == Triple::MachO)
> -    return new DarwinX86_64AsmBackend(T);
> +    return new DarwinX86_64AsmBackend(T, CPU);
>
>    if (TheTriple.isOSWindows())
> -    return new WindowsX86AsmBackend(T, true);
> +    return new WindowsX86AsmBackend(T, true, CPU);
>
>    uint8_t OSABI = MCELFObjectTargetWriter::getOSABI(TheTriple.getOS());
> -  return new ELFX86_64AsmBackend(T, OSABI);
> +  return new ELFX86_64AsmBackend(T, OSABI, CPU);
>  }
>
> Modified: llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h
> URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h?rev=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h (original)
> +++ llvm/trunk/lib/Target/X86/MCTargetDesc/X86MCTargetDesc.h Tue Sep 18 11:08:49 2012
> @@ -80,8 +80,8 @@
>                                        const MCSubtargetInfo &STI,
>                                        MCContext &Ctx);
>
> -MCAsmBackend *createX86_32AsmBackend(const Target &T, StringRef TT);
> -MCAsmBackend *createX86_64AsmBackend(const Target &T, StringRef TT);
> +MCAsmBackend *createX86_32AsmBackend(const Target &T, StringRef TT, StringRef CPU);
> +MCAsmBackend *createX86_64AsmBackend(const Target &T, StringRef TT, StringRef CPU);
>
>  /// createX86MachObjectWriter - Construct an X86 Mach-O object writer.
>  MCObjectWriter *createX86MachObjectWriter(raw_ostream &OS,
>
> 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=164132&r1=164131&r2=164132&view=diff
> ==============================================================================
> --- llvm/trunk/tools/llvm-mc/llvm-mc.cpp (original)
> +++ llvm/trunk/tools/llvm-mc/llvm-mc.cpp Tue Sep 18 11:08:49 2012
> @@ -409,7 +409,7 @@
>      MCAsmBackend *MAB = 0;
>      if (ShowEncoding) {
>        CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, *STI, Ctx);
> -      MAB = TheTarget->createMCAsmBackend(TripleName);
> +      MAB = TheTarget->createMCAsmBackend(TripleName, MCPU);
>      }
>      Str.reset(TheTarget->createAsmStreamer(Ctx, FOS, /*asmverbose*/true,
>                                             /*useLoc*/ true,
> @@ -422,7 +422,7 @@
>    } else {
>      assert(FileType == OFT_ObjectFile && "Invalid file type!");
>      MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, *STI, Ctx);
> -    MCAsmBackend *MAB = TheTarget->createMCAsmBackend(TripleName);
> +    MCAsmBackend *MAB = TheTarget->createMCAsmBackend(TripleName, MCPU);
>      Str.reset(TheTarget->createMCObjectStreamer(TripleName, Ctx, *MAB,
>                                                  FOS, CE, RelaxAll,
>                                                  NoExecStack));
>
>
> _______________________________________________
> 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