forked from OSchip/llvm-project
scudo: Simplify getClassIdBySize() logic. NFCI.
By subtracting 1 from Size at the beginning we can simplify the subsequent calculations. This also saves 4 instructions on aarch64 and 9 instructions on x86_64, but seems to be perf neutral. Differential Revision: https://reviews.llvm.org/D73936
This commit is contained in:
parent
9271cab270
commit
f7de7084f4
|
@ -66,11 +66,11 @@ public:
|
|||
DCHECK_LE(Size, MaxSize);
|
||||
if (Size <= MidSize)
|
||||
return (Size + MinSize - 1) >> MinSizeLog;
|
||||
Size -= 1;
|
||||
const uptr L = getMostSignificantSetBitIndex(Size);
|
||||
const uptr HBits = (Size >> (L - S)) & M;
|
||||
const uptr LBits = Size & ((1UL << (L - S)) - 1);
|
||||
const uptr L1 = L - MidSizeLog;
|
||||
return MidClass + (L1 << S) + HBits + (LBits > 0);
|
||||
const uptr LBits = (Size >> (L - S)) - (1 << S);
|
||||
const uptr HBits = (L - MidSizeLog) << S;
|
||||
return MidClass + 1 + HBits + LBits;
|
||||
}
|
||||
|
||||
static u32 getMaxCachedHint(uptr Size) {
|
||||
|
|
Loading…
Reference in New Issue