ruby/yjit
Alan Wu f3c35749fe 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
----------  ------------------
```
2024-03-28 17:41:01 -04:00
..
bindgen YJIT: Support splat with C methods with -1 arity 2024-02-27 17:50:38 +00:00
src YJIT: Optimize putobject+opt_ltlt for integers 2024-03-28 17:41:01 -04:00
.gitignore
Cargo.lock Bump capstone from 0.11.0 to 0.12.0 in /yjit (#10094) 2024-02-25 19:02:00 -08:00
Cargo.toml Bump capstone from 0.11.0 to 0.12.0 in /yjit (#10094) 2024-02-25 19:02:00 -08:00
not_gmake.mk YJIT: Fix shared/static library symbol leaks 2023-01-27 12:28:09 -05:00
yjit.mk Propagate jobserver FDs to `cargo` and `rustc` [ci skip] 2024-03-22 22:05:58 +09:00