mirror of
https://github.com/ruby/ruby.git
synced 2022-11-09 12:17:21 -05:00
* rb_call_info (ci) has compiled fixed information.
* if ci->flag & VM_CALL_KWARG, then rb_call_info is
also rb_call_info_with_kwarg. This technique reduce one word
for major rb_call_info data.
* rb_calling_info has temporary data (argc, blockptr, recv).
for each method dispatch. This data is allocated only on
machine stack.
* rb_call_cache is for inline method cache.
Before this patch, only rb_call_info_t data is passed.
After this patch, above three structs are passed.
This patch improves:
* data locarity (rb_call_info is now read-only data).
* reduce memory consumption (rb_call_info_with_kwarg,
rb_calling_info).
* compile.c: use above data.
* insns.def: ditto.
* iseq.c: ditto.
* vm_args.c: ditto.
* vm_eval.c: ditto.
* vm_insnhelper.c: ditto.
* vm_insnhelper.h: ditto.
* iseq.h: add iseq_compile_data::ci_index and
iseq_compile_data::ci_kw_indx.
* tool/instruction.rb: introduce TS_CALLCACHE operand type.
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@51903 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
|
||
|---|---|---|
| .. | ||
| test | ||
| asm_parse.rb | ||
| bisect.sh | ||
| build-transcode | ||
| change_maker.rb | ||
| checksum.rb | ||
| downloader.rb | ||
| enc-emoji-citrus-gen.rb | ||
| enc-emoji4unicode.rb | ||
| enc-unicode.rb | ||
| eval.rb | ||
| expand-config.rb | ||
| extlibs.rb | ||
| fake.rb | ||
| file2lastrev.rb | ||
| gem-unpack.rb | ||
| gen_dummy_probes.rb | ||
| gen_ruby_tapset.rb | ||
| generic_erb.rb | ||
| id2token.rb | ||
| ifchange | ||
| insns2vm.rb | ||
| install-sh | ||
| instruction.rb | ||
| jisx0208.rb | ||
| make-snapshot | ||
| make_hgraph.rb | ||
| mdoc2man.rb | ||
| merger.rb | ||
| mkconfig.rb | ||
| mkrunnable.rb | ||
| node_name.rb | ||
| parse.rb | ||
| probes_to_wiki.rb | ||
| rbinstall.rb | ||
| rbuninstall.rb | ||
| redmine-backporter.rb | ||
| release.sh | ||
| rmdirs | ||
| rubytest.rb | ||
| runruby.rb | ||
| strip-rdoc.rb | ||
| transcode-tblgen.rb | ||
| update-deps | ||
| vcs.rb | ||
| vpath.rb | ||
| vtlh.rb | ||
| ytab.sed | ||