diff options
author | Alan Wu <XrXr@users.noreply.github.com> | 2024-03-28 15:46:08 -0400 |
---|---|---|
committer | Alan Wu <XrXr@users.noreply.github.com> | 2024-03-28 17:41:01 -0400 |
commit | f3c35749feb559db5aa3597a1c91a30c2550e85c (patch) | |
tree | 628b03271991cf866be95a036363d1f4375ef3d5 /spec/bundler/runtime | |
parent | 817eecf685cf2408ff468ba9c3b814e3c6389ce7 (diff) |
YJIT: Optimize putobject+opt_ltlt for integers
In `jit_rb_int_lshift()`, we guard against the right hand side changing
since we want to avoid generating variable length shifts. When control
reaches a `putobject` and `opt_ltlt` pair, though, we know that the right
hand side never changes.
This commit detects this situation and substitutes an implementation
that does not guard against the right hand side changing, saving that
work.
Deleted some `putobject` Rust tests since they aren't that valuable and
cause linking issues.
Nice boost to `optcarrot` and `protoboeuf`:
```
---------- ------------------
bench yjit-pre/yjit-post
optcarrot 1.09
protoboeuf 1.12
---------- ------------------
```
Diffstat (limited to 'spec/bundler/runtime')
0 files changed, 0 insertions, 0 deletions