mirror of
https://git.savannah.gnu.org/git/guile.git
synced 2025-05-01 04:10:18 +02:00
Switch to use Whippet allocation fast paths
* libguile/Makefile.am (noinst_HEADERS, modinclude_HEADERS): Move gc-inline.h to be a private header. * libguile/gc-inline.h (scm_inline_gc_malloc_pointerless): (scm_inline_gc_malloc): Use gc_allocate. * libguile/intrinsics.c (allocate_words_with_freelist): (allocate_pointerless_words_with_freelist): Remove these intrinsics. Renumbers the intrinsics. (scm_bootstrap_intrinsics): * libguile/intrinsics.h (SCM_FOR_ALL_VM_INTRINSICS): Adapt to intrinsics change. * libguile/jit.c (emit_update_alloc_table): (emit_allocate_bytes_fast_freelist): (emit_allocate_words_slow): New helpers. (compile_allocate_words): (compile_allocate_words_immediate): (compile_allocate_words_immediate_slow): (compile_allocate_pointerless_words): (compile_allocate_pointerless_words_immediate): (compile_allocate_pointerless_words_immediate_slow): Use new helpers. * libguile/threads.c (scm_trace_thread_mutator_roots): (on_thread_exit): * libguile/threads.h: Remove Guile-managed thread-local freelists.
This commit is contained in:
parent
7696344634
commit
0532602cd3
7 changed files with 93 additions and 185 deletions
|
@ -77,10 +77,6 @@ struct scm_thread {
|
|||
/* Every thread is a mutator for the GC. */
|
||||
struct gc_mutator *mutator;
|
||||
|
||||
/* Thread-local freelists; see gc-inline.h. */
|
||||
void *freelists[SCM_INLINE_GC_FREELIST_COUNT];
|
||||
void *pointerless_freelists[SCM_INLINE_GC_FREELIST_COUNT];
|
||||
|
||||
scm_i_pthread_t pthread;
|
||||
|
||||
SCM result;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue