Skip to content

Commit 642c75b

Browse files
committed
[ORC] Make LazyReexportManager::KeyToReentryAddrs plural, use vector::insert.
Cleanup to recent LazyReexportManager changes: KeyToReentryAddr now maps to multiple addrs, so make its name plural. Use vector insert rather than a for loop. NFC.
1 parent b1fab4f commit 642c75b

File tree

2 files changed

+15
-16
lines changed

2 files changed

+15
-16
lines changed

llvm/include/llvm/ExecutionEngine/Orc/LazyReexports.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ class LazyReexportsManager : public ResourceManager {
230230
EmitTrampolinesFn EmitTrampolines;
231231
RedirectableSymbolManager &RSMgr;
232232

233-
DenseMap<ResourceKey, std::vector<ExecutorAddr>> KeyToReentryAddr;
233+
DenseMap<ResourceKey, std::vector<ExecutorAddr>> KeyToReentryAddrs;
234234
DenseMap<ExecutorAddr, CallThroughInfo> CallThroughs;
235235
};
236236

llvm/lib/ExecutionEngine/Orc/LazyReexports.cpp

Lines changed: 14 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -294,14 +294,14 @@ LazyReexportsManager::Create(EmitTrampolinesFn EmitTrampolines,
294294

295295
Error LazyReexportsManager::handleRemoveResources(JITDylib &JD, ResourceKey K) {
296296
JD.getExecutionSession().runSessionLocked([&]() {
297-
auto I = KeyToReentryAddr.find(K);
298-
if (I != KeyToReentryAddr.end()) {
297+
auto I = KeyToReentryAddrs.find(K);
298+
if (I != KeyToReentryAddrs.end()) {
299299
auto &ReentryAddrs = I->second;
300300
for (auto &ReentryAddr : ReentryAddrs) {
301301
assert(CallThroughs.count(ReentryAddr) && "CallTrhough missing");
302302
CallThroughs.erase(ReentryAddr);
303303
}
304-
KeyToReentryAddr.erase(I);
304+
KeyToReentryAddrs.erase(I);
305305
}
306306
});
307307
return Error::success();
@@ -310,19 +310,18 @@ Error LazyReexportsManager::handleRemoveResources(JITDylib &JD, ResourceKey K) {
310310
void LazyReexportsManager::handleTransferResources(JITDylib &JD,
311311
ResourceKey DstK,
312312
ResourceKey SrcK) {
313-
auto I = KeyToReentryAddr.find(SrcK);
314-
if (I != KeyToReentryAddr.end()) {
315-
auto J = KeyToReentryAddr.find(DstK);
316-
if (J == KeyToReentryAddr.end()) {
313+
auto I = KeyToReentryAddrs.find(SrcK);
314+
if (I != KeyToReentryAddrs.end()) {
315+
auto J = KeyToReentryAddrs.find(DstK);
316+
if (J == KeyToReentryAddrs.end()) {
317317
auto Tmp = std::move(I->second);
318-
KeyToReentryAddr.erase(I);
319-
KeyToReentryAddr[DstK] = std::move(Tmp);
318+
KeyToReentryAddrs.erase(I);
319+
KeyToReentryAddrs[DstK] = std::move(Tmp);
320320
} else {
321-
auto &SrcReentryAddrs = I->second;
322-
auto &DstReentryAddrs = J->second;
323-
for (auto &ReentryAddr : SrcReentryAddrs)
324-
DstReentryAddrs.push_back(std::move(ReentryAddr));
325-
KeyToReentryAddr.erase(I);
321+
auto &SrcAddrs = I->second;
322+
auto &DstAddrs = J->second;
323+
DstAddrs.insert(DstAddrs.end(), SrcAddrs.begin(), SrcAddrs.end());
324+
KeyToReentryAddrs.erase(I);
326325
}
327326
}
328327
}
@@ -390,7 +389,7 @@ void LazyReexportsManager::emitRedirectableSymbols(
390389
const auto &ReentryPoint = (*ReentryPoints)[I++];
391390
CallThroughs[ReentryPoint.getAddress()] = {Name, AI.Aliasee,
392391
&MR->getTargetJITDylib()};
393-
KeyToReentryAddr[K].push_back(ReentryPoint.getAddress());
392+
KeyToReentryAddrs[K].push_back(ReentryPoint.getAddress());
394393
}
395394
})) {
396395
MR->getExecutionSession().reportError(std::move(Err));

0 commit comments

Comments
 (0)