From d08b4219e9bdbc83c92cd50e1d54b24a939a2271 Mon Sep 17 00:00:00 2001 From: Daan Date: Mon, 18 Mar 2024 03:32:06 -0700 Subject: [PATCH] improve used decrement code gen --- src/free.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/free.c b/src/free.c index d0fcf133..6cdac123 100644 --- a/src/free.c +++ b/src/free.c @@ -238,7 +238,9 @@ static inline void mi_free_block_local(mi_page_t* page, mi_block_t* block, bool mi_track_free_size(p, mi_page_usable_size_of(page,block)); // faster then mi_usable_size as we already know the page and that p is unaligned mi_block_set_next(page, block, page->local_free); page->local_free = block; - if mi_unlikely(--page->used == 0) { // using this expression generates better code than: page->used--; if (mi_page_all_free(page)) + const uint32_t used = page->used - 1; + page->used = used; + if mi_unlikely(used == 0) { // generates better code than: --page->used == 0 _mi_page_retire(page); } else if mi_unlikely(check_full && mi_page_is_in_full(page)) {