aboutsummaryrefslogtreecommitdiffstats
path: root/iseq.h
diff options
context:
space:
mode:
authortarui <tarui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-11 12:50:38 +0000
committertarui <tarui@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2016-05-11 12:50:38 +0000
commit44916ec448373c56b02a8430da7f87af7febfe0f (patch)
tree94e8ea351d2be63dac3c3918b4005a12f6e9b79f /iseq.h
parentac8c23f1b5494a968d299b4b625449348f385eca (diff)
downloadruby-44916ec448373c56b02a8430da7f87af7febfe0f.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.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/iseq.h b/iseq.h
index e9c97dccbe..d6b0e54820 100644
--- a/iseq.h
+++ b/iseq.h
@@ -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