Skip to content

Commit d5aecb9

Browse files
committed
Retire llvm::less/equal in favor of C++14 std::less<>/equal_to<>.
llvm-svn: 369674
1 parent fba8285 commit d5aecb9

File tree

6 files changed

+23
-34
lines changed

6 files changed

+23
-34
lines changed

clang-tools-extra/clang-doc/Representation.h

+2-2
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,7 @@ struct CommentInfo {
6161
return false;
6262

6363
return std::equal(Children.begin(), Children.end(), Other.Children.begin(),
64-
llvm::deref<llvm::equal>{});
64+
llvm::deref<std::equal_to<>>{});
6565
}
6666

6767
// This operator is used to sort a vector of CommentInfos.
@@ -82,7 +82,7 @@ struct CommentInfo {
8282
if (FirstCI == SecondCI) {
8383
return std::lexicographical_compare(
8484
Children.begin(), Children.end(), Other.Children.begin(),
85-
Other.Children.end(), llvm::deref<llvm::less>());
85+
Other.Children.end(), llvm::deref<std::less<>>());
8686
}
8787

8888
return false;

llvm/include/llvm/ADT/STLExtras.h

-14
Original file line numberDiff line numberDiff line change
@@ -1389,20 +1389,6 @@ struct pair_hash {
13891389
}
13901390
};
13911391

