ZJIT: constant fold bitwise OR (|) operations (#16235)
Continuation of https://github.com/ruby/ruby/pull/16226.
|
or
ZJIT: Fix IsA effect
ZJIT: Fix HasType effect
ZJIT: Fix GetEP effect
ZJIT: Remove GetLEP
Use get_lvar_level and GetEP instead.
ZJIT: Handle splatkw YARV instruction (#16267)
The most common cases are nil and hash, so just cover those. If we need to convert to a hash, we can handle that later.
parse.y: Unify to use only tagged references
Unify references in rules that mix positional references and tagged references. Leave the positional reference-only rules unchanged.
ZJIT: Replace Getlocal with LoadSP or GetEP+LoadField (#16242)
Since GetLocal (for level > 0) is now split into GetEP + LoadField(https://github.com/ruby/ruby/pull/16215), we can remove the Insn and use LoadSP instead for the consistency. Also removed a counter that appeared unnecessary.
GetLocal
level > 0
GetEP
LoadField
LoadSP
parse.y: prefer @$ over @0 in empty-rule actions
ZJIT: GuardType and GuardTypeNot can read from memory
When guarding on anything but special const forms (types::Immediate), we need to dereference the VALUE to load RBasic::flags and maybe RBasic::class. Those are memory read effects.
types::Immediate
View all revisions | View revisions
Also available in: Atom