i64 → ux for bucket indices

This commit is contained in:
dzaima 2024-10-09 03:28:33 +03:00
parent 9371fa0fbc
commit d640931c02
7 changed files with 13 additions and 13 deletions

View File

@ -416,7 +416,7 @@ FORCE_INLINE void preAlloc(usz sz, u8 type) {
#endif
}
#if VERIFY_TAIL
void tailVerifyAlloc(void* ptr, u64 origSz, i64 logAlloc, u8 type);
void tailVerifyAlloc(void* ptr, u64 origSz, ux logAlloc, u8 type);
void tailVerifyFree(void* ptr);
void tailVerifyReinit(void* ptr, u64 s, u64 e);
#define FINISH_OVERALLOC(P, S, E) tailVerifyReinit(P, S, E)

View File

@ -215,7 +215,7 @@ void gc_forceGC(bool toplevel) {
}
STATIC_GLOBAL bool gc_wantTopLevelGC;
bool gc_maybeGC(bool toplevel) {
NOINLINE bool gc_maybeGC(bool toplevel) {
if (gc_depth) return false;
u64 used = tot_heapUsed();
if (used > gc_lastAlloc*2 || (toplevel && gc_wantTopLevelGC)) {

View File

@ -39,7 +39,7 @@ GLOBAL EmptyValue* mm_buckets[128];
#undef BSZ
#undef ALLOC_MODE
NOINLINE void* mm_allocS(i64 bucket, u8 type) {
NOINLINE void* mm_allocS(ux bucket, u8 type) {
return bucket&64? b3_allocS(bucket, type) : b1_allocS(bucket, type);
}

View File

@ -52,7 +52,7 @@ static void tailVerifyInit(void* ptr, u64 filled, u64 end, u64 allocEnd) {
ITER_TAIL(F)
#undef F
}
void tailVerifyAlloc(void* ptr, u64 filled, i64 logAlloc, u8 type) {
void tailVerifyAlloc(void* ptr, u64 filled, ux logAlloc, u8 type) {
u64 end = 1ULL<<logAlloc;
tailVerifyInit(ptr, sizeof(Value), end, end); // `sizeof(Value)` instead of `filled` to permit, without reinit, decreasing used size without having written anything to the space
if (type==t_talloc) ((u64*)((u8*)ptr + end - 8))[0] = filled-8; // -8 because TALLOCP does a +8

View File

@ -26,9 +26,9 @@ ALLOC_FN void* mm_alloc(u64 sz, u8 type) {
NOGC_CHECK("allocating during noalloc");
preAlloc(sz, type);
#if VERIFY_TAIL
i64 logAlloc = LOG2(sz + VERIFY_TAIL);
ux logAlloc = LOG2(sz + VERIFY_TAIL);
#else
i64 logAlloc = LOG2(sz);
ux logAlloc = LOG2(sz);
#endif
void* res = mm_allocL(logAlloc, type);
#if VERIFY_TAIL && !ALLOC_IMPL_MMX

View File

@ -13,7 +13,7 @@ GLOBAL AllocInfo* al;
GLOBAL u64 alCap;
GLOBAL u64 alSize;
FORCE_INLINE void BN(splitTo)(EmptyValue* c, i64 from, i64 to, bool notEqual) {
FORCE_INLINE void BN(splitTo)(EmptyValue* c, ux from, ux to, bool notEqual) {
c->mmInfo = MMI(to);
PLAINLOOP while (from != to) {
from--;
@ -33,7 +33,7 @@ FORCE_INLINE void BN(splitTo)(EmptyValue* c, i64 from, i64 to, bool notEqual) {
STATIC_GLOBAL bool BN(allocMore_rec);
#endif
static NOINLINE void* BN(allocateMore)(i64 bucket, u8 type, i64 from, i64 to) {
static NOINLINE void* BN(allocateMore)(ux bucket, u8 type, ux from, ux to) {
if (from >= ALSZ) from = ALSZ;
if (from < (bucket&63)) from = bucket&63;
u64 sz = BSZ(from);
@ -96,9 +96,9 @@ static NOINLINE void* BN(allocateMore)(i64 bucket, u8 type, i64 from, i64 to) {
return BN(allocL)(bucket, type);
}
NOINLINE void* BN(allocS)(i64 bucket, u8 type) {
i64 to = bucket&63;
i64 from = to;
NOINLINE void* BN(allocS)(ux bucket, u8 type) {
ux to = bucket&63;
ux from = to;
EmptyValue* c;
while (true) {
if (from >= 63) return BN(allocateMore)(bucket, type, from, to);

View File

@ -26,8 +26,8 @@ ALLOC_FN void BN(free)(Value* x) {
BN(freeLink)(x, true);
}
NOINLINE void* BN(allocS)(i64 bucket, u8 type);
static void* BN(allocL)(i64 bucket, u8 type) {
NOINLINE void* BN(allocS)(ux bucket, u8 type);
static void* BN(allocL)(ux bucket, u8 type) {
EmptyValue* x = buckets[bucket];
if (RARE(x==NULL)) return BN(allocS)(bucket, type);
buckets[bucket] = vg_def_v(x->next);