Simplify more "down left spine" loops
This commit is contained in:
@@ -2513,14 +2513,9 @@ bool checkRangeStartsWith(Node *n, std::span<const uint8_t> key, int begin,
|
||||
__builtin_unreachable(); // GCOVR_EXCL_LINE
|
||||
|
||||
downLeftSpine:
|
||||
for (;;) {
|
||||
if (n->entryPresent) {
|
||||
return n->entry.rangeVersion <= readVersion;
|
||||
}
|
||||
int c = getChildGeq(n, 0);
|
||||
assert(c >= 0);
|
||||
n = getChildExists(n, c);
|
||||
for (; !n->entryPresent; n = getFirstChildExists(n)) {
|
||||
}
|
||||
return n->entry.rangeVersion <= readVersion;
|
||||
}
|
||||
|
||||
namespace {
|
||||
@@ -2633,15 +2628,10 @@ template <bool kAVX512> struct CheckRangeLeftSide {
|
||||
}
|
||||
|
||||
bool downLeftSpine() {
|
||||
for (;;) {
|
||||
if (n->entryPresent) {
|
||||
ok = n->entry.rangeVersion <= readVersion;
|
||||
return true;
|
||||
}
|
||||
int c = getChildGeq(n, 0);
|
||||
assert(c >= 0);
|
||||
n = getChildExists(n, c);
|
||||
for (; !n->entryPresent; n = getFirstChildExists(n)) {
|
||||
}
|
||||
ok = n->entry.rangeVersion <= readVersion;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
||||
@@ -2770,15 +2760,10 @@ template <bool kAVX512> struct CheckRangeRightSide {
|
||||
}
|
||||
|
||||
bool downLeftSpine() {
|
||||
for (;;) {
|
||||
if (n->entryPresent) {
|
||||
ok = n->entry.rangeVersion <= readVersion;
|
||||
return true;
|
||||
}
|
||||
int c = getChildGeq(n, 0);
|
||||
assert(c >= 0);
|
||||
n = getChildExists(n, c);
|
||||
for (; !n->entryPresent; n = getFirstChildExists(n)) {
|
||||
}
|
||||
ok = n->entry.rangeVersion <= readVersion;
|
||||
return true;
|
||||
}
|
||||
};
|
||||
} // namespace
|
||||
|
Reference in New Issue
Block a user