Pass in a "const Triple &T" instead of a raw StringRef.
authorRafael Espindola <rafael.espindola@gmail.com>
Mon, 16 Mar 2015 22:29:29 +0000 (22:29 +0000)
committerRafael Espindola <rafael.espindola@gmail.com>
Mon, 16 Mar 2015 22:29:29 +0000 (22:29 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@232429 91177308-0d34-0410-b5e6-96231b3b80d8

13 files changed:
include/llvm/Support/TargetRegistry.h
lib/CodeGen/LLVMTargetMachine.cpp
lib/Target/AArch64/MCTargetDesc/AArch64MCTargetDesc.cpp
lib/Target/ARM/MCTargetDesc/ARMMCTargetDesc.cpp
lib/Target/Hexagon/MCTargetDesc/HexagonMCTargetDesc.cpp
lib/Target/Mips/MCTargetDesc/MipsMCTargetDesc.cpp
lib/Target/PowerPC/MCTargetDesc/PPCMCTargetDesc.cpp
lib/Target/R600/MCTargetDesc/AMDGPUMCTargetDesc.cpp
lib/Target/Sparc/MCTargetDesc/SparcMCTargetDesc.cpp
lib/Target/SystemZ/MCTargetDesc/SystemZMCTargetDesc.cpp
lib/Target/X86/MCTargetDesc/X86MCTargetDesc.cpp
tools/dsymutil/DwarfLinker.cpp
tools/llvm-mc/llvm-mc.cpp

index 3d8e13d4460023cc28f0f93cb279d8db17d07708..f5e69f738ad52fa6b3ea211db933e8b0fb11b9e9 100644 (file)
@@ -127,7 +127,7 @@ namespace llvm {
                                                   const MCRegisterInfo &MRI,
                                                   MCContext &Ctx);
     typedef MCStreamer *(*MCObjectStreamerCtorTy)(
-        StringRef TT, MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS,
+        const Triple &T, MCContext &Ctx, MCAsmBackend &TAB, raw_ostream &OS,
         MCCodeEmitter *Emitter, const MCSubtargetInfo &STI, bool RelaxAll);
     typedef MCTargetStreamer *(*NullTargetStreamerCtorTy)(MCStreamer &S);
     typedef MCTargetStreamer *(*AsmTargetStreamerCtorTy)(
@@ -405,22 +405,22 @@ namespace llvm {
       return MCCodeEmitterCtorFn(II, MRI, Ctx);
     }
 
-    /// createMCObjectStreamer - Create a target specific MCStreamer.
+    /// Create a target specific MCStreamer.
     ///
-    /// \param TT The target triple.
+    /// \param T The target triple.
     /// \param Ctx The target context.
     /// \param TAB The target assembler backend object. Takes ownership.
     /// \param OS The stream object.
     /// \param Emitter The target independent assembler object.Takes ownership.
     /// \param RelaxAll Relax all fixups?
-    MCStreamer *createMCObjectStreamer(StringRef TT, MCContext &Ctx,
+    MCStreamer *createMCObjectStreamer(const Triple &T, MCContext &Ctx,
                                        MCAsmBackend &TAB, raw_ostream &OS,
                                        MCCodeEmitter *Emitter,
                                        const MCSubtargetInfo &STI,
                                        bool RelaxAll) const {
       if (!MCObjectStreamerCtorFn)
         return nullptr;
-      return MCObjectStreamerCtorFn(TT, Ctx, TAB, OS, Emitter, STI, RelaxAll);
+      return MCObjectStreamerCtorFn(T, Ctx, TAB, OS, Emitter, STI, RelaxAll);
     }
 
     MCStreamer *createAsmStreamer(MCContext &Ctx, formatted_raw_ostream &OS,
index 6ba3ef1caef74903203ee265f688624a9064cc5f..a1cdca43c8666ea6b528d342e6c4d3217125ec86 100644 (file)
@@ -197,10 +197,9 @@ bool LLVMTargetMachine::addPassesToEmitFile(PassManagerBase &PM,
     if (!MCE || !MAB)
       return true;
 
-    AsmStreamer.reset(
-        getTarget()
-            .createMCObjectStreamer(getTargetTriple(), *Context, *MAB, Out, MCE,
-                                    STI, Options.MCOptions.MCRelaxAll));
+    Triple T(getTargetTriple());
+    AsmStreamer.reset(getTarget().createMCObjectStreamer(
+        T, *Context, *MAB, Out, MCE, STI, Options.MCOptions.MCRelaxAll));
     break;
   }
   case CGFT_Null:
@@ -249,9 +248,9 @@ bool LLVMTargetMachine::addPassesToEmitMC(PassManagerBase &PM,
   if (!MCE || !MAB)
     return true;
 
+  Triple T(getTargetTriple());
   std::unique_ptr<MCStreamer> AsmStreamer(getTarget().createMCObjectStreamer(
-      getTargetTriple(), *Ctx, *MAB, Out, MCE, STI,
-      Options.MCOptions.MCRelaxAll));
+      T, *Ctx, *MAB, Out, MCE, STI, Options.MCOptions.MCRelaxAll));
 
   // Create the AsmPrinter, which takes ownership of AsmStreamer if successful.
   FunctionPass *Printer =
index 9481c6d8c20d0d6ff9ddad54beee7ffb10b6beab..6d4fbba0e8709c9e9ad80a46c04089a62b109c3d 100644 (file)
@@ -123,13 +123,11 @@ static MCInstPrinter *createAArch64MCInstPrinter(const Target &T,
   return nullptr;
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx,
                                     MCAsmBackend &TAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
-  Triple TheTriple(TT);
-
-  if (TheTriple.isOSDarwin())
+  if (T.isOSDarwin())
     return createMachOStreamer(Ctx, TAB, OS, Emitter, RelaxAll,
                                /*LabelSections*/ true);
 
index d3c45728c48444ca130494202623a0f76500fa12..ab40465e93c182dc63ba9c6538fe975d987966af 100644 (file)
@@ -296,13 +296,11 @@ static MCCodeGenInfo *createARMMCCodeGenInfo(StringRef TT, Reloc::Model RM,
 }
 
 // This is duplicated code. Refactor this.
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
-  Triple TheTriple(TT);
-
-  switch (TheTriple.getObjectFormat()) {
+  switch (T.getObjectFormat()) {
   default: llvm_unreachable("unsupported object format");
   case Triple::MachO: {
     MCStreamer *S = createMachOStreamer(Ctx, MAB, OS, Emitter, false);
@@ -310,11 +308,11 @@ static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
     return S;
   }
   case Triple::COFF:
-    assert(TheTriple.isOSWindows() && "non-Windows ARM COFF is not supported");
+    assert(T.isOSWindows() && "non-Windows ARM COFF is not supported");
     return createARMWinCOFFStreamer(Ctx, MAB, *Emitter, OS);
   case Triple::ELF:
     return createARMELFStreamer(Ctx, MAB, OS, Emitter, false,
-                                TheTriple.getArch() == Triple::thumb);
+                                T.getArch() == Triple::thumb);
   }
 }
 
index 9427820ec2bd5be1d92467066a32178edaa80479..3db7a45703edbf048b829efcb87809c1c123d018 100644 (file)
@@ -75,7 +75,7 @@ static MCAsmInfo *createHexagonMCAsmInfo(const MCRegisterInfo &MRI,
   return MAI;
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Context,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     MCSubtargetInfo const &STI, bool RelaxAll) {
index 2d09e9f2ecfeb7465b066b3c45a5e960e2c16608..a86e716f6459ad1172b59c982918f082ef87f868 100644 (file)
@@ -106,12 +106,12 @@ static MCInstPrinter *createMipsMCInstPrinter(const Target &T,
   return new MipsInstPrinter(MAI, MII, MRI);
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Context,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
   MCStreamer *S;
-  if (!Triple(TT).isOSNaCl())
+  if (!T.isOSNaCl())
     S = createMipsELFStreamer(Context, MAB, OS, Emitter, STI, RelaxAll);
   else
     S = createMipsNaClELFStreamer(Context, MAB, OS, Emitter, STI, RelaxAll);
index ad7ae9106910a64be232735b98069b4f3c201679..f02d2fb86c932c45de1a0d881923d4caf1926315 100644 (file)
@@ -224,11 +224,11 @@ public:
 }
 
 // This is duplicated code. Refactor this.
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
-  if (Triple(TT).isOSDarwin()) {
+  if (T.isOSDarwin()) {
     MCStreamer *S = createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
     new PPCTargetMachOStreamer(*S);
     return S;
index 20f9bfbc38df90b265c3eb40e2b53da06229f8ea..fa9ca242573e8cf995b8f17e3624679a4a7367fe 100644 (file)
@@ -73,7 +73,7 @@ static MCInstPrinter *createAMDGPUMCInstPrinter(const Target &T,
   return new AMDGPUInstPrinter(MAI, MII, MRI);
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
index 5f44a7f4c583a77fab9b0416d6cc1ac855b70164..36f47c28fce59702452c01b167eda0d8f6d65382 100644 (file)
@@ -122,7 +122,7 @@ static MCCodeGenInfo *createSparcV9MCCodeGenInfo(StringRef TT, Reloc::Model RM,
   return X;
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Context,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Context,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
index cd12c7f149814337acc6c15c371e4812e36a0504..fb9645723ffa14e25b94ab0ccd0e66e38621fea8 100644 (file)
@@ -181,10 +181,9 @@ static MCInstPrinter *createSystemZMCInstPrinter(const Target &T,
   return new SystemZInstPrinter(MAI, MII, MRI);
 }
 
-static MCStreamer *
-createSystemZMCObjectStreamer(StringRef TT, MCContext &Ctx, MCAsmBackend &MAB,
-                              raw_ostream &OS, MCCodeEmitter *Emitter,
-                              const MCSubtargetInfo &STI, bool RelaxAll) {
+static MCStreamer *createSystemZMCObjectStreamer(
+    const Triple &T, MCContext &Ctx, MCAsmBackend &MAB, raw_ostream &OS,
+    MCCodeEmitter *Emitter, const MCSubtargetInfo &STI, bool RelaxAll) {
   return createELFStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
 }
 
index 3d82704b4e13772cde99536f3ba5c4ca00850d0d..b34fc97505df4758e33006ef46a71251cf10e88a 100644 (file)
@@ -344,18 +344,16 @@ static MCCodeGenInfo *createX86MCCodeGenInfo(StringRef TT, Reloc::Model RM,
   return X;
 }
 
-static MCStreamer *createMCStreamer(StringRef TT, MCContext &Ctx,
+static MCStreamer *createMCStreamer(const Triple &T, MCContext &Ctx,
                                     MCAsmBackend &MAB, raw_ostream &OS,
                                     MCCodeEmitter *Emitter,
                                     const MCSubtargetInfo &STI, bool RelaxAll) {
-  Triple TheTriple(TT);
-
-  switch (TheTriple.getObjectFormat()) {
+  switch (T.getObjectFormat()) {
   default: llvm_unreachable("unsupported object format");
   case Triple::MachO:
     return createMachOStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
   case Triple::COFF:
-    assert(TheTriple.isOSWindows() && "only Windows COFF is supported");
+    assert(T.isOSWindows() && "only Windows COFF is supported");
     return createX86WinCOFFStreamer(Ctx, MAB, Emitter, OS, RelaxAll);
   case Triple::ELF:
     return createELFStreamer(Ctx, MAB, OS, Emitter, RelaxAll);
index 32719babb3890d25fbb1a2799957ad2e452205e6..c3fc92183d15cdff35c69c2c38c631266573e267 100644 (file)
@@ -510,7 +510,7 @@ bool DwarfStreamer::init(Triple TheTriple, StringRef OutputFilename) {
   if (EC)
     return error(Twine(OutputFilename) + ": " + EC.message(), Context);
 
-  MS = TheTarget->createMCObjectStreamer(TripleName, *MC, *MAB, *OutFile, MCE,
+  MS = TheTarget->createMCObjectStreamer(TheTriple, *MC, *MAB, *OutFile, MCE,
                                          *MSTI, false);
   if (!MS)
     return error("no object streamer for target " + TripleName, Context);
index 45085a4a85e2d292b6e7614704909213bd5e9ab9..eb0df78c48d0943fe99ef361021e537151b4d5be 100644 (file)
@@ -357,6 +357,7 @@ int main(int argc, char **argv) {
   cl::ParseCommandLineOptions(argc, argv, "llvm machine code playground\n");
   MCTargetOptions MCOptions = InitMCTargetOptionsFromFlags();
   TripleName = Triple::normalize(TripleName);
+  Triple TheTriple(TripleName);
   setDwarfDebugFlags(argc, argv);
 
   setDwarfDebugProducer();
@@ -470,7 +471,7 @@ int main(int argc, char **argv) {
     assert(FileType == OFT_ObjectFile && "Invalid file type!");
     MCCodeEmitter *CE = TheTarget->createMCCodeEmitter(*MCII, *MRI, Ctx);
     MCAsmBackend *MAB = TheTarget->createMCAsmBackend(*MRI, TripleName, MCPU);
-    Str.reset(TheTarget->createMCObjectStreamer(TripleName, Ctx, *MAB, FOS, CE,
+    Str.reset(TheTarget->createMCObjectStreamer(TheTriple, Ctx, *MAB, FOS, CE,
                                                 *STI, RelaxAll));
     if (NoExecStack)
       Str->InitSections(true);