Simplify more "down left spine" loops

This commit is contained in:
2024-08-01 13:13:55 -07:00
parent 988ec5ce69
commit be67555756

View File

@@ -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