Clean the API for CollectAsmUndefinedRefs, taking a Triple and a String InlineAsm...
authorMehdi Amini <mehdi.amini@apple.com>
Fri, 22 Apr 2016 04:58:12 +0000 (04:58 +0000)
committerMehdi Amini <mehdi.amini@apple.com>
Fri, 22 Apr 2016 04:58:12 +0000 (04:58 +0000)
From: Mehdi Amini <mehdi.amini@apple.com>
llvm-svn: 267106

llvm/include/llvm/Object/IRObjectFile.h
llvm/lib/Object/IRObjectFile.cpp

index 453c0f5..0cf31d9 100644 (file)
@@ -20,6 +20,7 @@ namespace llvm {
 class Mangler;
 class Module;
 class GlobalValue;
+class Triple;
 
 namespace object {
 class ObjectFile;
@@ -65,7 +66,7 @@ public:
   /// For each found symbol, call \p AsmUndefinedRefs with the name of the
   /// symbol found and the associated flags.
   static void CollectAsmUndefinedRefs(
-      Module &TheModule,
+      const Triple &TheTriple, StringRef InlineAsm,
       const std::function<void(StringRef, BasicSymbolRef::Flags)> &
           AsmUndefinedRefs);
 
index 0d35744..76cb156 100644 (file)
@@ -39,7 +39,8 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
     : SymbolicFile(Binary::ID_IR, Object), M(std::move(Mod)) {
   Mang.reset(new Mangler());
   CollectAsmUndefinedRefs(
-      *M, [this](StringRef Name, BasicSymbolRef::Flags Flags) {
+      Triple(M->getTargetTriple()), M->getModuleInlineAsm(),
+      [this](StringRef Name, BasicSymbolRef::Flags Flags) {
         AsmSymbols.push_back(
             std::make_pair<std::string, uint32_t>(Name, std::move(Flags)));
       });
@@ -48,15 +49,12 @@ IRObjectFile::IRObjectFile(MemoryBufferRef Object, std::unique_ptr<Module> Mod)
 // Parse inline ASM and collect the list of symbols that are not defined in
 // the current module. This is inspired from IRObjectFile.
 void IRObjectFile::CollectAsmUndefinedRefs(
-    Module &TheModule,
+    const Triple &TT, StringRef InlineAsm,
     const std::function<void(StringRef, BasicSymbolRef::Flags)> &
         AsmUndefinedRefs) {
-
-  const std::string &InlineAsm = TheModule.getModuleInlineAsm();
   if (InlineAsm.empty())
     return;
 
-  Triple TT(TheModule.getTargetTriple());
   std::string Err;
   const Target *T = TargetRegistry::lookupTarget(TT.str(), Err);
   if (!T)