Do not instantiate Triple twice.

Also removes redundant variables. NFC.

llvm-svn: 277644
This commit is contained in:
Rui Ueyama
2016-08-03 20:25:29 +00:00
parent 6c50990df6
commit 7fdb4389a2

View 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());
}
}