ruby--ruby/tool
Takashi Kokubun 78352fb52e
Compile opt_send for opt_* only when cc has ISeq
because opt_nil/opt_not/opt_eq populates cc even when it doesn't
fallback to opt_send_without_block because of vm_method_cfunc_is.

```
$ benchmark-driver -v --rbenv 'before --jit;after --jit' benchmark/mjit_opt_cc_insns.yml --repeat-count=4
before --jit: ruby 2.8.0dev (2020-06-22T08:11:24Z master d231b8f95b) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-06-22T08:53:27Z master e1125879ed) +JIT [x86_64-linux]
last_commit=Compile opt_send for opt_* only when cc has ISeq
Calculating -------------------------------------
                     before --jit  after --jit
        mjit_nil?(1)      54.106M      73.693M i/s -     40.000M times in 0.739288s 0.542795s
         mjit_not(1)      53.398M      74.477M i/s -     40.000M times in 0.749090s 0.537075s
     mjit_eq(1, nil)       7.427M       6.497M i/s -      8.000M times in 1.077136s 1.231326s

Comparison:
                     mjit_nil?(1)
         after --jit:  73692594.3 i/s
        before --jit:  54106108.4 i/s - 1.36x  slower

                      mjit_not(1)
         after --jit:  74477487.9 i/s
        before --jit:  53398125.0 i/s - 1.39x  slower

                  mjit_eq(1, nil)
        before --jit:   7427105.9 i/s
         after --jit:   6497063.0 i/s - 1.14x  slower
```

Actually opt_eq becomes slower by this. Maybe it's indeed using
opt_send_without_block, but I'll approach that one in another commit.
2020-06-22 02:08:21 -07:00
..
bundler [rubygems/rubygems] Test against compact_index 0.13.0 2020-06-05 07:32:42 +09:00
lib Prefer String#each_byte when using a block 2020-06-15 16:20:56 +09:00
m4
ruby_vm Compile opt_send for opt_* only when cc has ISeq 2020-06-22 02:08:21 -07:00
test Workaround for Minitest5 2020-05-08 07:38:50 +09:00
actions-commit-info.sh
asm_parse.rb
bisect.sh
build-transcode
checksum.rb
colors
darwin-cc
downloader.rb
enc-emoji-citrus-gen.rb
enc-emoji4unicode.rb
enc-unicode.rb
eval.rb
expand-config.rb
extlibs.rb fiddle: need to update configure after updating config tools 2020-05-27 00:30:59 +09:00
fake.rb
fetch-bundled_gems.rb
file2lastrev.rb
format-release
gem-unpack.rb
gen-mailmap.rb
gen_dummy_probes.rb
gen_ruby_tapset.rb
generic_erb.rb
git-refresh
gperf.sed
id2token.rb
ifchange
insns2vm.rb
install-sh
leaked-globals Update leaked-globals [Bug #16934] 2020-06-04 17:00:52 +09:00
make-snapshot
make_hgraph.rb
mdoc2man.rb
merger.rb
mjit_archflag.sh
mjit_tabs.rb
mk_builtin_loader.rb Introduce Primitive.attr! to annotate 'inline' (#3242) 2020-06-20 17:13:03 -07:00
mkconfig.rb
mkrunnable.rb runnable.rb: ignore broken symlink error on Windows [ci skip] 2020-05-30 01:15:23 +09:00
node_name.rb
parse.rb
prereq.status
probes_to_wiki.rb
pure_parser.rb pure_parser.rb: get rid of an error at localed messages 2020-05-20 10:52:32 +09:00
rbinstall.rb Added install-dbg 2020-06-13 08:22:06 +09:00
rbuninstall.rb rbuninstall.rb: show paths without destdir as well as rbinstall.rb 2020-05-09 13:45:50 +09:00
redmine-backporter.rb
release.sh
rmdirs
run-gcov.rb
run-lcov.rb
runruby.rb Prefer ruby_install_name as runner 2020-06-21 10:34:07 +09:00
strip-rdoc.rb
sync_default_gems.rb Removed sdbm entries from toolchanins 2020-06-19 08:26:47 +09:00
test-bundled-gems.rb
test-coverage.rb Use Module#name instead of #inspect 2020-05-28 14:39:53 +09:00
transcode-tblgen.rb
transform_mjit_header.rb Mark some JIT-ed functions as COLDFUNC 2020-05-17 22:21:31 -07:00
travis_retry.sh
update-deps
vtlh.rb
ytab.sed Bison 3.59.1 folds yydestruct function header 2020-05-04 13:35:38 +09:00