1
0
Fork 0
mirror of https://github.com/ruby/ruby.git synced 2022-11-09 12:17:21 -05:00
Commit graph

13 commits

Author SHA1 Message Date
Alan Wu
36134f7d29 Implement calls to methods with simple optional params
* Implement calls to methods with simple optional params

* Remove unnecessary MJIT_STATIC

See comment for MJIT_STATIC. I added it not knowing whether it's
required because the function next to it has it. Don't use it and wait
for problems to come up instead.

* Better naming, some comments

* Count bailing on kw only iseqs

On railsbench:
```
opt_send_without_block exit reasons:
                  bmethod      59729 (27.7%)
         optimized_method      59137 (27.5%)
      iseq_complex_callee      41362 (19.2%)
             alias_method      33346 (15.5%)
      callsite_not_simple      19170 ( 8.9%)
       iseq_only_keywords       1300 ( 0.6%)
                 kw_splat       1299 ( 0.6%)
    cfunc_ruby_array_varg         18 ( 0.0%)
```
2021-10-20 18:19:34 -04:00
Maxime Chevalier-Boisvert
bce6dea72d Fix assertions in invalidate_block_version(), add small repro (#14)
* Fix block invalidation assertions

* Add Alan's small repro for double invalidation bug
2021-10-20 18:19:34 -04:00
Aaron Patterson
435d7c5088 Improve set instance variable
This commit improves the set ivar implementation.
2021-10-20 18:19:34 -04:00
Maxime Chevalier-Boisvert
edaf12def6 Fix local type tracking in getlocal, setlocal. Add test. 2021-10-20 18:19:33 -04:00
Alan Wu
b69951cf55 add a couple of getivar tests for symbols 2021-10-20 18:19:33 -04:00
Alan Wu
4ea2e753f6 YJIT: implement calls to ivar getter methods 2021-10-20 18:19:33 -04:00
Alan Wu
a8f7eb2f35 Polymorphic opt_send_without_block 2021-10-20 18:19:32 -04:00
Alan Wu
0cd9120f17 YJIT: hash specialization for opt_aref
Make it lazy and add a hash specialization in addition to the array
specialization.
2021-10-20 18:19:32 -04:00
Alan Wu
5d834bcf9f YJIT: lazy polymorphic getinstancevariable
Lazily compile out a chain of checks for different known classes and
whether `self` embeds its ivars or not.

* Remove trailing whitespaces

* Get proper addresss in Capstone disassembly

* Lowercase address in Capstone disassembly

Capstone uses lowercase for jump targets in generated listings. Let's
match it.

* Use the same successor in getivar guard chains

Cuts down on duplication

* Address reviews

* Fix copypasta error

* Add a comment
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
fe3bd57007 Remove trailing whitespaces 2021-10-20 18:19:31 -04:00
Aaron Patterson
c15a577eda Make Blocks depend on BOPS
When a BOP is redefined, the BOP redefinition callback will invalidate
any blocks that depend on BOPS.  This allows us to eliminate runtime
checks for BOP redefinition.
2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
7f4000b1f4 Machinery to implement deferred compilation 2021-10-20 18:19:31 -04:00
Maxime Chevalier-Boisvert
d6d58795a9 Rename test files 2021-10-20 18:19:31 -04:00
Renamed from bootstraptest/test_ujit.rb (Browse further)