From fdc08234d7ede0d5dafedc7819d138eaf9a62ec8 Mon Sep 17 00:00:00 2001 From: Lang Hames Date: Tue, 26 Jun 2018 20:59:46 +0000 Subject: [PATCH] [ORC] Fix a FIXME by moving MangleAndInterner to Core.h. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@335661 91177308-0d34-0410-b5e6-96231b3b80d8 --- include/llvm/ExecutionEngine/Orc/Core.h | 12 ++++++++++++ include/llvm/ExecutionEngine/Orc/Layer.h | 13 ------------- lib/ExecutionEngine/Orc/Core.cpp | 14 ++++++++++++++ lib/ExecutionEngine/Orc/Layer.cpp | 12 ------------ 4 files changed, 26 insertions(+), 25 deletions(-) diff --git a/include/llvm/ExecutionEngine/Orc/Core.h b/include/llvm/ExecutionEngine/Orc/Core.h index 92272166b96..301a2fe0be0 100644 --- a/include/llvm/ExecutionEngine/Orc/Core.h +++ b/include/llvm/ExecutionEngine/Orc/Core.h @@ -701,6 +701,18 @@ Expected lookup(const VSO::VSOList &VSOs, SymbolNameSet Names); Expected 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 diff --git a/include/llvm/ExecutionEngine/Orc/Layer.h b/include/llvm/ExecutionEngine/Orc/Layer.h index 0010fae99a7..91bd4fb83e6 100644 --- a/include/llvm/ExecutionEngine/Orc/Layer.h +++ b/include/llvm/ExecutionEngine/Orc/Layer.h @@ -20,19 +20,6 @@ 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: diff --git a/lib/ExecutionEngine/Orc/Core.cpp b/lib/ExecutionEngine/Orc/Core.cpp index 751e931f26d..333c3693e4a 100644 --- a/lib/ExecutionEngine/Orc/Core.cpp +++ b/lib/ExecutionEngine/Orc/Core.cpp @@ -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 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. diff --git a/lib/ExecutionEngine/Orc/Layer.cpp b/lib/ExecutionEngine/Orc/Layer.cpp index cbf1f4c244d..76255f56fd4 100644 --- a/lib/ExecutionEngine/Orc/Layer.cpp +++ b/lib/ExecutionEngine/Orc/Layer.cpp @@ -15,18 +15,6 @@ 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() {} -- 2.11.0