OSDN Git Service

[ORC] Fix a FIXME by moving MangleAndInterner to Core.h.
authorLang Hames <lhames@gmail.com>
Tue, 26 Jun 2018 20:59:46 +0000 (20:59 +0000)
committerLang Hames <lhames@gmail.com>
Tue, 26 Jun 2018 20:59:46 +0000 (20:59 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335661 91177308-0d34-0410-b5e6-96231b3b80d8

include/llvm/ExecutionEngine/Orc/Core.h
include/llvm/ExecutionEngine/Orc/Layer.h
lib/ExecutionEngine/Orc/Core.cpp
lib/ExecutionEngine/Orc/Layer.cpp

index 9227216..301a2fe 100644 (file)
@@ -701,6 +701,18 @@ Expected<SymbolMap> lookup(const VSO::VSOList &VSOs, SymbolNameSet Names);
 Expected<JITEvaluatedSymbol> lookup(const VSO::VSOList &VSOs,
                                     SymbolStringPtr Name);
 
+/// Mangles symbol names then uniques them in the context of an
+/// ExecutionSession.
+class MangleAndInterner {
+public:
+  MangleAndInterner(ExecutionSessionBase &ES, const DataLayout &DL);
+  SymbolStringPtr operator()(StringRef Name);
+
+private:
+  ExecutionSessionBase &ES;
+  const DataLayout &DL;
+};
+
 } // End namespace orc
 } // End namespace llvm
 
index 0010fae..91bd4fb 100644 (file)
 namespace llvm {
 namespace orc {
 
-/// Mangles symbol names then uniques them in the context of an
-/// ExecutionSession.
-//
-// FIXME: This may be more at home in Core.h.
-class MangleAndInterner {
-public:
-  MangleAndInterner(ExecutionSession &ES, const DataLayout &DL);
-  SymbolStringPtr operator()(StringRef Name);
-private:
-  ExecutionSession &ES;
-  const DataLayout &DL;
-};
-
 /// Interface for layers that accept LLVM IR.
 class IRLayer {
 public:
index 751e931..333c369 100644 (file)
@@ -10,6 +10,7 @@
 #include "llvm/ExecutionEngine/Orc/Core.h"
 #include "llvm/Config/llvm-config.h"
 #include "llvm/ExecutionEngine/Orc/OrcError.h"
+#include "llvm/IR/Mangler.h"
 #include "llvm/Support/Format.h"
 
 #if LLVM_ENABLE_THREADS
@@ -1208,5 +1209,18 @@ Expected<JITEvaluatedSymbol> lookup(const VSO::VSOList &VSOs,
     return ResultMap.takeError();
 }
 
+MangleAndInterner::MangleAndInterner(ExecutionSessionBase &ES,
+                                     const DataLayout &DL)
+    : ES(ES), DL(DL) {}
+
+SymbolStringPtr MangleAndInterner::operator()(StringRef Name) {
+  std::string MangledName;
+  {
+    raw_string_ostream MangledNameStream(MangledName);
+    Mangler::getNameWithPrefix(MangledNameStream, Name, DL);
+  }
+  return ES.getSymbolStringPool().intern(MangledName);
+}
+
 } // End namespace orc.
 } // End namespace llvm.
index cbf1f4c..76255f5 100644 (file)
 namespace llvm {
 namespace orc {
 
-MangleAndInterner::MangleAndInterner(ExecutionSession &ES, const DataLayout &DL)
-    : ES(ES), DL(DL) {}
-
-SymbolStringPtr MangleAndInterner::operator()(StringRef Name) {
-  std::string MangledName;
-  {
-    raw_string_ostream MangledNameStream(MangledName);
-    Mangler::getNameWithPrefix(MangledNameStream, Name, DL);
-  }
-  return ES.getSymbolStringPool().intern(MangledName);
-}
-
 IRLayer::IRLayer(ExecutionSession &ES) : ES(ES) {}
 IRLayer::~IRLayer() {}