[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