[llvm] [ADT][NFC] Remove unused ValueInfoT from DenseSetImpl (PR #207277)
Marc Auberer via llvm-commits
llvm-commits at lists.llvm.org
Fri Jul 3 02:50:15 PDT 2026
https://github.com/marcauberer updated https://github.com/llvm/llvm-project/pull/207277
>From e43747c6ac9ab2d5d1e90020adb163a3019a8112 Mon Sep 17 00:00:00 2001
From: Marc Auberer <marc.auberer at chillibits.com>
Date: Thu, 2 Jul 2026 22:52:11 +0200
Subject: [PATCH 1/3] [ADT][NFC] Remove unused ValueInfoT from DenseSetImpl
---
llvm/include/llvm/ADT/DenseSet.h | 32 ++++++++++++--------------------
1 file changed, 12 insertions(+), 20 deletions(-)
diff --git a/llvm/include/llvm/ADT/DenseSet.h b/llvm/include/llvm/ADT/DenseSet.h
index 645d6d1568f35..f130e46539b3a 100644
--- a/llvm/include/llvm/ADT/DenseSet.h
+++ b/llvm/include/llvm/ADT/DenseSet.h
@@ -47,13 +47,10 @@ template <typename KeyT> class DenseSetPair : public DenseSetEmpty {
///
/// MapTy should be either
///
-/// DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
-/// detail::DenseSetPair<ValueT>>
+/// DenseMap<ValueT, detail::DenseSetEmpty, detail::DenseSetPair<ValueT>>
///
-/// or the equivalent SmallDenseMap type. ValueInfoT must implement the
-/// DenseMapInfo "concept".
-template <typename ValueT, typename MapTy, typename ValueInfoT>
-class DenseSetImpl {
+/// or the equivalent SmallDenseMap type.
+template <typename ValueT, typename MapTy> class DenseSetImpl {
static_assert(sizeof(typename MapTy::value_type) == sizeof(ValueT),
"DenseMap buckets unexpectedly large!");
MapTy TheMap;
@@ -246,10 +243,9 @@ class DenseSetImpl {
/// of RHS, and that RHS contains no additional values.
/// Equivalent to N calls to RHS.count. Amortized complexity is linear, worst
/// case is O(N^2) (if every hash collides).
-template <typename ValueT, typename MapTy, typename ValueInfoT>
-[[nodiscard]] bool
-operator==(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
- const DenseSetImpl<ValueT, MapTy, ValueInfoT> &RHS) {
+template <typename ValueT, typename MapTy>
+[[nodiscard]] bool operator==(const DenseSetImpl<ValueT, MapTy> &LHS,
+ const DenseSetImpl<ValueT, MapTy> &RHS) {
if (LHS.size() != RHS.size())
return false;
@@ -263,24 +259,20 @@ operator==(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
/// Inequality comparison for DenseSet.
///
/// Equivalent to !(LHS == RHS). See operator== for performance notes.
-template <typename ValueT, typename MapTy, typename ValueInfoT>
-[[nodiscard]] bool
-operator!=(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
- const DenseSetImpl<ValueT, MapTy, ValueInfoT> &RHS) {
+template <typename ValueT, typename MapTy>
+[[nodiscard]] bool operator!=(const DenseSetImpl<ValueT, MapTy> &LHS,
+ const DenseSetImpl<ValueT, MapTy> &RHS) {
return !(LHS == RHS);
}
template <typename ValueT, typename ValueInfoT>
using DenseSet = DenseSetImpl<
- ValueT, DenseMap<ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair<ValueT>>,
- ValueInfoT>;
+ ValueT, DenseMap<ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair<ValueT>>>;
template <typename ValueT, unsigned InlineBuckets, typename ValueInfoT>
using SmallDenseSet =
- DenseSetImpl<ValueT,
- SmallDenseMap<ValueT, DenseSetEmpty, InlineBuckets, ValueInfoT,
- DenseSetPair<ValueT>>,
- ValueInfoT>;
+ DenseSetImpl<ValueT, SmallDenseMap<ValueT, DenseSetEmpty, InlineBuckets,
+ ValueInfoT, DenseSetPair<ValueT>>>;
} // end namespace detail
>From 4680782bb41cf0a022f7e190481d992cdbf2980c Mon Sep 17 00:00:00 2001
From: Marc Auberer <contact at marc-auberer.com>
Date: Fri, 3 Jul 2026 10:52:42 +0200
Subject: [PATCH 2/3] Restore comment referencing DenseMap, not DenseSet
---
llvm/include/llvm/ADT/DenseSet.h | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/llvm/include/llvm/ADT/DenseSet.h b/llvm/include/llvm/ADT/DenseSet.h
index f130e46539b3a..5c6bdeae7f656 100644
--- a/llvm/include/llvm/ADT/DenseSet.h
+++ b/llvm/include/llvm/ADT/DenseSet.h
@@ -47,9 +47,11 @@ template <typename KeyT> class DenseSetPair : public DenseSetEmpty {
///
/// MapTy should be either
///
-/// DenseMap<ValueT, detail::DenseSetEmpty, detail::DenseSetPair<ValueT>>
+/// DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
+/// detail::DenseSetPair<ValueT>>
///
-/// or the equivalent SmallDenseMap type.
+/// or the equivalent SmallDenseMap type. ValueInfoT must implement the
+/// DenseMapInfo "concept".
template <typename ValueT, typename MapTy> class DenseSetImpl {
static_assert(sizeof(typename MapTy::value_type) == sizeof(ValueT),
"DenseMap buckets unexpectedly large!");
>From 9b0a7b932483a1a987504629a9addc55d326e8d9 Mon Sep 17 00:00:00 2001
From: Marc Auberer <contact at marc-auberer.com>
Date: Fri, 3 Jul 2026 11:50:04 +0200
Subject: [PATCH 3/3] Remove DenseMapInfo "concept" remark in comment
Co-authored-by: Nikita Popov <github at npopov.com>
---
llvm/include/llvm/ADT/DenseSet.h | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/llvm/include/llvm/ADT/DenseSet.h b/llvm/include/llvm/ADT/DenseSet.h
index 5c6bdeae7f656..9f02f67476cf2 100644
--- a/llvm/include/llvm/ADT/DenseSet.h
+++ b/llvm/include/llvm/ADT/DenseSet.h
@@ -50,8 +50,7 @@ template <typename KeyT> class DenseSetPair : public DenseSetEmpty {
/// DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
/// detail::DenseSetPair<ValueT>>
///
-/// or the equivalent SmallDenseMap type. ValueInfoT must implement the
-/// DenseMapInfo "concept".
+/// or the equivalent SmallDenseMap type.
template <typename ValueT, typename MapTy> class DenseSetImpl {
static_assert(sizeof(typename MapTy::value_type) == sizeof(ValueT),
"DenseMap buckets unexpectedly large!");
More information about the llvm-commits
mailing list