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 Merge pull request #2991 from shyouhei/ruby.h 2020-04-08 13:28:13 +09:00
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 Try to use set-output 2019-12-11 14:03:30 +09:00
asm_parse.rb
bisect.sh Recent commits of trunk do not have svn revision 2019-05-07 22:53:45 +09:00
build-transcode
checksum.rb Move vpath.rb into tool library direcotry. 2019-07-15 13:16:16 +09:00
colors Move to tool/lib from test/lib. 2019-07-02 07:59:54 +09:00
darwin-cc
downloader.rb Use https for downloading Unicode data. 2020-03-09 13:39:23 +09:00
enc-emoji-citrus-gen.rb Put jisx0208.rb to under the library directory. 2019-07-15 11:16:29 +09:00
enc-emoji4unicode.rb
enc-unicode.rb Embed the Emoji version 2018-11-27 06:44:02 +00:00
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 Add RbConfig.fire_update! 2018-11-14 04:42:14 +00:00
fetch-bundled_gems.rb fetch-bundled_gems.rb: Fixed the position of -c 2020-04-25 13:56:24 +09:00
file2lastrev.rb Exit gently if no VCS found but --suppress_not_found is given 2019-09-07 17:26:28 +09:00
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 Removed needless LOAD_PATH modification. 2019-07-15 13:44:37 +09:00
git-refresh
gperf.sed
id2token.rb Removed needless LOAD_PATH modification. 2019-07-15 13:44:37 +09:00
ifchange
insns2vm.rb
install-sh
leaked-globals Update leaked-globals [Bug #16934] 2020-06-04 17:00:52 +09:00
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_archflag.sh: fix bare word in the header 2018-11-22 06:09:07 +00:00
mjit_tabs.rb Make file names and variable names consistent 2020-03-23 22:33:01 -07:00
mk_builtin_loader.rb Introduce Primitive.attr! to annotate 'inline' (#3242) 2020-06-20 17:13:03 -07:00
mkconfig.rb [DOC] Updated module name [ci skip] 2020-03-30 15:53:55 +09:00
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 Substitute autoconf variables by prereq.status 2019-07-02 09:44:37 +09:00
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 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 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 bundled gems with timeout 2020-01-19 11:35:10 +09:00
test-coverage.rb Use Module#name instead of #inspect 2020-05-28 14:39:53 +09:00
transcode-tblgen.rb more on NULL versus functions. 2020-02-07 14:24:19 +09:00
transform_mjit_header.rb Mark some JIT-ed functions as COLDFUNC 2020-05-17 22:21:31 -07:00
travis_retry.sh We did not have tool/ before checkout 2019-08-12 14:37:26 +09:00
update-deps remove prelude.c 2019-12-11 11:24:42 +09:00
vtlh.rb
ytab.sed Bison 3.59.1 folds yydestruct function header 2020-05-04 13:35:38 +09:00