| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
| |
Split ruby.h
|
|
|
|
| |
_mjit_compile_send.erb doesn't use _mjit_compile_insn_body.erb
|
|
|
|
|
|
|
| |
to unify the duplicated declarations and to make sure it's not used
until set properly.
Also changed it from legacy TRUE/FALSE to stdbool.
|
| |
|
|
|
|
|
| |
using sp_inc_of_sendish for consistency and to make it easier to
understand
|
|
|
|
|
|
|
| |
and simplify `v` variable references a little.
There's no CALL_METHOD anymore, and the original code lives in
vm_sendish instead of insns.def now.
|
|
|
|
| |
in mjit_compile_send to clarify it's not that deeply branched.
|
|
|
|
|
| |
It can fail due to different prefixes, e.g., drive letters or UNC
paths on DOSish platform.
|
|
|
|
|
| |
This reverts commit 4a6571dbc14ee4e88c12cd9931f7695077a3ee6e,
because chkbuild does not follow.
|
| |
|
| |
|
| |
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
[ci skip]
|
|
|
|
| |
[ci skip]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
to eliminate sp / pc moves by cancelling JIT execution on interrupts.
$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-01T04:58:01Z master 39beb26a27) +JIT [x86_64-linux]
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 75.06409603894944 76.06422026555558 fps
75.12025067279242 78.48161731616810
77.42020273492177 79.78958240950033
79.07253675128945 79.88645902325614
79.99179109732327 80.33743931749331
80.07633091008627 80.53790081529166
80.15450942667547 80.99048270668010
80.48372803283709 81.70497146081003
80.57410149187352 82.79494539467382
81.80449157081202 82.85797792223954
82.24629397834902 83.00603891515506
82.63708148686703 83.23221006969828
$ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_leave.yml --repeat-count=4
before: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) [x86_64-linux]
before --jit: ruby 2.8.0dev (2020-04-01T03:48:56Z master 5a81562dfe) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-04-01T04:58:01Z master 39beb26a27) +JIT [x86_64-linux]
Calculating -------------------------------------
before before --jit after --jit
mjit_leave 106.656M 82.786M 91.635M i/s - 200.000M times in 1.875183s 2.415881s 2.182569s
Comparison:
mjit_leave
before: 106656239.9 i/s
after --jit: 91635143.7 i/s - 1.16x slower
before --jit: 82785537.2 i/s - 1.29x slower
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
JIT support of dd723771c11.
$ benchmark-driver -v --rbenv 'before;before --jit;after --jit' benchmark/mjit_exivar.yml --repeat-count=4
before: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) [x86_64-linux]
before --jit: ruby 2.8.0dev (2020-03-30T12:32:26Z master e5db3da9d3) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-31T05:57:24Z mjit-exivar 128625baec) +JIT [x86_64-linux]
Calculating -------------------------------------
before before --jit after --jit
mjit_exivar 57.944M 53.579M 54.471M i/s - 200.000M times in 3.451588s 3.732772s 3.671687s
Comparison:
mjit_exivar
before: 57944345.1 i/s
after --jit: 54470876.7 i/s - 1.06x slower
before --jit: 53579483.4 i/s - 1.08x slower
|
| |
|
| |
|
|
|
|
|
| |
As `RbConfig.expand` modifies the argument and involved `CONFIG`
values, its values should be mutable.
|
| |
|
|
|
|
| |
for consistency
|
|
|
|
|
|
|
| |
variable of make instead of d059714746 as requested.
You can disable this like `make MJIT_WITHOUT_TABS=false` or
`export MJIT_WITHOUT_TABS=false`.
|
|
|
|
|
|
|
|
| |
in debugflags, as requested by nobu
I actually wanted to check debugflags directly rather than MJIT_DEBUGFLAGS
because debugflags is always used but MJIT_DEBUGFLAGS may not be always used.
But I couldn't find a better way to check debugflags.
|
|
|
|
| |
rb_class_of is indented with tabs
|
|
|
|
|
| |
This didn't exist in my machine, but it may exist in some CI
environments.
|
| |
|
|
|
|
|
|
|
| |
It's to be fixed properly later. But this should be able to avoid the failure.
https://travis-ci.org/github/ruby/ruby/jobs/665580361
https://rubyci.org/logs/rubyci.s3.amazonaws.com/solaris10-gcc/ruby-master/log/20200322T190003Z.fail.html.gz
|
|
|
|
|
|
|
|
|
|
| |
This is necessary to avoid converting a hard tab to just 1 space in
preprocessor to generate rb_mjit_header.h, which is helpful when using
gdb or perf report.
See also: [Misc #16112]
This reverts commit 91acdd17c4b4bb69a8fa3ada46e09dad46b9362e.
Fixed permission failure on Travis, encoding, and added SKIPPED_FILES.
|
|
|
|
|
|
| |
This reverts commit 57119dd561418c917b885db5f5af7f129a96d1ec.
Temporarily reverting for Travis failures
|
|
|
|
|
|
| |
I can't live without this when using gdb or perf report.
See also: [Misc #16112]
|
| |
|
|
|
|
|
| |
It seems the issue was fixed by Travis.
See https://travis-ci.community/t/6719/5 .
|
|
|
|
| |
https://github.com/rubygems/rubygems/pull/3166
|
| |
|
| |
|
|
|
|
|
|
|
|
| |
OpenBSD RubyCI has failed with SEGV since 4bcd5981e80d3e1852c8723741a0069779464128.
https://rubyci.org/logs/rubyci.s3.amazonaws.com/openbsd-current/ruby-master/log/20200312T223005Z.fail.html.gz
This was because `status->cc_entries` could be stale after `realloc` call
for inlined iseqs.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
```
$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-03-11T07:43:12Z master e89ebdcb87) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-11T07:54:18Z master 143776a0da) +JIT [x86_64-linux]
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 73.86976729561439 77.20184819316513 fps
74.46997176460742 78.43493030231805
77.59686308754307 78.55714131655935
78.53693921126656 79.08984255596820
80.10158944910573 79.17751731838183
80.12254974411167 79.60853122429181
80.28678655204945 79.74674066871896
80.38690681095379 79.90624544440300
80.79223498756919 80.57881084206193
80.82857188422419 80.70677614429169
81.06447745878245 81.03868541295149
81.21620802278490 82.16354660940607
```
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
According to ko1, `cd->cc != cc` was for GC.compact guard.
As we pin cc by rb_gc_mark(), we don't need the check.
```
$ benchmark-driver benchmark.yml -v --rbenv 'before --jit;after --jit' --repeat-count=12 --output=all
before --jit: ruby 2.8.0dev (2020-03-11T05:36:48Z master da6948753e) +JIT [x86_64-linux]
after --jit: ruby 2.8.0dev (2020-03-11T06:26:34Z master 36b20b8b4a) +JIT [x86_64-linux]
Calculating -------------------------------------
before --jit after --jit
Optcarrot Lan_Master.nes 74.03480698689405 71.63404803273507 fps
74.15085286586992 73.43923328104295
75.51738277744781 75.75465268365384
76.24922600109410 76.74071607861318
76.45513422802325 77.47521029238116
76.86617230739330 78.14759496269018
77.71509137131933 79.14051571125866
77.72839157096146 79.35884822673313
78.25218904561633 79.92538876408051
78.72521071333249 79.98075556706726
78.79950460165091 80.51747831497875
79.43884960720381 80.97973166525254
```
|
|
|
|
|
| |
Now ruby/openssl has a different directory structure. The test suite is
moved from /test/test_* to /test/openssl/test_*.
|
|
|
|
|
|
|
|
| |
Fixing https://github.com/ruby/ruby/blob/4bcd5981e80d3e1852c8723741a0069779464128/mjit.c#L338
should be the right solution for this. We may not be able to free the cc immediately.
Plus, we're not copying cc but just holding references to be marked. cc
should be GC-ed once jit_unit is freed.
|
|
|
|
|
|
|
|
| |
jit_unit to avoid marking wrong cc entries when inlined iseq is compiled
multiple times, resolving the TODO added by daf7c48d88.
This obviates pseudo jit_unit in inlined iseq introduced by 7ec2359374
and fixes memory leak of the adhoc unit.
|
|
|
|
|
|
| |
Retry with 90de118a75921a08497b41de2950971073b3c924
[Bug #13962][ruby-core:83074]
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Fix incorrect calls to `Gem.ensure_gem_subdirectories`
This method doesn't take keyword args.
* Remove stuff no longer necessary
Now `Gem.ensure_gem_subdirectories` is doing its job, so some stuff is
no longer needed.
* Use the proper method for default gems
* Respect DESTDIR when creating rubygems folder layout
* Use `Gem.default_specifications_dir`
|
|
|
|
|
|
|
| |
There is a test directory named test/-ext-. Because this directry
starts with a hyphen, we have to cheat test/unit in order for it to
run the tests underneath. TESTS='-- -ext' worked for a long time.
Let's not break that maneuver.
|
|
|
|
|
| |
Call GC.verify_internal_consistency only for Gem related test
on i386-solaris.
|
| |
|