* [PATCH] mem-pool: simplify alignment calculation
@ 2023-12-24 17:02 René Scharfe
0 siblings, 0 replies; only message in thread
From: René Scharfe @ 2023-12-24 17:02 UTC (permalink / raw)
To: Git List
Use DIV_ROUND_UP in mem_pool_alloc() to round the allocation length to
the next multiple of GIT_MAX_ALIGNMENT instead of twiddling bits
explicitly. This is shorter and clearer, to the point that we no longer
need the comment that explains what's being calculated.
Signed-off-by: René Scharfe <l.s.r@web.de>
---
Latest Clang emits the same x64 instructions for both versions; GCC only
emits the supposedly optimal output for the patched version:
https://godbolt.org/z/jPscnPqna
mem-pool.c | 4 +---
1 file changed, 1 insertion(+), 3 deletions(-)
diff --git a/mem-pool.c b/mem-pool.c
index 2b25521e2d..2078c22b09 100644
--- a/mem-pool.c
+++ b/mem-pool.c
@@ -89,9 +89,7 @@ void *mem_pool_alloc(struct mem_pool *pool, size_t len)
struct mp_block *p = NULL;
void *r;
- /* round up to a 'GIT_MAX_ALIGNMENT' alignment */
- if (len & (GIT_MAX_ALIGNMENT - 1))
- len += GIT_MAX_ALIGNMENT - (len & (GIT_MAX_ALIGNMENT - 1));
+ len = DIV_ROUND_UP(len, GIT_MAX_ALIGNMENT) * GIT_MAX_ALIGNMENT;
if (pool->mp_block &&
pool->mp_block->end - pool->mp_block->next_free >= len)
--
2.43.0
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2023-12-24 17:02 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2023-12-24 17:02 [PATCH] mem-pool: simplify alignment calculation René Scharfe
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox