[llvm] [llvm] Migrate to FoldingSet's typed lookup/insert/erase. NFC (PR #219764)
Fangrui Song via llvm-commits
llvm-commits at lists.llvm.org
Sat Aug 29 22:16:40 PDT 2026
https://github.com/MaskRay created https://github.com/llvm/llvm-project/pull/219764
None
>From ef98ddab4a6b73bf4ec6350f66f9e80f75738871 Mon Sep 17 00:00:00 2001
From: Fangrui Song <i at maskray.me>
Date: Fri, 28 Aug 2026 23:41:25 -0700
Subject: [PATCH] [llvm] Migrate to FoldingSet's typed lookup/insert/erase. NFC
---
bolt/lib/Core/DIEBuilder.cpp | 6 +-
bolt/lib/Core/DebugNames.cpp | 6 +-
llvm/include/llvm/ADT/ImmutableList.h | 6 +-
llvm/lib/Analysis/ScalarEvolution.cpp | 121 +++++++++---------
llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp | 6 +-
.../DWARFLinker/Parallel/DWARFLinkerUnit.cpp | 6 +-
llvm/lib/IR/Attributes.cpp | 54 ++++----
llvm/lib/IR/LegacyPassManager.cpp | 6 +-
.../ItaniumManglingCanonicalizer.cpp | 6 +-
9 files changed, 110 insertions(+), 107 deletions(-)
diff --git a/bolt/lib/Core/DIEBuilder.cpp b/bolt/lib/Core/DIEBuilder.cpp
index b3f151f281152..fd2b872d66eae 100644
--- a/bolt/lib/Core/DIEBuilder.cpp
+++ b/bolt/lib/Core/DIEBuilder.cpp
@@ -989,8 +989,8 @@ void DIEBuilder::assignAbbrev(DIEAbbrev &Abbrev) {
// Check the set for priors.
FoldingSetNodeID ID;
Abbrev.Profile(ID);
- void *InsertToken;
- DIEAbbrev *InSet = AbbreviationsSet.FindNodeOrInsertPos(ID, InsertToken);
+ FoldingSetInsertToken Token;
+ DIEAbbrev *InSet = AbbreviationsSet.lookup(ID, Token);
// If it's newly added.
if (InSet) {
@@ -1002,7 +1002,7 @@ void DIEBuilder::assignAbbrev(DIEAbbrev &Abbrev) {
std::make_unique<DIEAbbrev>(Abbrev.getTag(), Abbrev.hasChildren()));
for (const auto &Attr : Abbrev.getData())
Abbreviations.back()->AddAttribute(Attr);
- AbbreviationsSet.InsertNode(Abbreviations.back().get(), InsertToken);
+ AbbreviationsSet.insert(Abbreviations.back().get(), Token);
// Assign the unique abbreviation number.
Abbrev.setNumber(Abbreviations.size());
Abbreviations.back()->setNumber(Abbreviations.size());
diff --git a/bolt/lib/Core/DebugNames.cpp b/bolt/lib/Core/DebugNames.cpp
index c04c3855fa628..dc2494beca153 100644
--- a/bolt/lib/Core/DebugNames.cpp
+++ b/bolt/lib/Core/DebugNames.cpp
@@ -626,9 +626,9 @@ void DWARF5AcceleratorTable::populateAbbrevsMap() {
{dwarf::DW_IDX_parent, dwarf::DW_FORM_flag_present});
FoldingSetNodeID ID;
Abbrev.Profile(ID);
- void *InsertPos;
+ FoldingSetInsertToken Token;
if (DebugNamesAbbrev *Existing =
- AbbreviationsSet.FindNodeOrInsertPos(ID, InsertPos)) {
+ AbbreviationsSet.lookup(ID, Token)) {
Value->setAbbrevNumber(Existing->getNumber());
continue;
}
@@ -636,7 +636,7 @@ void DWARF5AcceleratorTable::populateAbbrevsMap() {
new (Alloc) DebugNamesAbbrev(std::move(Abbrev));
AbbreviationsVector.push_back(NewAbbrev);
NewAbbrev->setNumber(AbbreviationsVector.size());
- AbbreviationsSet.InsertNode(NewAbbrev, InsertPos);
+ AbbreviationsSet.insert(NewAbbrev, Token);
Value->setAbbrevNumber(NewAbbrev->getNumber());
}
}
diff --git a/llvm/include/llvm/ADT/ImmutableList.h b/llvm/include/llvm/ADT/ImmutableList.h
index 24a4b732cd090..96b526bad2be8 100644
--- a/llvm/include/llvm/ADT/ImmutableList.h
+++ b/llvm/include/llvm/ADT/ImmutableList.h
@@ -188,11 +188,11 @@ class ImmutableListFactory {
[[nodiscard]] ImmutableList<T> concat(ElemT &&Head, ImmutableList<T> Tail) {
// Profile the new list to see if it already exists in our cache.
FoldingSetNodeID ID;
- void* InsertPos;
+ FoldingSetInsertToken Token;
const ListTy* TailImpl = Tail.getInternalPointer();
ListTy::Profile(ID, Head, TailImpl);
- ListTy* L = Cache.FindNodeOrInsertPos(ID, InsertPos);
+ ListTy* L = Cache.lookup(ID, Token);
if (!L) {
// The list does not exist in our cache. Create it.
@@ -201,7 +201,7 @@ class ImmutableListFactory {
new (L) ListTy(std::forward<ElemT>(Head), TailImpl);
// Insert the new list into the cache.
- Cache.InsertNode(L, InsertPos);
+ Cache.insert(L, Token);
}
return L;
diff --git a/llvm/lib/Analysis/ScalarEvolution.cpp b/llvm/lib/Analysis/ScalarEvolution.cpp
index e81d91c03c130..4df043b434b01 100644
--- a/llvm/lib/Analysis/ScalarEvolution.cpp
+++ b/llvm/lib/Analysis/ScalarEvolution.cpp
@@ -464,13 +464,13 @@ const SCEV *ScalarEvolution::getConstant(ConstantInt *V) {
FoldingSetNodeID ID;
ID.AddInteger(scConstant);
ID.AddPointer(V);
- void *IP = nullptr;
+ FoldingSetInsertToken Token;
if (SCEVConstant *S =
- static_cast<SCEVConstant *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP)))
+ static_cast<SCEVConstant *>(UniqueSCEVs.lookup(ID, Token)))
return Entry = S;
SCEVConstant *S =
new (SCEVAllocator) SCEVConstant(ID.Intern(SCEVAllocator), V);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
return Entry = S;
}
@@ -492,11 +492,11 @@ const SCEV *ScalarEvolution::getVScale(Type *Ty) {
FoldingSetNodeID ID;
ID.AddInteger(scVScale);
ID.AddPointer(Ty);
- void *IP = nullptr;
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
+ FoldingSetInsertToken Token;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
return S;
SCEV *S = new (SCEVAllocator) SCEVVScale(ID.Intern(SCEVAllocator), Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
return S;
}
@@ -551,7 +551,7 @@ void SCEVUnknown::deleted() {
SE->forgetMemoizedResults({this});
// Remove this SCEVUnknown from the uniquing map.
- SE->UniqueSCEVs.RemoveNode(this);
+ SE->UniqueSCEVs.erase(this);
// Release the value.
setValPtr(nullptr);
@@ -562,7 +562,7 @@ void SCEVUnknown::allUsesReplacedWith(Value *New) {
SE->forgetMemoizedResults({this});
// Remove this SCEVUnknown from the uniquing map.
- SE->UniqueSCEVs.RemoveNode(this);
+ SE->UniqueSCEVs.erase(this);
// Replace the value pointer in case someone is still using this SCEVUnknown.
setValPtr(New);
@@ -1081,12 +1081,12 @@ const SCEV *ScalarEvolution::getPtrToAddrExpr(const SCEV *Op) {
ID.AddInteger(scPtrToAddr);
ID.AddPointer(U);
ID.AddPointer(Ty);
- void *IP = nullptr;
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
+ FoldingSetInsertToken Token;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
return S;
SCEV *S = new (SCEVAllocator)
SCEVPtrToAddrExpr(ID.Intern(SCEVAllocator), U, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, U);
return static_cast<const SCEV *>(S);
@@ -1110,8 +1110,9 @@ const SCEV *ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty,
ID.AddInteger(scTruncate);
ID.AddPointer(Op.getOpaqueValue());
ID.AddPointer(Ty);
- void *IP = nullptr;
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) return S;
+ FoldingSetInsertToken Token;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
+ return S;
// Fold if the operand is constant.
if (const SCEVConstant *SC = dyn_cast<SCEVConstant>(Op))
@@ -1133,7 +1134,7 @@ const SCEV *ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty,
if (Depth > MaxCastDepth) {
SCEV *S =
new (SCEVAllocator) SCEVTruncateExpr(ID.Intern(SCEVAllocator), Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -1165,7 +1166,7 @@ const SCEV *ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty,
// Although we checked in the beginning that ID is not in the cache, it is
// possible that during recursion and different modification ID was inserted
// into the cache. So if we find it, just return it.
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP))
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
return S;
}
@@ -1187,7 +1188,7 @@ const SCEV *ScalarEvolution::getTruncateExpr(SCEVUse Op, Type *Ty,
// made any changes which would invalidate it.
SCEV *S = new (SCEVAllocator) SCEVTruncateExpr(ID.Intern(SCEVAllocator),
Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -1435,9 +1436,9 @@ bool ScalarEvolution::proveNoWrapByVaryingStart(const SCEV *Start,
ID.AddPointer(PreStart);
ID.AddPointer(Step);
ID.AddPointer(L);
- void *IP = nullptr;
+ FoldingSetInsertToken Token;
const auto *PreAR =
- static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
+ static_cast<SCEVAddRecExpr *>(UniqueSCEVs.lookup(ID, Token));
// Give up if we don't already have the add recurrence we need because
// actually constructing an add recurrence is relatively expensive.
@@ -1567,12 +1568,13 @@ const SCEV *ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
ID.AddInteger(scZeroExtend);
ID.AddPointer(Op.getOpaqueValue());
ID.AddPointer(Ty);
- void *IP = nullptr;
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) return S;
+ FoldingSetInsertToken Token;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
+ return S;
if (Depth > MaxCastDepth) {
SCEV *S = new (SCEVAllocator) SCEVZeroExtendExpr(ID.Intern(SCEVAllocator),
Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -1854,10 +1856,11 @@ const SCEV *ScalarEvolution::getZeroExtendExprImpl(SCEVUse Op, Type *Ty,
// The cast wasn't folded; create an explicit cast node.
// Recompute the insert position, as it may have been invalidated.
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) return S;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
+ return S;
SCEV *S = new (SCEVAllocator) SCEVZeroExtendExpr(ID.Intern(SCEVAllocator),
Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -1922,13 +1925,14 @@ const SCEV *ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
ID.AddInteger(scSignExtend);
ID.AddPointer(Op.getOpaqueValue());
ID.AddPointer(Ty);
- void *IP = nullptr;
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) return S;
+ FoldingSetInsertToken Token;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
+ return S;
// Limit recursion depth.
if (Depth > MaxCastDepth) {
SCEV *S = new (SCEVAllocator) SCEVSignExtendExpr(ID.Intern(SCEVAllocator),
Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -2117,10 +2121,11 @@ const SCEV *ScalarEvolution::getSignExtendExprImpl(SCEVUse Op, Type *Ty,
// The cast wasn't folded; create an explicit cast node.
// Recompute the insert position, as it may have been invalidated.
- if (const SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) return S;
+ if (const SCEV *S = UniqueSCEVs.lookup(ID, Token))
+ return S;
SCEV *S = new (SCEVAllocator) SCEVSignExtendExpr(ID.Intern(SCEVAllocator),
Op, Ty);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Op);
return S;
@@ -2971,15 +2976,14 @@ const SCEV *ScalarEvolution::getOrCreateAddExpr(ArrayRef<SCEVUse> Ops,
ID.AddInteger(scAddExpr);
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
- void *IP = nullptr;
- SCEVAddExpr *S =
- static_cast<SCEVAddExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
+ FoldingSetInsertToken Token;
+ SCEVAddExpr *S = static_cast<SCEVAddExpr *>(UniqueSCEVs.lookup(ID, Token));
if (!S) {
SCEVUse *O = SCEVAllocator.Allocate<SCEVUse>(Ops.size());
llvm::uninitialized_copy(Ops, O);
S = new (SCEVAllocator)
SCEVAddExpr(ID.Intern(SCEVAllocator), O, Ops.size());
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Ops);
}
@@ -2995,15 +2999,15 @@ const SCEV *ScalarEvolution::getOrCreateAddRecExpr(ArrayRef<SCEVUse> Ops,
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
ID.AddPointer(L);
- void *IP = nullptr;
+ FoldingSetInsertToken Token;
SCEVAddRecExpr *S =
- static_cast<SCEVAddRecExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
+ static_cast<SCEVAddRecExpr *>(UniqueSCEVs.lookup(ID, Token));
if (!S) {
SCEVUse *O = SCEVAllocator.Allocate<SCEVUse>(Ops.size());
llvm::uninitialized_copy(Ops, O);
S = new (SCEVAllocator)
SCEVAddRecExpr(ID.Intern(SCEVAllocator), O, Ops.size(), L);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
LoopUsers[L].push_back(S);
registerUser(S, Ops);
@@ -3018,15 +3022,14 @@ const SCEV *ScalarEvolution::getOrCreateMulExpr(ArrayRef<SCEVUse> Ops,
ID.AddInteger(scMulExpr);
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
- void *IP = nullptr;
- SCEVMulExpr *S =
- static_cast<SCEVMulExpr *>(UniqueSCEVs.FindNodeOrInsertPos(ID, IP));
+ FoldingSetInsertToken Token;
+ SCEVMulExpr *S = static_cast<SCEVMulExpr *>(UniqueSCEVs.lookup(ID, Token));
if (!S) {
SCEVUse *O = SCEVAllocator.Allocate<SCEVUse>(Ops.size());
llvm::uninitialized_copy(Ops, O);
S = new (SCEVAllocator) SCEVMulExpr(ID.Intern(SCEVAllocator),
O, Ops.size());
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Ops);
}
@@ -3039,11 +3042,11 @@ const SCEV *ScalarEvolution::getOrCreateUDivExpr(SCEVUse LHS, SCEVUse RHS) {
ID.AddInteger(scUDivExpr);
ID.AddPointer(LHS.getOpaqueValue());
ID.AddPointer(RHS.getOpaqueValue());
- void *IP = nullptr;
- SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
+ FoldingSetInsertToken Token;
+ SCEV *S = UniqueSCEVs.lookup(ID, Token);
if (!S) {
S = new (SCEVAllocator) SCEVUDivExpr(ID.Intern(SCEVAllocator), LHS, RHS);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, ArrayRef<SCEVUse>({LHS, RHS}));
}
@@ -3829,8 +3832,8 @@ SCEV *ScalarEvolution::findExistingSCEVInCache(SCEVTypes SCEVType,
ID.AddInteger(SCEVType);
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
- void *IP = nullptr;
- return UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
+ FoldingSetInsertToken Token;
+ return UniqueSCEVs.lookup(ID, Token);
}
const SCEV *ScalarEvolution::getAbsExpr(const SCEV *Op, bool IsNSW) {
@@ -3951,8 +3954,8 @@ const SCEV *ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
ID.AddInteger(Kind);
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
- void *IP = nullptr;
- const SCEV *ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
+ FoldingSetInsertToken Token;
+ const SCEV *ExistingSCEV = UniqueSCEVs.lookup(ID, Token);
if (ExistingSCEV)
return ExistingSCEV;
SCEVUse *O = SCEVAllocator.Allocate<SCEVUse>(Ops.size());
@@ -3960,7 +3963,7 @@ const SCEV *ScalarEvolution::getMinMaxExpr(SCEVTypes Kind,
SCEV *S = new (SCEVAllocator)
SCEVMinMaxExpr(ID.Intern(SCEVAllocator), Kind, O, Ops.size());
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Ops);
return S;
@@ -4338,8 +4341,8 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
ID.AddInteger(Kind);
for (SCEVUse Op : Ops)
ID.AddPointer(Op.getOpaqueValue());
- void *IP = nullptr;
- const SCEV *ExistingSCEV = UniqueSCEVs.FindNodeOrInsertPos(ID, IP);
+ FoldingSetInsertToken Token;
+ const SCEV *ExistingSCEV = UniqueSCEVs.lookup(ID, Token);
if (ExistingSCEV)
return ExistingSCEV;
@@ -4348,7 +4351,7 @@ ScalarEvolution::getSequentialMinMaxExpr(SCEVTypes Kind,
SCEV *S = new (SCEVAllocator)
SCEVSequentialMinMaxExpr(ID.Intern(SCEVAllocator), Kind, O, Ops.size());
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
registerUser(S, Ops);
return S;
@@ -4430,8 +4433,8 @@ const SCEV *ScalarEvolution::getUnknown(Value *V) {
FoldingSetNodeID ID;
ID.AddInteger(scUnknown);
ID.AddPointer(V);
- void *IP = nullptr;
- if (SCEV *S = UniqueSCEVs.FindNodeOrInsertPos(ID, IP)) {
+ FoldingSetInsertToken Token;
+ if (SCEV *S = UniqueSCEVs.lookup(ID, Token)) {
assert(cast<SCEVUnknown>(S)->getValue() == V &&
"Stale SCEVUnknown in uniquing map!");
return S;
@@ -4439,7 +4442,7 @@ const SCEV *ScalarEvolution::getUnknown(Value *V) {
SCEV *S = new (SCEVAllocator) SCEVUnknown(ID.Intern(SCEVAllocator), V, this,
FirstUnknown);
FirstUnknown = cast<SCEVUnknown>(S);
- UniqueSCEVs.InsertNode(S, IP);
+ UniqueSCEVs.insert(S, Token);
S->computeAndSetCanonical(*this);
return S;
}
@@ -15133,12 +15136,12 @@ ScalarEvolution::getComparePredicate(const ICmpInst::Predicate Pred,
ID.AddInteger(Pred);
ID.AddPointer(LHS);
ID.AddPointer(RHS);
- void *IP = nullptr;
- if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
+ FoldingSetInsertToken Token;
+ if (const auto *S = UniquePreds.lookup(ID, Token))
return S;
SCEVComparePredicate *Eq = new (SCEVAllocator)
SCEVComparePredicate(ID.Intern(SCEVAllocator), Pred, LHS, RHS);
- UniquePreds.InsertNode(Eq, IP);
+ UniquePreds.insert(Eq, Token);
return Eq;
}
@@ -15150,12 +15153,12 @@ const SCEVPredicate *ScalarEvolution::getWrapPredicate(
ID.AddInteger(SCEVPredicate::P_Wrap);
ID.AddPointer(AR);
ID.AddInteger(AddedFlags);
- void *IP = nullptr;
- if (const auto *S = UniquePreds.FindNodeOrInsertPos(ID, IP))
+ FoldingSetInsertToken Token;
+ if (const auto *S = UniquePreds.lookup(ID, Token))
return S;
auto *OF = new (SCEVAllocator)
SCEVWrapPredicate(ID.Intern(SCEVAllocator), AR, AddedFlags);
- UniquePreds.InsertNode(OF, IP);
+ UniquePreds.insert(OF, Token);
return OF;
}
diff --git a/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp b/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
index 46001d7a8a4d5..454143ec00120 100644
--- a/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
+++ b/llvm/lib/DWARFLinker/Classic/DWARFLinker.cpp
@@ -1102,8 +1102,8 @@ void DWARFLinker::assignAbbrev(DIEAbbrev &Abbrev) {
// Check the set for priors.
FoldingSetNodeID ID;
Abbrev.Profile(ID);
- void *InsertToken;
- DIEAbbrev *InSet = AbbreviationsSet.FindNodeOrInsertPos(ID, InsertToken);
+ FoldingSetInsertToken Token;
+ DIEAbbrev *InSet = AbbreviationsSet.lookup(ID, Token);
// If it's newly added.
if (InSet) {
@@ -1115,7 +1115,7 @@ void DWARFLinker::assignAbbrev(DIEAbbrev &Abbrev) {
std::make_unique<DIEAbbrev>(Abbrev.getTag(), Abbrev.hasChildren()));
for (const auto &Attr : Abbrev.getData())
Abbreviations.back()->AddAttribute(Attr);
- AbbreviationsSet.InsertNode(Abbreviations.back().get(), InsertToken);
+ AbbreviationsSet.insert(Abbreviations.back().get(), Token);
// Assign the unique abbreviation number.
Abbrev.setNumber(Abbreviations.size());
Abbreviations.back()->setNumber(Abbreviations.size());
diff --git a/llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.cpp b/llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.cpp
index f596d40e9f7de..5492b9dcbfd8c 100644
--- a/llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.cpp
+++ b/llvm/lib/DWARFLinker/Parallel/DWARFLinkerUnit.cpp
@@ -18,9 +18,9 @@ void DwarfUnit::assignAbbrev(DIEAbbrev &Abbrev) {
// Check the set for priors.
FoldingSetNodeID ID;
Abbrev.Profile(ID);
- void *InsertToken;
+ FoldingSetInsertToken Token;
- DIEAbbrev *InSet = AbbreviationsSet.FindNodeOrInsertPos(ID, InsertToken);
+ DIEAbbrev *InSet = AbbreviationsSet.lookup(ID, Token);
// If it's newly added.
if (InSet) {
// Assign existing abbreviation number.
@@ -31,7 +31,7 @@ void DwarfUnit::assignAbbrev(DIEAbbrev &Abbrev) {
std::make_unique<DIEAbbrev>(Abbrev.getTag(), Abbrev.hasChildren()));
for (const auto &Attr : Abbrev.getData())
Abbreviations.back()->AddAttribute(Attr);
- AbbreviationsSet.InsertNode(Abbreviations.back().get(), InsertToken);
+ AbbreviationsSet.insert(Abbreviations.back().get(), Token);
// Assign the unique abbreviation number.
Abbrev.setNumber(Abbreviations.size());
Abbreviations.back()->setNumber(Abbreviations.size());
diff --git a/llvm/lib/IR/Attributes.cpp b/llvm/lib/IR/Attributes.cpp
index ebb8fbdb39a55..01c35e997a90c 100644
--- a/llvm/lib/IR/Attributes.cpp
+++ b/llvm/lib/IR/Attributes.cpp
@@ -106,8 +106,8 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
else
assert(Val == 0 && "Value must be zero for enum attributes");
- void *InsertPoint;
- AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
+ FoldingSetInsertToken Token;
+ AttributeImpl *PA = pImpl->AttrsSet.lookup(ID, Token);
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
@@ -116,7 +116,7 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
PA = new (pImpl->Alloc) EnumAttributeImpl(Kind);
else
PA = new (pImpl->Alloc) IntAttributeImpl(Kind, Val);
- pImpl->AttrsSet.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSet.insert(PA, Token);
}
// Return the Attribute that we found or created.
@@ -129,8 +129,8 @@ Attribute Attribute::get(LLVMContext &Context, StringRef Kind, StringRef Val) {
ID.AddString(Kind);
if (!Val.empty()) ID.AddString(Val);
- void *InsertPoint;
- AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
+ FoldingSetInsertToken Token;
+ AttributeImpl *PA = pImpl->AttrsSet.lookup(ID, Token);
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
@@ -139,7 +139,7 @@ Attribute Attribute::get(LLVMContext &Context, StringRef Kind, StringRef Val) {
pImpl->Alloc.Allocate(StringAttributeImpl::totalSizeToAlloc(Kind, Val),
alignof(StringAttributeImpl));
PA = new (Mem) StringAttributeImpl(Kind, Val);
- pImpl->AttrsSet.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSet.insert(PA, Token);
}
// Return the Attribute that we found or created.
@@ -154,14 +154,14 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
ID.AddInteger(Kind);
ID.AddPointer(Ty);
- void *InsertPoint;
- AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
+ FoldingSetInsertToken Token;
+ AttributeImpl *PA = pImpl->AttrsSet.lookup(ID, Token);
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
// new one and insert it.
PA = new (pImpl->Alloc) TypeAttributeImpl(Kind, Ty);
- pImpl->AttrsSet.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSet.insert(PA, Token);
}
// Return the Attribute that we found or created.
@@ -179,15 +179,15 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
CR.getLower().Profile(ID);
CR.getUpper().Profile(ID);
- void *InsertPoint;
- AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
+ FoldingSetInsertToken Token;
+ AttributeImpl *PA = pImpl->AttrsSet.lookup(ID, Token);
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
// new one and insert it.
PA = new (pImpl->ConstantRangeAttributeAlloc.Allocate())
ConstantRangeAttributeImpl(Kind, CR);
- pImpl->AttrsSet.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSet.insert(PA, Token);
}
// Return the Attribute that we found or created.
@@ -207,8 +207,8 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
CR.getUpper().Profile(ID);
}
- void *InsertPoint;
- AttributeImpl *PA = pImpl->AttrsSet.FindNodeOrInsertPos(ID, InsertPoint);
+ FoldingSetInsertToken Token;
+ AttributeImpl *PA = pImpl->AttrsSet.lookup(ID, Token);
if (!PA) {
// If we didn't find any existing attributes of the same shape then create a
@@ -222,7 +222,7 @@ Attribute Attribute::get(LLVMContext &Context, Attribute::AttrKind Kind,
ConstantRangeListAttributeImpl::totalSizeToAlloc(Val),
alignof(ConstantRangeListAttributeImpl));
PA = new (Mem) ConstantRangeListAttributeImpl(Kind, Val);
- pImpl->AttrsSet.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSet.insert(PA, Token);
pImpl->ConstantRangeListAttributes.push_back(
reinterpret_cast<ConstantRangeListAttributeImpl *>(PA));
}
@@ -780,8 +780,8 @@ bool Attribute::hasParentContext(LLVMContext &C) const {
assert(isValid() && "invalid Attribute doesn't refer to any context");
FoldingSetNodeID ID;
pImpl->Profile(ID);
- void *Unused;
- return C.pImpl->AttrsSet.FindNodeOrInsertPos(ID, Unused) == pImpl;
+ FoldingSetInsertToken Token;
+ return C.pImpl->AttrsSet.lookup(ID, Token) == pImpl;
}
int Attribute::cmpKind(Attribute A) const {
@@ -1279,8 +1279,8 @@ bool AttributeSet::hasParentContext(LLVMContext &C) const {
assert(hasAttributes() && "empty AttributeSet doesn't refer to any context");
FoldingSetNodeID ID;
SetNode->Profile(ID);
- void *Unused;
- return C.pImpl->AttrsSetNodes.FindNodeOrInsertPos(ID, Unused) == SetNode;
+ FoldingSetInsertToken Token;
+ return C.pImpl->AttrsSetNodes.lookup(ID, Token) == SetNode;
}
AttributeSet::iterator AttributeSet::begin() const {
@@ -1336,9 +1336,9 @@ AttributeSetNode *AttributeSetNode::getSorted(LLVMContext &C,
for (const auto &Attr : SortedAttrs)
Attr.Profile(ID);
- void *InsertPoint;
+ FoldingSetInsertToken Token;
AttributeSetNode *PA =
- pImpl->AttrsSetNodes.FindNodeOrInsertPos(ID, InsertPoint);
+ pImpl->AttrsSetNodes.lookup(ID, Token);
// If we didn't find any existing attributes of the same shape then create a
// new one and insert it.
@@ -1346,7 +1346,7 @@ AttributeSetNode *AttributeSetNode::getSorted(LLVMContext &C,
// Coallocate entries after the AttributeSetNode itself.
void *Mem = ::operator new(totalSizeToAlloc<Attribute>(SortedAttrs.size()));
PA = new (Mem) AttributeSetNode(SortedAttrs);
- pImpl->AttrsSetNodes.InsertNode(PA, InsertPoint);
+ pImpl->AttrsSetNodes.insert(PA, Token);
}
// Return the AttributeSetNode that we found or created.
@@ -1558,9 +1558,9 @@ AttributeList AttributeList::getImpl(LLVMContext &C,
FoldingSetNodeID ID;
AttributeListImpl::Profile(ID, AttrSets);
- void *InsertPoint;
+ FoldingSetInsertToken Token;
AttributeListImpl *PA =
- pImpl->AttrsLists.FindNodeOrInsertPos(ID, InsertPoint);
+ pImpl->AttrsLists.lookup(ID, Token);
// If we didn't find any existing attributes of the same shape then
// create a new one and insert it.
@@ -1570,7 +1570,7 @@ AttributeList AttributeList::getImpl(LLVMContext &C,
AttributeListImpl::totalSizeToAlloc<AttributeSet>(AttrSets.size()),
alignof(AttributeListImpl));
PA = new (Mem) AttributeListImpl(AttrSets);
- pImpl->AttrsLists.InsertNode(PA, InsertPoint);
+ pImpl->AttrsLists.insert(PA, Token);
}
// Return the AttributesList that we found or created.
@@ -2087,8 +2087,8 @@ bool AttributeList::hasParentContext(LLVMContext &C) const {
assert(!isEmpty() && "an empty attribute list has no parent context");
FoldingSetNodeID ID;
pImpl->Profile(ID);
- void *Unused;
- return C.pImpl->AttrsLists.FindNodeOrInsertPos(ID, Unused) == pImpl;
+ FoldingSetInsertToken Token;
+ return C.pImpl->AttrsLists.lookup(ID, Token) == pImpl;
}
AttributeList::iterator AttributeList::begin() const {
diff --git a/llvm/lib/IR/LegacyPassManager.cpp b/llvm/lib/IR/LegacyPassManager.cpp
index bbe75ab275092..48310f048f110 100644
--- a/llvm/lib/IR/LegacyPassManager.cpp
+++ b/llvm/lib/IR/LegacyPassManager.cpp
@@ -634,12 +634,12 @@ AnalysisUsage *PMTopLevelManager::findAnalysisUsage(Pass *P) {
AUFoldingSetNode* Node = nullptr;
FoldingSetNodeID ID;
AUFoldingSetNode::Profile(ID, AU);
- void *IP = nullptr;
- if (auto *N = UniqueAnalysisUsages.FindNodeOrInsertPos(ID, IP))
+ FoldingSetInsertToken Token;
+ if (auto *N = UniqueAnalysisUsages.lookup(ID, Token))
Node = N;
else {
Node = new (AUFoldingSetNodeAllocator.Allocate()) AUFoldingSetNode(AU);
- UniqueAnalysisUsages.InsertNode(Node, IP);
+ UniqueAnalysisUsages.insert(Node, Token);
}
assert(Node && "cached analysis usage must be non null");
diff --git a/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp b/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp
index a1b1c7167e776..3926be1f7e853 100644
--- a/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp
+++ b/llvm/lib/ProfileData/ItaniumManglingCanonicalizer.cpp
@@ -105,8 +105,8 @@ class FoldingNodeAllocator {
llvm::FoldingSetNodeID ID;
profileCtor(ID, NodeKind<T>::Kind, As...);
- void *InsertPos;
- if (NodeHeader *Existing = Nodes.FindNodeOrInsertPos(ID, InsertPos))
+ FoldingSetInsertToken Token;
+ if (NodeHeader *Existing = Nodes.lookup(ID, Token))
return {static_cast<T*>(Existing->getNode()), false};
if (!CreateNewNodes)
@@ -118,7 +118,7 @@ class FoldingNodeAllocator {
RawAlloc.Allocate(sizeof(NodeHeader) + sizeof(T), alignof(NodeHeader));
NodeHeader *New = new (Storage) NodeHeader;
T *Result = new (New->getNode()) T(std::forward<Args>(As)...);
- Nodes.InsertNode(New, InsertPos);
+ Nodes.insert(New, Token);
return {Result, true};
}
More information about the llvm-commits
mailing list