Project

General

Profile

« Previous | Next » 

Revision f3c35749

Added by alanwu (Alan Wu) over 1 year ago

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 ---------- ------------------