aboutsummaryrefslogtreecommitdiffstats
Commit message (Collapse)AuthorAgeFilesLines
* rb_big_aref: do not goto into a branch卜部昌平2020-06-291-2/+2
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* rb_int_parse_cstr: do not goto into a branch卜部昌平2020-06-291-4/+6
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* str2big_scan_digits: do not goto into a branch卜部昌平2020-06-291-4/+3
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* bary_mul_karatsuba_branch: do not goto into a branch卜部昌平2020-06-291-6/+10
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* node_children: do not goto into a branch卜部昌平2020-06-291-29/+2
| | | | | | Was this an autogenerated function? This tendency of avoiding empty branches are no longer preserved (see for instance NODE_IVAR). Let's just delete those unnecessary jumps into branches.
* rb_ary_slice_bang: do not goto into a branch卜部昌平2020-06-291-22/+38
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* ary_join_1: do not goto into a branch卜部昌平2020-06-291-35/+38
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* rb_ary_aset: do not goto into a branch卜部昌平2020-06-291-14/+22
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* add spaces [ci skip]卜部昌平2020-06-291-1/+8
|
* ary_ensure_room_for_unshift: do not goto into a branch卜部昌平2020-06-291-31/+44
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* rb_ary_behead: do not goto into a branch卜部昌平2020-06-291-21/+35
| | | | | I'm not necessarily against every goto in general, but jumping into a branch is definitely a bad idea. Better refactor.
* Calculate header line count instead of hardcodingNobuyoshi Nakada2020-06-281-1/+2
|
* Replace separators in input file name in header tooNobuyoshi Nakada2020-06-281-4/+4
|
* Replace ALT_SEPARATOR with SEPARATOR also in output file nameNobuyoshi Nakada2020-06-281-1/+5
| | | | | | | | To suppress warnings by Visual C. ``` ./integer.rb(5) : warning C4129: 'i' : unrecognized character escape sequence ./kernel.rb(21) : warning C4129: 'k' : unrecognized character escape sequence ```
* [ruby/fiddle] support for very old libffiNobuyoshi Nakada2020-06-282-0/+5
| | | | | Define `Fiddle::TYPE_VARIADIC` only when `ffi_prep_cif_var` is available, otherwise skip the test for it.
* Mark some Integer methods as inline (#3264)Takashi Kokubun2020-06-274-94/+104
|
* * 2020-06-28 [ci skip]git2020-06-281-1/+1
|
* [ruby/fiddle] try bundled libffi by defaultNobuyoshi Nakada2020-06-281-1/+1
| | | | | If no installed libffi found, use bundled libffi unless explicitly `--disable-bundled-libffi` option is given.
* [ruby/fiddle] Support MSWIN (#43)Sutou Kouhei2020-06-274-32/+54
| | | | https://github.com/ruby/fiddle/commit/f16e7ff6e0
* [ruby/fiddle] test windows: use _snprintfSutou Kouhei2020-06-271-1/+6
| | | | https://github.com/ruby/fiddle/commit/aa261bdb9f
* [ruby/fiddle] Add missing includeSutou Kouhei2020-06-271-0/+2
| | | | https://github.com/ruby/fiddle/commit/4ca61efcd7
* [ruby/fiddle] Add support for variadic argumentsSutou Kouhei2020-06-276-64/+229
| | | | | | | | GitHub: fix GH-39 Reported by kojix2. Thanks!!! https://github.com/ruby/fiddle/commit/6c4cb904dc
* [ruby/fiddle] Use meaningful variable nameSutou Kouhei2020-06-271-3/+3
| | | | https://github.com/ruby/fiddle/commit/2cac24b7c8
* [ruby/fiddle] Use "do { } while (0)" to ensure requiring ";"Sutou Kouhei2020-06-271-8/+8
| | | | https://github.com/ruby/fiddle/commit/2155ae5979
* Update to ruby/spec@6c466d4Benoit Daloze2020-06-271-1/+1
|
* Removed non-ASCII code to suppress warnings by localized compilersNobuyoshi Nakada2020-06-271-2/+2
|
* Update to ruby/spec@b6b7752Benoit Daloze2020-06-2735-55/+651
|
* Update to ruby/mspec@6cb1f10Benoit Daloze2020-06-274-5/+8
|
* Revert "Try increasing read timeout of rinda tests"Takashi Kokubun2020-06-261-8/+3
| | | | | | | | | | | | This reverts commit 5c03e4680e724faeedb2c5fc1581d5fcb66aaff2. I gave up stabilizing Rinda::TupleSpaceProxyTest#test_cancel_02. As the test uses sleep, it's probably not gonna be stable with --jit-wait. http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3028276 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3028065 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3027857 http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3027441
* Cosmetic changeKazuki Tsujimoto2020-06-271-1/+2
|
* Suppress "assigned but unused variable" warningsKazuki Tsujimoto2020-06-271-4/+4
|
* Add #deconstruct cache to find patternVladimir Dementyev2020-06-272-59/+74
|
* Optimize array pattern matching by caching #deconstruct valueVladimir Dementyev2020-06-272-16/+143
|
* Add pattern matching with arrays benchmarkVladimir Dementyev2020-06-271-0/+19
|
* * 2020-06-27 [ci skip]git2020-06-271-1/+1
|
* Removed no longer used flagsNobuyoshi Nakada2020-06-271-2/+0
|
* Not to rewrite node while compilingNobuyoshi Nakada2020-06-271-9/+4
| | | | | | Moved this hack mark to an argument to `compile_hash`. > Bad Hack: temporarily mark hash node with flag so > compile_hash can compile call differently.
* Avoid duplicated "when"s [ci skip]Takashi Kokubun2020-06-261-2/+2
|
* Add a NEWS placeholder for disposable cc [ci skip]Takashi Kokubun2020-06-261-0/+5
| | | | asked by ko1 to put this.
* Add NEWS entries about JIT optimizationsTakashi Kokubun2020-06-261-0/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | and a related VM improvement. JIT related commits: * Code size reduction * Deduplicate functions on JIT compaction 818d6d33368a396d9cd3d1a34a84015a9e76c5c8 * Avoid always inlining cold paths of ivar fcd257629063a345c48ff2d8057fa8ab910881f2 * Inline only fast path of rb_class_of b16a2aa938d091c387a7437d94dac7f7bb829ba2 * Eliminate a call instruction on deopt 61b14bb32b7e62760225cb2207df5fe87e5339ab * Cold path partitioning * Mark method call slow paths as COLDFUNC 0e5a58b6bf6aae72b6290a8d68e0a1b6d9eb4f79 * Mark vm_stackoverflow as NOINLINE COLDFUNC 9d71373c237876038cbac63bb0132907a78288a2 * Create mjit_exec_slowpath and mark it as NOINLINE COLDFUNC 083a17a82ad4c1f80cfb9e84cfb1bff5586470b1 * Primitive.attr! 'inline' / Integer#zero? 7561db8c009bb79a75024fa4ed0350bfb3d0626c * Kernel#class 946e5cc668f66a4a0b79461047d3fcba8b71eef0 * (more to come...) * Properly generate opt_send for cfunc cc 7982dc1dfd5df000b7361ccb7bc820da4f3547b8 * Optimize exivar access b736ea63bd4ce4e2fc81dfa73938b39fa70f659c * Make JIT-ed leave leaf 151f8be40d385ada2ebf7feb84210ed7db7ef4df * Inline vm_call_cfunc b9d3ceee8f8e4fade1eddc0c18abee59f9c1eee7 VM: * Enable fastpath on invokesuper 5c2768181382bf84137759efea66f3aaf212665d * History: https://speakerdeck.com/k0kubun/ruby-3-samituto?slide=40 (in Japanese)
* [ruby/fiddle] Fixed typosNobuyoshi Nakada2020-06-262-4/+24
| | | | | | https://github.com/ruby/fiddle/commit/a09e66adf4 https://github.com/ruby/fiddle/commit/6cab9b45d6 https://github.com/ruby/fiddle/commit/ab72b19bed
* Show what's inlined first in "JIT inline" logTakashi Kokubun2020-06-252-3/+6
| | | | and add a debug log
* Decide JIT-ed insn based on cached cfuncTakashi Kokubun2020-06-254-9/+23
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | for opt_* insns. opt_eq handles rb_obj_equal inside opt_eq, and all other cfunc is handled by opt_send_without_block. Therefore we can't decide which insn should be generated by checking whether it's cfunc cc or not. ``` $ 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-26T05:21:43Z master 9dbc2294a6) +JIT [x86_64-linux] after --jit: ruby 2.8.0dev (2020-06-26T06:30:18Z master 75cece1b0b) +JIT [x86_64-linux] last_commit=Decide JIT-ed insn based on cached cfunc Calculating ------------------------------------- before --jit after --jit mjit_nil?(1) 73.878M 74.021M i/s - 40.000M times in 0.541432s 0.540391s mjit_not(1) 72.635M 74.601M i/s - 40.000M times in 0.550702s 0.536187s mjit_eq(1, nil) 7.331M 7.445M i/s - 8.000M times in 1.091211s 1.074596s mjit_eq(nil, 1) 49.450M 64.711M i/s - 8.000M times in 0.161781s 0.123627s Comparison: mjit_nil?(1) after --jit: 74020528.4 i/s before --jit: 73878185.9 i/s - 1.00x slower mjit_not(1) after --jit: 74600882.0 i/s before --jit: 72634507.6 i/s - 1.03x slower mjit_eq(1, nil) after --jit: 7444657.4 i/s before --jit: 7331304.3 i/s - 1.02x slower mjit_eq(nil, 1) after --jit: 64710790.6 i/s before --jit: 49449507.4 i/s - 1.31x slower ```
* Collect insns from a child processTakashi Kokubun2020-06-251-1/+4
| | | | | | | | | | to make sure :opt_invokebuiltin_delegate_leave doesn't become :(trace_)opt_invokebuiltin_delegate. This is to prevent a warning like > /tmp/ruby/v3/src/trunk-test/test/ruby/test_jit.rb:618: warning: 'opt_invokebuiltin_delegate_leave' insn is not included in the script. Actual insns are: opt_invokebuiltin_delegate leave
* test/ruby/test_settracefunc.rb: Suppress a warningYusuke Endoh2020-06-261-1/+1
| | | | | | | http://rubyci.s3.amazonaws.com/ubuntu2004/ruby-master/log/20200626T033003Z.log.html.gz ``` /home/chkbuild/chkbuild/tmp/build/20200626T033003Z/ruby/test/ruby/test_settracefunc.rb:2299: warning: ambiguous first argument; put parentheses or a space even after `/' operator ```
* Try increasing read timeout of rinda testsTakashi Kokubun2020-06-251-2/+8
| | | | | To prevent random failure with --jit-wait like http://ci.rvm.jp/results/trunk-mjit-wait@silicon-docker/3026615
* fix return event and opt_invokebuiltin_delegate_leave (#3256)Koichi Sasada2020-06-262-8/+10
| | | | | | | | | If :return event is specified for a opt_invokebuiltin_delegate_leave and leave combination, the instructions should be opt_invokebuiltin_delegate trace_return instructions. To make it, opt_invokebuiltin_delegate_leave instruction will be changed to opt_invokebuiltin_delegate even if it is not an event target instruction.
* * 2020-06-26 [ci skip]git2020-06-261-1/+1
|
* Add require to Delegator examplesRichard Schneeman2020-06-251-0/+4
| | | In Ruby 2.7.1 SimpeDelegator cannot be used without requiring `delegate` this PR adds the require to the first example for each class so that devs don't have to hunt for what require to use.
* Removed duplicate targetNobuyoshi Nakada2020-06-251-1/+1
| | | | | | | While `spec/bundler` and `spec/bundler/` are treated different targets by GNU make 4, the same target by GNU make 3. The latter target, ending with a slash, was to run `test-bundler-parallel`, instead of `spec/bundler/%`.