aboutsummaryrefslogtreecommitdiffstats
path: root/vm_core.h
diff options
context:
space:
mode:
authornormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-11 19:25:32 +0000
committernormal <normal@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2014-09-11 19:25:32 +0000
commitf0c968a778ee35f483a05c6d206eb815b1da177b (patch)
treec3e3672ef1ef7d24d825e926a1912597abda8d34 /vm_core.h
parent1d0de2a513cf84a4b74d1cada2b05c2dce49042f (diff)
downloadruby-f0c968a778ee35f483a05c6d206eb815b1da177b.tar.gz
iseq_inline_storage_entry: 24=>16 bytes on 64-bit
We may tag the running_thread pointer to avoid making the "once" struct bigger than "struct iseq_inline_cache_entry". This only saves a small amount with "valgrind ruby -e exit" before: total heap usage: 48,122 allocs, 19,248 frees, 8,110,149 bytes allocated after: total heap usage: 48,122 allocs, 19,253 frees, 8,099,197 bytes allocated * insns.def (once): define and use fake RUNNING_THREAD_ONCE_DONE pointer to indicate is->once.running_thread is done. * vm_core.h (iseq_inline_storage_entry): remove done field, allowing the union to be reduced from 24=>16 bytes on 64-bit git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@47542 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'vm_core.h')
-rw-r--r--vm_core.h1
1 files changed, 0 insertions, 1 deletions
diff --git a/vm_core.h b/vm_core.h
index 78396d12fb..1c3d0cc548 100644
--- a/vm_core.h
+++ b/vm_core.h
@@ -127,7 +127,6 @@ union iseq_inline_storage_entry {
struct {
struct rb_thread_struct *running_thread;
VALUE value;
- VALUE done;
} once;
struct iseq_inline_cache_entry cache;
};