From: Peter Collingbourne Date: Thu, 24 Nov 2016 01:13:09 +0000 (+0000) Subject: Object: Add IRObjectFile::getTargetTriple(). X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=045ffc4b32244b655d59469ae5c05b6332217d92;p=llvm Object: Add IRObjectFile::getTargetTriple(). This lets us remove a use of IRObjectFile::getModule() in llvm-nm. Differential Revision: https://reviews.llvm.org/D27074 git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@287846 91177308-0d34-0410-b5e6-96231b3b80d8 --- diff --git a/include/llvm/Object/IRObjectFile.h b/include/llvm/Object/IRObjectFile.h index 5126ea10da7..9acc286a6a0 100644 --- a/include/llvm/Object/IRObjectFile.h +++ b/include/llvm/Object/IRObjectFile.h @@ -60,6 +60,8 @@ public: } std::unique_ptr takeModule(); + StringRef getTargetTriple() const; + static inline bool classof(const Binary *v) { return v->isIR(); } diff --git a/lib/Object/IRObjectFile.cpp b/lib/Object/IRObjectFile.cpp index 4fd5e64fb7c..51b2446535b 100644 --- a/lib/Object/IRObjectFile.cpp +++ b/lib/Object/IRObjectFile.cpp @@ -213,6 +213,8 @@ basic_symbol_iterator IRObjectFile::symbol_end() const { return basic_symbol_iterator(BasicSymbolRef(Ret, this)); } +StringRef IRObjectFile::getTargetTriple() const { return M->getTargetTriple(); } + ErrorOr IRObjectFile::findBitcodeInObject(const ObjectFile &Obj) { for (const SectionRef &Sec : Obj.sections()) { if (Sec.isBitcode()) { diff --git a/tools/llvm-nm/llvm-nm.cpp b/tools/llvm-nm/llvm-nm.cpp index 8c6fa4ecec7..436cf9cac68 100644 --- a/tools/llvm-nm/llvm-nm.cpp +++ b/tools/llvm-nm/llvm-nm.cpp @@ -265,14 +265,8 @@ static bool compareSymbolName(const NMSymbol &A, const NMSymbol &B) { } static char isSymbolList64Bit(SymbolicFile &Obj) { - if (isa(Obj)) { - IRObjectFile *IRobj = dyn_cast(&Obj); - Module &M = IRobj->getModule(); - if (M.getTargetTriple().empty()) - return false; - Triple T(M.getTargetTriple()); - return T.isArch64Bit(); - } + if (auto *IRObj = dyn_cast(&Obj)) + return Triple(IRObj->getTargetTriple()).isArch64Bit(); if (isa(Obj)) return false; if (MachOObjectFile *MachO = dyn_cast(&Obj))