Do not instantiate Triple twice.
authorRui Ueyama <ruiu@google.com>
Wed, 3 Aug 2016 20:25:29 +0000 (20:25 +0000)
committerRui Ueyama <ruiu@google.com>
Wed, 3 Aug 2016 20:25:29 +0000 (20:25 +0000)
Also removes redundant variables. NFC.

llvm-svn: 277644

lld/ELF/InputFiles.cpp

index 7c335b4..2cfa01f 100644 (file)
@@ -554,17 +554,15 @@ template <class ELFT> void SharedFile<ELFT>::parseRest() {
 }
 
 static ELFKind getELFKind(MemoryBufferRef MB) {
-  std::string TripleStr = getBitcodeTargetTriple(MB, Driver->Context);
-  Triple TheTriple(TripleStr);
-  bool Is64Bits = TheTriple.isArch64Bit();
-  if (TheTriple.isLittleEndian())
-    return Is64Bits ? ELF64LEKind : ELF32LEKind;
-  return Is64Bits ? ELF64BEKind : ELF32BEKind;
+  Triple T(getBitcodeTargetTriple(MB, Driver->Context));
+  if (T.isLittleEndian())
+    return T.isArch64Bit() ? ELF64LEKind : ELF32LEKind;
+  return T.isArch64Bit() ? ELF64BEKind : ELF32BEKind;
 }
 
 static uint8_t getMachineKind(MemoryBufferRef MB) {
-  std::string TripleStr = getBitcodeTargetTriple(MB, Driver->Context);
-  switch (Triple(TripleStr).getArch()) {
+  Triple T(getBitcodeTargetTriple(MB, Driver->Context));
+  switch (T.getArch()) {
   case Triple::aarch64:
     return EM_AARCH64;
   case Triple::arm:
@@ -579,13 +577,12 @@ static uint8_t getMachineKind(MemoryBufferRef MB) {
   case Triple::ppc64:
     return EM_PPC64;
   case Triple::x86:
-    return Triple(TripleStr).isOSIAMCU() ? EM_IAMCU : EM_386;
+    return T.isOSIAMCU() ? EM_IAMCU : EM_386;
   case Triple::x86_64:
     return EM_X86_64;
   default:
     fatal(MB.getBufferIdentifier() +
-          ": could not infer e_machine from bitcode target triple " +
-          TripleStr);
+          ": could not infer e_machine from bitcode target triple " + T.str());
   }
 }