From: "tmm1 (Aman Gupta)" Date: 2013-12-08T11:10:12+09:00 Subject: [ruby-core:58957] [ruby-trunk - Bug #9227] use opt_aset ? Issue #9227 has been updated by tmm1 (Aman Gupta). Maybe some minor improvement on microbenchmarks. Before patch: ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.54s user 0.02s system 99% cpu 1.572 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.58s user 0.02s system 99% cpu 1.608 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.54s user 0.02s system 99% cpu 1.565 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.57s user 0.02s system 99% cpu 1.605 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.54s user 0.02s system 99% cpu 1.569 total After patch: ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.51s user 0.02s system 99% cpu 1.535 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.52s user 0.02s system 99% cpu 1.545 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.49s user 0.02s system 99% cpu 1.515 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.54s user 0.02s system 99% cpu 1.567 total ./miniruby -I. benchmark/bm_so_k_nucleotide.rb > /dev/null 1.50s user 0.02s system 99% cpu 1.530 total ---------------------------------------- Bug #9227: use opt_aset ? https://bugs.ruby-lang.org/issues/9227#change-43506 Author: tmm1 (Aman Gupta) Status: Open Priority: Normal Assignee: Category: Target version: current: 2.1.0 ruby -v: trunk Backport: 1.9.3: UNKNOWN, 2.0.0: UNKNOWN I noticed we have an opt_aset instruction, but nothing is using it. Is there some reason? diff --git a/compile.c b/compile.c index 812f692..9d9f14f 100644 --- a/compile.c +++ b/compile.c @@ -1955,6 +1955,11 @@ iseq_specialized_instruction(rb_iseq_t *iseq, INSN *iobj) case idAREF: SP_INSN(aref); return COMPILE_OK; } break; + case 2: + switch (ci->mid) { + case idASET: SP_INSN(aset); return COMPILE_OK; + } + break; } } if (ci->flag & VM_CALL_ARGS_SKIP_SETUP) { -- http://bugs.ruby-lang.org/