diff options
author | Andy Wingo <wingo@pobox.com> | 2018-09-14 09:39:29 +0200 |
---|---|---|
committer | Andy Wingo <wingo@pobox.com> | 2018-09-14 09:39:29 +0200 |
commit | 8bb9ae3b51aa5f16b6b364f5212c0f3a82136a2f (patch) | |
tree | 9174490e0d731a53ea78ad4c4788060901d27bae | |
parent | 0ccd2d0d9ed6b4e233b0cad99d66d57e99ea99c6 (diff) | |
download | guile-8bb9ae3b51aa5f16b6b364f5212c0f3a82136a2f.tar.gz |
Micro-optimization of scm_vm placement in scm_thread
* libguile/threads.h (struct scm_thread): Move the embedded "struct
scm_vm" earlier in the scm_thread. Since the VM (and the JIT) access
VM data (SP, FP, etc) through the thread pointer, this allows more
accesses to be encoded in shorter instruction sequences.
-rw-r--r-- | libguile/threads.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/libguile/threads.h b/libguile/threads.h index 1969f8764..7ebd37789 100644 --- a/libguile/threads.h +++ b/libguile/threads.h @@ -49,6 +49,9 @@ struct scm_thread_wake_data; struct scm_thread { struct scm_thread *next_thread; + /* VM state for this thread. */ + struct scm_vm vm; + SCM handle; scm_i_pthread_t pthread; @@ -104,9 +107,6 @@ struct scm_thread { /* JIT state; NULL until this thread needs to JIT-compile something. */ struct scm_jit_state *jit_state; - - /* VM state for this thread. */ - struct scm_vm vm; }; #define SCM_I_IS_THREAD(x) SCM_SMOB_PREDICATE (scm_tc16_thread, x) |