1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
ruby--ruby/tool
Takashi Kokubun 310ef9f40b
Make vm_call_cfunc_with_frame a fastpath (#3027)
when there's no need to call CALLER_SETUP_ARG and CALLER_REMOVE_EMPTY_KW_SPLAT
(i.e. !rb_splat_or_kwargs_p(ci) && !calling->kw_splat).

Micro benchmark:
```
$ benchmark-driver -v --rbenv 'before;after' benchmark/vm_send_cfunc.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-13T23:45:05Z master b9d3ceee8f) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-14T00:48:52Z no-splat-fastpath 418d363722) [x86_64-linux]
Calculating -------------------------------------
                         before       after
       vm_send_cfunc    69.585M     88.724M i/s -    100.000M times in 1.437097s 1.127096s

Comparison:
                    vm_send_cfunc
               after:  88723605.2 i/s
              before:  69584737.1 i/s - 1.28x  slower
```

Optcarrot:
```
$ benchmark-driver -v --rbenv 'before;after' benchmark.yml --repeat-count=12 --output=all
before: ruby 2.8.0dev (2020-04-13T23:45:05Z master b9d3ceee8f) [x86_64-linux]
after: ruby 2.8.0dev (2020-04-14T00:48:52Z no-splat-fastpath 418d363722) [x86_64-linux]
Calculating -------------------------------------
                                       before                 after
Optcarrot Lan_Master.nes    50.76119601545175     42.73858236484051 fps
                            50.76388649761503     51.04211379912850
                            50.80930672252514     51.39455790755538
                            50.90236000778749     51.75656936556145
                            51.01744746340430     51.86875277356489
                            51.06495279015112     51.88692482485558
                            51.07785337168974     51.93429603190578
                            51.20163525187862     51.95768145071314
                            51.34671771913112     52.45577266040274
                            51.35918340835583     52.53163888762858
                            51.46641337418146     52.62172484121034
                            51.50835463462257     52.85064021113239
```
2020-04-13 20:32:59 -07:00
..
lib Migrate {assert,refute}_patch_exits for compatibility with Minitest5 2020-03-30 21:32:26 +09:00
m4 Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
ruby_vm Make vm_call_cfunc_with_frame a fastpath (#3027) 2020-04-13 20:32:59 -07:00
test MiniTest::Unit.options has default :seed 2020-02-27 04:06:28 +09:00
actions-commit-info.sh Try to use set-output 2019-12-11 14:03:30 +09:00
asm_parse.rb
bisect.sh
build-transcode
checksum.rb
colors
darwin-cc
downloader.rb Use https for downloading Unicode data. 2020-03-09 13:39:23 +09:00
enc-emoji-citrus-gen.rb
enc-emoji4unicode.rb
enc-unicode.rb
eval.rb
expand-config.rb
extlibs.rb
fake.rb
fetch-bundled_gems.rb Try with and without "v" prefix for numeric tag 2020-02-24 12:40:34 +09:00
file2lastrev.rb
format-release fix typo 2019-12-25 17:01:26 +09:00
gem-unpack.rb Remove unneeded exec bits from some files 2019-11-09 21:36:30 +09:00
gen-mailmap.rb Use CDN instead of raw.githubusercontent.com 2019-12-16 16:59:23 +09:00
gen_dummy_probes.rb
gen_ruby_tapset.rb
generic_erb.rb
git-refresh
gperf.sed
id2token.rb
ifchange
insns2vm.rb
install-sh
leaked-globals
make-snapshot Revert "Moved aclocal.m4 to macro directory" 2020-04-05 11:53:07 +09:00
make_hgraph.rb
mdoc2man.rb
merger.rb Add github repo to remove_tag 2019-11-22 19:05:58 +09:00
mjit_archflag.sh
mjit_tabs.rb Make file names and variable names consistent 2020-03-23 22:33:01 -07:00
mk_builtin_binary.rb Update tool/mk_builtin_binary.rb 2019-12-11 11:24:42 +09:00
mk_builtin_loader.rb Also scan rescue clauses 2020-04-04 12:38:00 +09:00
mk_call_iseq_optimized.rb Introduce disposable call-cache. 2020-02-22 09:58:59 +09:00
mkconfig.rb [DOC] Updated module name [ci skip] 2020-03-30 15:53:55 +09:00
mkrunnable.rb
node_name.rb
parse.rb
prereq.status
probes_to_wiki.rb
pure_parser.rb Workaround for bison provided by scoop on mswin environment 2020-02-15 21:20:25 +09:00
rbinstall.rb Do not make disabled directories at installation [Bug #12392] 2020-03-16 17:26:10 +09:00
rbuninstall.rb
redmine-backporter.rb tool/redmine-backporter.rb: fix typo 2020-03-13 22:27:54 +09:00
release.sh fix version regexp 2019-12-25 18:02:53 +09:00
rmdirs
run-gcov.rb
run-lcov.rb
runruby.rb
strip-rdoc.rb
sync_default_gems.rb Fixed to initialize ruby-core repository when it has no master branch 2020-04-09 18:23:49 +09:00
test-bundled-gems.rb Test bundled gems with timeout 2020-01-19 11:35:10 +09:00
test-coverage.rb
transcode-tblgen.rb more on NULL versus functions. 2020-02-07 14:24:19 +09:00
transform_mjit_header.rb Try asserting no static decl rather than warning 2020-03-22 15:49:55 -07:00
travis_retry.sh
update-deps remove prelude.c 2019-12-11 11:24:42 +09:00
vtlh.rb
ytab.sed