1392-
/// A functor like C++14's std::less<void> in its absence.
1393-
struct less {
1394-
template <typename A, typename B> bool operator()(A &&a, B &&b) const {
1395-
return std::forward<A>(a) < std::forward<B>(b);
1396-
}
1397-
};
1398-
1399-
/// A functor like C++14's std::equal<void> in its absence.
1400-
struct equal {
1401-
template <typename A, typename B> bool operator()(A &&a, B &&b) const {
1402-
return std::forward<A>(a) == std::forward<B>(b);
1403-
}
1404-
};
1405-
14061392
/// Binary functor that adapts to any other binary functor after dereferencing
14071393
/// operands.
14081394
template <typename T> struct deref {

llvm/utils/TableGen/CodeGenDAGPatterns.cpp

+1-1
Original file line numberDiff line numberDiff line change
@@ -1393,7 +1393,7 @@ std::string PatternToMatch::getPredicateCheck() const {
13931393
if (!P.getCondString().empty())
13941394
PredList.push_back(&P);
13951395
}
1396-
llvm::sort(PredList, deref<llvm::less>());
1396+
llvm::sort(PredList, deref<std::less<>>());
13971397

13981398
std::string Check;
13991399
for (unsigned i = 0, e = PredList.size(); i != e; ++i) {

llvm/utils/TableGen/CodeGenRegisters.cpp

+10-8
Original file line numberDiff line numberDiff line change
@@ -734,8 +734,8 @@ struct TupleExpander : SetTheory::Expander {
734734
//===----------------------------------------------------------------------===//
735735

736736
static void sortAndUniqueRegisters(CodeGenRegister::Vec &M) {
737-
llvm::sort(M, deref<llvm::less>());
738-
M.erase(std::unique(M.begin(), M.end(), deref<llvm::equal>()), M.end());
737+
llvm::sort(M, deref<std::less<>>());
738+
M.erase(std::unique(M.begin(), M.end(), deref<std::equal_to<>>()), M.end());
739739
}
740740

741741
CodeGenRegisterClass::CodeGenRegisterClass(CodeGenRegBank &RegBank, Record *R)
@@ -860,7 +860,7 @@ void CodeGenRegisterClass::inheritProperties(CodeGenRegBank &RegBank) {
860860

861861
bool CodeGenRegisterClass::contains(const CodeGenRegister *Reg) const {
862862
return std::binary_search(Members.begin(), Members.end(), Reg,
863-
deref<llvm::less>());
863+
deref<std::less<>>());
864864
}
865865

866866
namespace llvm {
@@ -896,7 +896,7 @@ static bool testSubClass(const CodeGenRegisterClass *A,
896896
return A->RSI.isSubClassOf(B->RSI) &&
897897
std::includes(A->getMembers().begin(), A->getMembers().end(),
898898
B->getMembers().begin(), B->getMembers().end(),
899-
deref<llvm::less>());
899+
deref<std::less<>>());
900900
}
901901

902902
/// Sorting predicate for register classes. This provides a topological
@@ -2140,9 +2140,10 @@ void CodeGenRegBank::inferCommonSubClass(CodeGenRegisterClass *RC) {
21402140
const CodeGenRegister::Vec &Memb1 = RC1->getMembers();
21412141
const CodeGenRegister::Vec &Memb2 = RC2->getMembers();
21422142
CodeGenRegister::Vec Intersection;
2143-
std::set_intersection(
2144-
Memb1.begin(), Memb1.end(), Memb2.begin(), Memb2.end(),
2145-
std::inserter(Intersection, Intersection.begin()), deref<llvm::less>());
2143+
std::set_intersection(Memb1.begin(), Memb1.end(), Memb2.begin(),
2144+
Memb2.end(),
2145+
std::inserter(Intersection, Intersection.begin()),
2146+
deref<std::less<>>());
21462147

21472148
// Skip disjoint class pairs.
21482149
if (Intersection.empty())
@@ -2167,7 +2168,8 @@ void CodeGenRegBank::inferCommonSubClass(CodeGenRegisterClass *RC) {
21672168
void CodeGenRegBank::inferSubClassWithSubReg(CodeGenRegisterClass *RC) {
21682169
// Map SubRegIndex to set of registers in RC supporting that SubRegIndex.
21692170
typedef std::map<const CodeGenSubRegIndex *, CodeGenRegister::Vec,
2170-
deref<llvm::less>> SubReg2SetMap;
2171+
deref<std::less<>>>
2172+
SubReg2SetMap;
21712173

21722174
// Compute the set of registers supporting each SubRegIndex.
21732175
SubReg2SetMap SRSets;

llvm/utils/TableGen/CodeGenRegisters.h

+8-7
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,8 @@ namespace llvm {
9393

9494
// Map of composite subreg indices.
9595
typedef std::map<CodeGenSubRegIndex *, CodeGenSubRegIndex *,
96-
deref<llvm::less>> CompMap;
96+
deref<std::less<>>>
97+
CompMap;
9798

9899
// Returns the subreg index that results from composing this with Idx.
99100
// Returns NULL if this and Idx don't compose.
@@ -137,15 +138,14 @@ namespace llvm {
137138
/// list of subregisters they are composed of (if any). Do this recursively.
138139
void computeConcatTransitiveClosure();
139140

141+
bool operator<(const CodeGenSubRegIndex &RHS) const {
142+
return this->EnumValue < RHS.EnumValue;
143+
}
144+
140145
private:
141146
CompMap Composed;
142147
};
143148

144-
inline bool operator<(const CodeGenSubRegIndex &A,
145-
const CodeGenSubRegIndex &B) {
146-
return A.EnumValue < B.EnumValue;
147-
}
148-
149149
/// CodeGenRegister - Represents a register definition.
150150
struct CodeGenRegister {
151151
Record *TheDef;
@@ -156,7 +156,8 @@ namespace llvm {
156156
bool Artificial;
157157

158158
// Map SubRegIndex -> Register.
159-
typedef std::map<CodeGenSubRegIndex *, CodeGenRegister *, deref<llvm::less>>
159+
typedef std::map<CodeGenSubRegIndex *, CodeGenRegister *,
160+
deref<std::less<>>>
160161
SubRegMap;
161162

162163
CodeGenRegister(Record *R, unsigned Enum);

llvm/utils/TableGen/RegisterInfoEmitter.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -888,7 +888,7 @@ RegisterInfoEmitter::runMCDesc(raw_ostream &OS, CodeGenTarget &Target,
888888
// Keep track of sub-register names as well. These are not differentially
889889
// encoded.
890890
typedef SmallVector<const CodeGenSubRegIndex*, 4> SubRegIdxVec;
891-
SequenceToOffsetTable<SubRegIdxVec, deref<llvm::less>> SubRegIdxSeqs;
891+
SequenceToOffsetTable<SubRegIdxVec, deref<std::less<>>> SubRegIdxSeqs;
892892
SmallVector<SubRegIdxVec, 4> SubRegIdxLists(Regs.size());
893893

894894
SequenceToOffsetTable<std::string> RegStrings;
@@ -1315,7 +1315,7 @@ RegisterInfoEmitter::runTargetDesc(raw_ostream &OS, CodeGenTarget &Target,
13151315
// Compress the sub-reg index lists.
13161316
typedef std::vector<const CodeGenSubRegIndex*> IdxList;
13171317
SmallVector<IdxList, 8> SuperRegIdxLists(RegisterClasses.size());
1318-
SequenceToOffsetTable<IdxList, deref<llvm::less>> SuperRegIdxSeqs;
1318+
SequenceToOffsetTable<IdxList, deref<std::less<>>> SuperRegIdxSeqs;
13191319
BitVector MaskBV(RegisterClasses.size());
13201320

13211321
for (const auto &RC : RegisterClasses) {

0 commit comments

Comments
 (0)