Convert Outer Control Structure to Loop

This commit is contained in:
W. Felix Handte
2021-10-12 13:34:17 -04:00
parent 79ca830766
commit 0bfc935add
+8 -8
View File
@@ -104,8 +104,8 @@ size_t ZSTD_compressBlock_doubleFast_noDict_generic(
if (offset_1 > maxRep) offsetSaved = offset_1, offset_1 = 0;
}
_start:
/* Outer Loop: one iteration per match found and stored */
while (1) {
step = 1;
nextStep = ip + kStepIncr;
ip1 = ip + step;
@@ -118,7 +118,7 @@ _start:
idxl0 = hashLong[hl0];
matchl0 = base + idxl0;
/* Main Search Loop */
/* Inner Loop: one iteration per search / position */
do {
const size_t hs0 = ZSTD_hashPtr(ip, hBitsS, mls);
const U32 idxs0 = hashSmall[hs0];
@@ -169,9 +169,9 @@ _start:
hl0 = hl1;
idxl0 = idxl1;
matchl0 = matchl1;
#if defined(__aarch64__)
#if defined(__aarch64__)
PREFETCH_L1(ip+256);
#endif
#endif
} while (ip1 <= ilimit);
_cleanup:
@@ -247,9 +247,9 @@ _match_stored:
ip += rLength;
anchor = ip;
continue; /* faster when present ... (?) */
} }
goto _start;
}
}
}
}