mirror of git://sourceware.org/git/glibc.git
Inline tcache functions
The functions tcache_get and tcache_put show up in profiles as they are a critical part of the tcache code. Inline them to give tcache a 16% performance gain. Since this improves multi-threaded cases as well, it helps offset any potential performance loss due to adding single-threaded fast paths. * malloc/malloc.c (tcache_put): Inline. (tcache_get): Inline.
This commit is contained in:
parent
8867c3c14b
commit
e4dd4ace56
|
@ -1,3 +1,8 @@
|
|||
2017-10-17 Wilco Dijkstra <wdijkstr@arm.com>
|
||||
|
||||
* malloc/malloc.c (tcache_put): Inline.
|
||||
(tcache_get): Inline.
|
||||
|
||||
2017-10-17 Jordi Mallach <jordi@gnu.org>
|
||||
|
||||
Aurelien Jarno <aurelien@aurel32.net>
|
||||
|
|
|
@ -2921,7 +2921,7 @@ static __thread tcache_perthread_struct *tcache = NULL;
|
|||
|
||||
/* Caller must ensure that we know tc_idx is valid and there's room
|
||||
for more chunks. */
|
||||
static void
|
||||
static __always_inline void
|
||||
tcache_put (mchunkptr chunk, size_t tc_idx)
|
||||
{
|
||||
tcache_entry *e = (tcache_entry *) chunk2mem (chunk);
|
||||
|
@ -2933,7 +2933,7 @@ tcache_put (mchunkptr chunk, size_t tc_idx)
|
|||
|
||||
/* Caller must ensure that we know tc_idx is valid and there's
|
||||
available chunks to remove. */
|
||||
static void *
|
||||
static __always_inline void *
|
||||
tcache_get (size_t tc_idx)
|
||||
{
|
||||
tcache_entry *e = tcache->entries[tc_idx];
|
||||
|
|
Loading…
Reference in New Issue