Skip to content

Commit e3f5f8c

Browse files
committed
[cling] JITTargetAddress --> ExecutorAddr
Changes similar to: llvm/llvm-project@8b1771b
1 parent 43363ad commit e3f5f8c

File tree

3 files changed

+18
-20
lines changed

3 files changed

+18
-20
lines changed

interpreter/cling/lib/Interpreter/IncrementalExecutor.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -235,7 +235,7 @@ void IncrementalExecutor::replaceSymbol(const char* Name, void* Addr) const {
235235
// FIXME: Look at the registration of at_quick_exit and uncomment.
236236
// assert(m_JIT->getSymbolAddress(Name, /*IncludeHostSymbols*/true) &&
237237
// "The symbol must exist");
238-
m_JIT->addOrReplaceDefinition(Name, llvm::pointerToJITTargetAddress(Addr));
238+
m_JIT->addOrReplaceDefinition(Name, orc::ExecutorAddr::fromPtr(Addr));
239239
}
240240

241241
void* IncrementalExecutor::getAddressOfGlobal(llvm::StringRef symbolName,

interpreter/cling/lib/Interpreter/IncrementalJIT.cpp

Lines changed: 11 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -304,10 +304,9 @@ Error RTDynamicLibrarySearchGenerator::tryToGenerate(
304304

305305
std::string Tmp((*Name).data() + StripGlobalPrefix,
306306
(*Name).size() - StripGlobalPrefix);
307-
if (void *Addr = Dylib.getAddressOfSymbol(Tmp.c_str())) {
308-
NewSymbols[Name] = JITEvaluatedSymbol(
309-
static_cast<JITTargetAddress>(reinterpret_cast<uintptr_t>(Addr)),
310-
JITSymbolFlags::Exported);
307+
if (void* P = Dylib.getAddressOfSymbol(Tmp.c_str())) {
308+
NewSymbols[Name] = {orc::ExecutorAddr::fromPtr(P),
309+
JITSymbolFlags::Exported};
311310
}
312311
}
313312

@@ -338,9 +337,7 @@ class DelegateGenerator : public DefinitionGenerator {
338337
auto Addr = lookup(*KV.first);
339338
if (auto Err = Addr.takeError())
340339
return Err;
341-
Symbols[KV.first] = JITEvaluatedSymbol(
342-
Addr->getValue(),
343-
JITSymbolFlags::Exported);
340+
Symbols[KV.first] = {Addr.get(), JITSymbolFlags::Exported};
344341
}
345342
if (Symbols.empty())
346343
return Error::success();
@@ -426,10 +423,8 @@ static SymbolMap GetListOfLibcNonsharedSymbols(const LLJIT& Jit) {
426423

427424
SymbolMap LibcNonsharedSymbols;
428425
for (const auto& NamePtr : NamePtrList) {
429-
auto Addr = static_cast<JITTargetAddress>(
430-
reinterpret_cast<uintptr_t>(NamePtr.second));
431-
LibcNonsharedSymbols[Jit.mangleAndIntern(NamePtr.first)] =
432-
JITEvaluatedSymbol(Addr, JITSymbolFlags::Exported);
426+
LibcNonsharedSymbols[Jit.mangleAndIntern(NamePtr.first)] = {
427+
orc::ExecutorAddr::fromPtr(NamePtr.second), JITSymbolFlags::Exported};
433428
}
434429
return LibcNonsharedSymbols;
435430
}
@@ -639,16 +634,16 @@ llvm::Error IncrementalJIT::removeModule(const Transaction& T) {
639634
return llvm::Error::success();
640635
}
641636

642-
JITTargetAddress
637+
orc::ExecutorAddr
643638
IncrementalJIT::addOrReplaceDefinition(StringRef Name,
644-
JITTargetAddress KnownAddr) {
639+
orc::ExecutorAddr KnownAddr) {
645640

646641
// Let's inject it
647642
bool Inserted;
648643
SymbolMap::iterator It;
649644
std::tie(It, Inserted) = m_InjectedSymbols.try_emplace(
650645
Jit->mangleAndIntern(Name),
651-
JITEvaluatedSymbol(KnownAddr, JITSymbolFlags::Exported));
646+
ExecutorSymbolDef(KnownAddr, JITSymbolFlags::Exported));
652647
assert(Inserted && "Why wasn't this found in the initial Jit lookup?");
653648

654649
JITDylib& DyLib = Jit->getMainJITDylib();
@@ -658,7 +653,7 @@ IncrementalJIT::addOrReplaceDefinition(StringRef Name,
658653
if (Error Err = DyLib.define(absoluteSymbols({*It}))) {
659654
logAllUnhandledErrors(std::move(Err), errs(),
660655
"[IncrementalJIT] define() failed: ");
661-
return JITTargetAddress{};
656+
return orc::ExecutorAddr();
662657
}
663658

664659
return KnownAddr;
@@ -688,7 +683,7 @@ void* IncrementalJIT::getSymbolAddress(StringRef Name, bool IncludeHostSymbols){
688683
return nullptr;
689684
}
690685

691-
return jitTargetAddressToPointer<void*>(Symbol->getValue());
686+
return (Symbol.get()).toPtr<void*>();
692687
}
693688

694689
bool IncrementalJIT::doesSymbolAlreadyExist(StringRef UnmangledName) {

interpreter/cling/lib/Interpreter/IncrementalJIT.h

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,11 +13,13 @@
1313
#include "llvm/ADT/FunctionExtras.h"
1414
#include "llvm/ADT/StringRef.h"
1515
#include "llvm/ADT/StringSet.h"
16-
#include "llvm/IR/Module.h"
1716
#include "llvm/ExecutionEngine/Orc/Core.h"
1817
#include "llvm/ExecutionEngine/Orc/ExecutorProcessControl.h"
1918
#include "llvm/ExecutionEngine/Orc/LLJIT.h"
19+
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorAddress.h"
20+
#include "llvm/ExecutionEngine/Orc/Shared/ExecutorSymbolDef.h"
2021
#include "llvm/ExecutionEngine/Orc/ThreadSafeModule.h"
22+
#include "llvm/IR/Module.h"
2123
#include "llvm/Support/Error.h"
2224
#include "llvm/Target/TargetMachine.h"
2325

@@ -90,8 +92,9 @@ class IncrementalJIT {
9092

9193
/// Inject a symbol with a known address. Name is not linker mangled, i.e.
9294
/// as known by the IR.
93-
llvm::JITTargetAddress addOrReplaceDefinition(llvm::StringRef Name,
94-
llvm::JITTargetAddress KnownAddr);
95+
llvm::orc::ExecutorAddr
96+
addOrReplaceDefinition(llvm::StringRef Name,
97+
llvm::orc::ExecutorAddr KnownAddr);
9598

9699
llvm::Error runCtors() const {
97100
return Jit->initialize(Jit->getMainJITDylib());

0 commit comments

Comments
 (0)