Skip to content

Commit 13bccde

Browse files
[ADT] Use brace initialization in Set/Map (NFC) (#155182)
With brace initialization, we get to avoid type decay and enjoy guaranteed copy elision as part of C++17.
1 parent a5cf82c commit 13bccde

File tree

5 files changed

+18
-21
lines changed

5 files changed

+18
-21
lines changed

llvm/include/llvm/ADT/DenseMap.h

Lines changed: 6 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -257,13 +257,12 @@ class DenseMapBase : public DebugEpochBase {
257257
std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&...Args) {
258258
BucketT *TheBucket;
259259
if (LookupBucketFor(Key, TheBucket))
260-
return std::make_pair(makeInsertIterator(TheBucket),
261-
false); // Already in map.
260+
return {makeInsertIterator(TheBucket), false}; // Already in map.
262261

263262
// Otherwise, insert the new element.
264263
TheBucket =
265264
InsertIntoBucket(TheBucket, std::move(Key), std::forward<Ts>(Args)...);
266-
return std::make_pair(makeInsertIterator(TheBucket), true);
265+
return {makeInsertIterator(TheBucket), true};
267266
}
268267

269268
// Inserts key,value pair into the map if the key isn't already in the map.
@@ -273,12 +272,11 @@ class DenseMapBase : public DebugEpochBase {
273272
std::pair<iterator, bool> try_emplace(const KeyT &Key, Ts &&...Args) {
274273
BucketT *TheBucket;
275274
if (LookupBucketFor(Key, TheBucket))
276-
return std::make_pair(makeInsertIterator(TheBucket),
277-
false); // Already in map.
275+
return {makeInsertIterator(TheBucket), false}; // Already in map.
278276

279277
// Otherwise, insert the new element.
280278
TheBucket = InsertIntoBucket(TheBucket, Key, std::forward<Ts>(Args)...);
281-
return std::make_pair(makeInsertIterator(TheBucket), true);
279+
return {makeInsertIterator(TheBucket), true};
282280
}
283281

284282
/// Alternate version of insert() which allows a different, and possibly
@@ -291,13 +289,12 @@ class DenseMapBase : public DebugEpochBase {
291289
const LookupKeyT &Val) {
292290
BucketT *TheBucket;
293291
if (LookupBucketFor(Val, TheBucket))
294-
return std::make_pair(makeInsertIterator(TheBucket),
295-
false); // Already in map.
292+
return {makeInsertIterator(TheBucket), false}; // Already in map.
296293

297294
// Otherwise, insert the new element.
298295
TheBucket = InsertIntoBucketWithLookup(TheBucket, std::move(KV.first),
299296
std::move(KV.second), Val);
300-
return std::make_pair(makeInsertIterator(TheBucket), true);
297+
return {makeInsertIterator(TheBucket), true};
301298
}
302299

303300
/// insert - Range insertion of pairs.

llvm/include/llvm/ADT/MapVector.h

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,9 +123,9 @@ class MapVector {
123123
It->second = Vector.size();
124124
Vector.emplace_back(std::piecewise_construct, std::forward_as_tuple(Key),
125125
std::forward_as_tuple(std::forward<Ts>(Args)...));
126-
return std::make_pair(std::prev(end()), true);
126+
return {std::prev(end()), true};
127127
}
128-
return std::make_pair(begin() + It->second, false);
128+
return {begin() + It->second, false};
129129
}
130130
template <typename... Ts>
131131
std::pair<iterator, bool> try_emplace(KeyT &&Key, Ts &&...Args) {
@@ -135,9 +135,9 @@ class MapVector {
135135
Vector.emplace_back(std::piecewise_construct,
136136
std::forward_as_tuple(std::move(Key)),
137137
std::forward_as_tuple(std::forward<Ts>(Args)...));
138-
return std::make_pair(std::prev(end()), true);
138+
return {std::prev(end()), true};
139139
}
140-
return std::make_pair(begin() + It->second, false);
140+
return {begin() + It->second, false};
141141
}
142142

143143
std::pair<iterator, bool> insert(const std::pair<KeyT, ValueT> &KV) {

llvm/include/llvm/ADT/SmallPtrSet.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -172,14 +172,14 @@ class SmallPtrSetImplBase : public DebugEpochBase {
172172
// Check to see if it is already in the set.
173173
for (const void *&Bucket : small_buckets()) {
174174
if (Bucket == Ptr)
175-
return std::make_pair(&Bucket, false);
175+
return {&Bucket, false};
176176
}
177177

178178
// Nope, there isn't. If we stay small, just 'pushback' now.
179179
if (NumEntries < CurArraySize) {
180180
CurArray[NumEntries++] = Ptr;
181181
incrementEpoch();
182-
return std::make_pair(CurArray + (NumEntries - 1), true);
182+
return {CurArray + (NumEntries - 1), true};
183183
}
184184
// Otherwise, hit the big set case, which will call grow.
185185
}
@@ -400,7 +400,7 @@ class SmallPtrSetImpl : public SmallPtrSetImplBase {
400400
/// the element equal to Ptr.
401401
std::pair<iterator, bool> insert(PtrType Ptr) {
402402
auto p = insert_imp(PtrTraits::getAsVoidPointer(Ptr));
403-
return std::make_pair(makeIterator(p.first), p.second);
403+
return {makeIterator(p.first), p.second};
404404
}
405405

406406
/// Insert the given pointer with an iterator hint that is ignored. This is

llvm/include/llvm/ADT/SparseSet.h

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -258,10 +258,10 @@ class SparseSet {
258258
unsigned Idx = ValIndexOf(Val);
259259
iterator I = findIndex(Idx);
260260
if (I != end())
261-
return std::make_pair(I, false);
261+
return {I, false};
262262
Sparse[Idx] = size();
263263
Dense.push_back(Val);
264-
return std::make_pair(end() - 1, true);
264+
return {end() - 1, true};
265265
}
266266

267267
/// array subscript - If an element already exists with this key, return it.

llvm/include/llvm/ADT/StringMap.h

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -380,8 +380,8 @@ class LLVM_ALLOCATORHOLDER_EMPTYBASE StringMap
380380
unsigned BucketNo = LookupBucketFor(Key, FullHashValue);
381381
StringMapEntryBase *&Bucket = TheTable[BucketNo];
382382
if (Bucket && Bucket != getTombstoneVal())
383-
return std::make_pair(iterator(TheTable + BucketNo, false),
384-
false); // Already exists in map.
383+
return {iterator(TheTable + BucketNo, false),
384+
false}; // Already exists in map.
385385

386386
if (Bucket == getTombstoneVal())
387387
--NumTombstones;
@@ -391,7 +391,7 @@ class LLVM_ALLOCATORHOLDER_EMPTYBASE StringMap
391391
assert(NumItems + NumTombstones <= NumBuckets);
392392

393393
BucketNo = RehashTable(BucketNo);
394-
return std::make_pair(iterator(TheTable + BucketNo, false), true);
394+
return {iterator(TheTable + BucketNo, false), true};
395395
}
396396

397397
// clear - Empties out the StringMap

0 commit comments

Comments
 (0)