Skip to content

Commit ba7eb1d

Browse files
Address a comment.
1 parent fd0ccbb commit ba7eb1d

File tree

2 files changed

+29
-24
lines changed

2 files changed

+29
-24
lines changed

llvm/include/llvm/ADT/DenseSet.h

Lines changed: 26 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -66,8 +66,7 @@ class DenseSetImpl {
6666
using value_type = ValueT;
6767
using size_type = unsigned;
6868

69-
DenseSetImpl() = default;
70-
explicit DenseSetImpl(unsigned InitialReserve) : TheMap(InitialReserve) {}
69+
explicit DenseSetImpl(unsigned InitialReserve = 0) : TheMap(InitialReserve) {}
7170

7271
template <typename InputIt>
7372
DenseSetImpl(const InputIt &I, const InputIt &E)
@@ -251,25 +250,40 @@ bool operator!=(const DenseSetImpl<ValueT, MapTy, ValueInfoT> &LHS,
251250
return !(LHS == RHS);
252251
}
253252

253+
template <typename ValueT, typename ValueInfoT>
254+
using DenseSet = DenseSetImpl<
255+
ValueT, DenseMap<ValueT, DenseSetEmpty, ValueInfoT, DenseSetPair<ValueT>>,
256+
ValueInfoT>;
257+
258+
template <typename ValueT, unsigned InlineBuckets, typename ValueInfoT>
259+
using SmallDenseSet =
260+
DenseSetImpl<ValueT,
261+
SmallDenseMap<ValueT, DenseSetEmpty, InlineBuckets, ValueInfoT,
262+
DenseSetPair<ValueT>>,
263+
ValueInfoT>;
264+
254265
} // end namespace detail
255266

256267
/// Implements a dense probed hash-table based set.
257268
template <typename ValueT, typename ValueInfoT = DenseMapInfo<ValueT>>
258-
using DenseSet =
259-
detail::DenseSetImpl<ValueT,
260-
DenseMap<ValueT, detail::DenseSetEmpty, ValueInfoT,
261-
detail::DenseSetPair<ValueT>>,
262-
ValueInfoT>;
269+
class DenseSet : public detail::DenseSet<ValueT, ValueInfoT> {
270+
using BaseT = detail::DenseSet<ValueT, ValueInfoT>;
271+
272+
public:
273+
using BaseT::BaseT;
274+
};
263275

264276
/// Implements a dense probed hash-table based set with some number of buckets
265277
/// stored inline.
266278
template <typename ValueT, unsigned InlineBuckets = 4,
267279
typename ValueInfoT = DenseMapInfo<ValueT>>
268-
using SmallDenseSet = detail::DenseSetImpl<
269-
ValueT,
270-
SmallDenseMap<ValueT, detail::DenseSetEmpty, InlineBuckets, ValueInfoT,
271-
detail::DenseSetPair<ValueT>>,
272-
ValueInfoT>;
280+
class SmallDenseSet
281+
: public detail::SmallDenseSet<ValueT, InlineBuckets, ValueInfoT> {
282+
using BaseT = detail::SmallDenseSet<ValueT, InlineBuckets, ValueInfoT>;
283+
284+
public:
285+
using BaseT::BaseT;
286+
};
273287

274288
} // end namespace llvm
275289

mlir/include/mlir/Support/LLVM.h

Lines changed: 3 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,8 @@ template <typename KeyT, typename ValueT, typename KeyInfoT, typename BucketT>
5555
class DenseMap;
5656
template <typename T, typename Enable>
5757
struct DenseMapInfo;
58-
namespace detail {
59-
template <typename ValueT, typename MapTy, typename ValueInfoT>
60-
class DenseSetImpl;
61-
struct DenseSetEmpty;
62-
template <typename KeyT>
63-
class DenseSetPair;
64-
} // namespace detail
58+
template <typename ValueT, typename ValueInfoT>
59+
class DenseSet;
6560
class MallocAllocator;
6661
template <typename T>
6762
class MutableArrayRef;
@@ -130,11 +125,7 @@ template <typename KeyT, typename ValueT,
130125
typename BucketT = llvm::detail::DenseMapPair<KeyT, ValueT>>
131126
using DenseMap = llvm::DenseMap<KeyT, ValueT, KeyInfoT, BucketT>;
132127
template <typename ValueT, typename ValueInfoT = DenseMapInfo<ValueT>>
133-
using DenseSet = llvm::detail::DenseSetImpl<
134-
ValueT,
135-
llvm::DenseMap<ValueT, llvm::detail::DenseSetEmpty, ValueInfoT,
136-
llvm::detail::DenseSetPair<ValueT>>,
137-
ValueInfoT>;
128+
using DenseSet = llvm::DenseSet<ValueT, ValueInfoT>;
138129
template <typename T, typename Vector = llvm::SmallVector<T, 0>,
139130
typename Set = DenseSet<T>, unsigned N = 0>
140131
using SetVector = llvm::SetVector<T, Vector, Set, N>;

0 commit comments

Comments
 (0)