diff options
author | tarui <tarui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-05-11 12:50:38 +0000 |
---|---|---|
committer | tarui <tarui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2016-05-11 12:50:38 +0000 |
commit | 938f9066cb0a2eca20ced81b82f23a9444b8c5d5 (patch) | |
tree | 94e8ea351d2be63dac3c3918b4005a12f6e9b79f /iseq.h | |
parent | ddd9f2310a476cfcd24d854466b7d0eac5216607 (diff) | |
download | ruby-938f9066cb0a2eca20ced81b82f23a9444b8c5d5.tar.gz |
* compile.c (iseq_compile_each): share InlineCache during same
instance variable accesses. Reducing memory consumption,
rasing cache hit rate and rasing branch prediction hit rate
are expected. A part of [Bug #12274].
* iseq.h (struct iseq_compile_data): introduce instance
variable IC table for sharing.
* iseq.c (prepare_iseq_build, compile_data_free):
construct/destruct above table.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@54976 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'iseq.h')
-rw-r--r-- | iseq.h | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -213,6 +213,7 @@ struct iseq_compile_data { unsigned int ci_index; unsigned int ci_kw_index; const rb_compile_option_t *option; + st_table *ivar_cache_table; #if SUPPORT_JOKE st_table *labels_table; #endif |