diff options
author | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-14 11:25:36 +0000 |
---|---|---|
committer | k0kubun <k0kubun@b2dd03c8-39d4-4d8f-98ff-823fe69b080e> | 2018-10-14 11:25:36 +0000 |
commit | 589d80e7e337f166777d8f99f190a45013e6f050 (patch) | |
tree | ecbdc2b780cbc48e582c134e5852b50d503548c5 | |
parent | f89fe59db4bf1768d5f6480d15b67f8ebc24d5b9 (diff) | |
download | ruby-589d80e7e337f166777d8f99f190a45013e6f050.tar.gz |
vm_opts.h: share USE_IC_FOR_IVAR as OPT_IC_FOR_IVAR
with mjit_compile.c (tool/ruby_vm/views/_mjit_compile_getivar.erb).
mjit_compile.c: ditto
tool/ruby_vm/views/_mjit_compile_getivar.erb: ditto
vm_opts.h: ditto
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@65074 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
-rw-r--r-- | mjit_compile.c | 5 | ||||
-rw-r--r-- | tool/ruby_vm/views/_mjit_compile_getivar.erb | 4 | ||||
-rw-r--r-- | vm_insnhelper.c | 12 | ||||
-rw-r--r-- | vm_opts.h | 4 |
4 files changed, 10 insertions, 15 deletions
diff --git a/mjit_compile.c b/mjit_compile.c index 89d1a96a10..b2ece0eb77 100644 --- a/mjit_compile.c +++ b/mjit_compile.c @@ -108,11 +108,6 @@ comment_id(FILE *f, ID id) #endif } -/* TODO: share this with vm_insnhelper.c */ -#ifndef USE_IC_FOR_IVAR -#define USE_IC_FOR_IVAR 1 -#endif - static void compile_insns(FILE *f, const struct rb_iseq_constant_body *body, unsigned int stack_size, unsigned int pos, struct compile_status *status); diff --git a/tool/ruby_vm/views/_mjit_compile_getivar.erb b/tool/ruby_vm/views/_mjit_compile_getivar.erb index 630fd72959..da45d3715b 100644 --- a/tool/ruby_vm/views/_mjit_compile_getivar.erb +++ b/tool/ruby_vm/views/_mjit_compile_getivar.erb @@ -7,7 +7,7 @@ % # details. % % # Optimized case of get_instancevariable instruction. -#if USE_IC_FOR_IVAR +#if OPT_IC_FOR_IVAR { % # compiler: Prepare operands which may be used by `insn.call_attribute` % insn.opes.each_with_index do |ope, i| @@ -41,4 +41,4 @@ break; } } -#endif /* USE_IC_FOR_IVAR */ +#endif /* OPT_IC_FOR_IVAR */ diff --git a/vm_insnhelper.c b/vm_insnhelper.c index d934372b75..7bc868d497 100644 --- a/vm_insnhelper.c +++ b/vm_insnhelper.c @@ -950,15 +950,11 @@ vm_search_const_defined_class(const VALUE cbase, ID id) return 0; } -#ifndef USE_IC_FOR_IVAR -#define USE_IC_FOR_IVAR 1 -#endif - ALWAYS_INLINE(static VALUE vm_getivar(VALUE, ID, IC, struct rb_call_cache *, int)); static inline VALUE vm_getivar(VALUE obj, ID id, IC ic, struct rb_call_cache *cc, int is_attr) { -#if USE_IC_FOR_IVAR +#if OPT_IC_FOR_IVAR if (LIKELY(RB_TYPE_P(obj, T_OBJECT))) { VALUE val = Qundef; if (LIKELY(is_attr ? @@ -1000,7 +996,7 @@ vm_getivar(VALUE obj, ID id, IC ic, struct rb_call_cache *cc, int is_attr) else { RB_DEBUG_COUNTER_INC(ivar_get_ic_miss_noobject); } -#endif /* USE_IC_FOR_IVAR */ +#endif /* OPT_IC_FOR_IVAR */ RB_DEBUG_COUNTER_INC(ivar_get_ic_miss); if (is_attr) @@ -1011,7 +1007,7 @@ vm_getivar(VALUE obj, ID id, IC ic, struct rb_call_cache *cc, int is_attr) static inline VALUE vm_setivar(VALUE obj, ID id, VALUE val, IC ic, struct rb_call_cache *cc, int is_attr) { -#if USE_IC_FOR_IVAR +#if OPT_IC_FOR_IVAR rb_check_frozen_internal(obj); if (LIKELY(RB_TYPE_P(obj, T_OBJECT))) { @@ -1051,7 +1047,7 @@ vm_setivar(VALUE obj, ID id, VALUE val, IC ic, struct rb_call_cache *cc, int is_ else { RB_DEBUG_COUNTER_INC(ivar_set_ic_miss_noobject); } -#endif /* USE_IC_FOR_IVAR */ +#endif /* OPT_IC_FOR_IVAR */ RB_DEBUG_COUNTER_INC(ivar_set_ic_miss); return rb_ivar_set(obj, id, val); } @@ -50,6 +50,10 @@ #define OPT_GLOBAL_METHOD_CACHE 1 #define OPT_BLOCKINLINING 0 +#ifndef OPT_IC_FOR_IVAR +#define OPT_IC_FOR_IVAR 1 +#endif + /* architecture independent, affects generated code */ #define OPT_OPERANDS_UNIFICATION 1 #define OPT_INSTRUCTIONS_UNIFICATION 0 |