Skip to content

Commit e283c6e

Browse files
committed
[llvm][ADT] Some AddressRanges.h improvements
- Add `const`-qualifications to parameters where applicable. - Rename parameter to adhere to the project's parameter naming convention. - Remove redundant template argument. - Add pointer-qualifications to `auto`-typed variables that are deduced to pointers. - Remove redundant name-qualification. - Change non-explicit conversion operator to an explicit one to avoid surprising implicit conversions.
1 parent 25bf4e2 commit e283c6e

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

llvm/include/llvm/ADT/AddressRanges.h

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -22,14 +22,16 @@ namespace llvm {
2222
class AddressRange {
2323
public:
2424
AddressRange() {}
25-
AddressRange(uint64_t S, uint64_t E) : Start(S), End(E) {
25+
AddressRange(const uint64_t S, const uint64_t E) : Start(S), End(E) {
2626
assert(Start <= End);
2727
}
2828
uint64_t start() const { return Start; }
2929
uint64_t end() const { return End; }
3030
uint64_t size() const { return End - Start; }
3131
uint64_t empty() const { return size() == 0; }
32-
bool contains(uint64_t Addr) const { return Start <= Addr && Addr < End; }
32+
bool contains(const uint64_t Addr) const {
33+
return Start <= Addr && Addr < End;
34+
}
3335
bool contains(const AddressRange &R) const {
3436
return Start <= R.Start && R.End <= End;
3537
}
@@ -63,16 +65,16 @@ template <typename T> class AddressRangesBase {
6365
public:
6466
void clear() { Ranges.clear(); }
6567
bool empty() const { return Ranges.empty(); }
66-
bool contains(uint64_t Addr) const {
68+
bool contains(const uint64_t Addr) const {
6769
return find(Addr, Addr + 1) != Ranges.end();
6870
}
69-
bool contains(AddressRange Range) const {
71+
bool contains(const AddressRange Range) const {
7072
return find(Range.start(), Range.end()) != Ranges.end();
7173
}
7274
void reserve(size_t Capacity) { Ranges.reserve(Capacity); }
7375
size_t size() const { return Ranges.size(); }
7476

75-
std::optional<T> getRangeThatContains(uint64_t Addr) const {
77+
std::optional<T> getRangeThatContains(const uint64_t Addr) const {
7678
typename Collection::const_iterator It = find(Addr, Addr + 1);
7779
if (It == Ranges.end())
7880
return std::nullopt;
@@ -83,17 +85,18 @@ template <typename T> class AddressRangesBase {
8385
typename Collection::const_iterator begin() const { return Ranges.begin(); }
8486
typename Collection::const_iterator end() const { return Ranges.end(); }
8587

86-
const T &operator[](size_t i) const {
87-
assert(i < Ranges.size());
88-
return Ranges[i];
88+
const T &operator[](size_t I) const {
89+
assert(I < Ranges.size());
90+
return Ranges[I];
8991
}
9092

91-
bool operator==(const AddressRangesBase<T> &RHS) const {
93+
bool operator==(const AddressRangesBase &RHS) const {
9294
return Ranges == RHS.Ranges;
9395
}
9496

9597
protected:
96-
typename Collection::const_iterator find(uint64_t Start, uint64_t End) const {
98+
typename Collection::const_iterator find(const uint64_t Start,
99+
const uint64_t End) const {
97100
if (Start >= End)
98101
return Ranges.end();
99102

@@ -124,8 +127,8 @@ class AddressRanges : public AddressRangesBase<AddressRange> {
124127
if (Range.empty())
125128
return Ranges.end();
126129

127-
auto It = llvm::upper_bound(Ranges, Range);
128-
auto It2 = It;
130+
auto *It = upper_bound(Ranges, Range);
131+
auto *It2 = It;
129132
while (It2 != Ranges.end() && It2->start() <= Range.end())
130133
++It2;
131134
if (It != It2) {
@@ -144,7 +147,7 @@ class AddressRanges : public AddressRangesBase<AddressRange> {
144147

145148
class AddressRangeValuePair {
146149
public:
147-
operator AddressRange() const { return Range; }
150+
explicit operator AddressRange() const { return Range; }
148151

149152
AddressRange Range;
150153
int64_t Value = 0;
@@ -164,15 +167,15 @@ inline bool operator==(const AddressRangeValuePair &LHS,
164167
/// ranges are not combined during insertion.
165168
class AddressRangesMap : public AddressRangesBase<AddressRangeValuePair> {
166169
public:
167-
void insert(AddressRange Range, int64_t Value) {
170+
void insert(AddressRange Range, const int64_t Value) {
168171
if (Range.empty())
169172
return;
170173

171174
// Search for range which is less than or equal incoming Range.
172-
auto It = std::partition_point(Ranges.begin(), Ranges.end(),
173-
[=](const AddressRangeValuePair &R) {
174-
return R.Range.start() <= Range.start();
175-
});
175+
auto *It = std::partition_point(Ranges.begin(), Ranges.end(),
176+
[=](const AddressRangeValuePair &R) {
177+
return R.Range.start() <= Range.start();
178+
});
176179

177180
if (It != Ranges.begin())
178181
It--;

0 commit comments

Comments
 (0)