Age | Commit message (Collapse) | Author |
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13430
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13430
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13430
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13430
|
|
No need to bail out of compilation completely; we can compile all the
code up until that point.
Notes:
Merged: https://github.com/ruby/ruby/pull/13430
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Co-Authored-By: Max Bernstein <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13414
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13414
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Given `InsnId` is at the top of the file and everywhere, hopefully this
will help first time readers.
Notes:
Merged: https://github.com/ruby/ruby/pull/13399
|
|
Allow DCE to remove some CCalls
Add `elidable` field that signals that there would be no discernible
effect if the call to the method were removed. The default is false.
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13355
|
|
Right now we just crash if we can't compile an ISEQ for any reason
(unimplemented in HIR, unimplemented in codegen, ...) and this fixes
that by bailing out.
Notes:
Merged: https://github.com/ruby/ruby/pull/13356
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13276
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13276
|
|
The rest parameter is always a rb_cArray, even when anonymous. (This is
different from kw_rest, which can be nil.)
Notes:
Merged: https://github.com/ruby/ruby/pull/13276
|
|
Use total parameter size instead of lead parameter size when parsing
iseq into hir. Also, copy over IntoUsize for compile-time checked
u32->usize cast.
Notes:
Merged: https://github.com/ruby/ruby/pull/13276
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13276
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13279
|
|
As well as `RB_OBJ_SHAPE_ID` -> `rb_obj_shape_id`
and `RSHAPE` is now a simple alias for `rb_shape_lookup`.
I tried to turn all these into `static inline` but I'm having
trouble with `RUBY_EXTERN rb_shape_tree_t *rb_shape_tree_ptr;`
not being exposed as I'd expect.
Notes:
Merged: https://github.com/ruby/ruby/pull/13283
|
|
And `rb_shape_get_shape` -> `RB_OBJ_SHAPE`.
Notes:
Merged: https://github.com/ruby/ruby/pull/13283
|
|
Also rename it, and change parameters to be consistent with
other transition functions.
Notes:
Merged: https://github.com/ruby/ruby/pull/13283
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13283
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13283
|
|
For reasons I don't understand yet, this causes an issue when trying to
boot yjit-bench. Temporarily revert it.
Notes:
Merged: https://github.com/ruby/ruby/pull/13268
Merged-By: XrXr
|
|
And get rid of the `obj_to_id_tbl`
It's no longer needed, the `object_id` is now stored inline
in the object alongside instance variables.
We still need the inverse table in case `_id2ref` is invoked, but
we lazily build it by walking the heap if that happens.
The `object_id` concern is also no longer a GC implementation
concern, but a generic implementation.
Co-Authored-By: Matt Valentine-House <[email protected]>
Notes:
Merged: https://github.com/ruby/ruby/pull/13159
|
|
Also refactor checks for `->type == SHAPE_OBJ_TOO_COMPLEX`.
Notes:
Merged: https://github.com/ruby/ruby/pull/13159
|
|
Ivars will longer be the only thing stored inline
via shapes, so keeping the `iv_index` and `ivptr` names
would be confusing.
Instance variables won't be the only thing stored inline
via shapes, so keeping the `ivptr` name would be confusing.
`field` encompass anything that can be stored in a VALUE array.
Similarly, `gen_ivtbl` becomes `gen_fields_tbl`.
Notes:
Merged: https://github.com/ruby/ruby/pull/13159
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13243
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13257
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Working towards having YJIT and ZJIT in the same build, we need to
deduplicate some glue code that would otherwise cause name collision.
Add jit.c for this and build it for YJIT and ZJIT builds. Update bindgen
to look at jit.c; some shuffling of functions in the output, but the set
of functions shouldn't have changed.
Notes:
Merged: https://github.com/ruby/ruby/pull/13229
|
|
Use RefCell to allow path compression in union-find
When I wrote the original version I didn't understand the interior
mutability pattern, but now I do! With this commit, we should have a
more optimal union-find implementation.
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
This ensures basic block arguments keep instructions alive, etc.
Notes:
Merged: https://github.com/ruby/ruby/pull/13204
|
|
If we're adding a bunch of instructions in the middle of an optimization
pass, we don't want to use their (currently uninitialized) types because
they start as Empty, and Empty is a subtype of everything. This breaks
some optimizations.
This Any will get refined the next time we call infer_types.
Notes:
Merged: https://github.com/ruby/ruby/pull/13204
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
* Add rb_zjit_constcache_shareable
* Add rb_zjit_multi_ractor_p
* Replace GetConstantPath with Const if the IC is not empty
Notes:
Merged-By: k0kubun <[email protected]>
|
|
* ZJIT: Drop a duplicated call into optimize
* Update a comment
Co-authored-by: Max Bernstein <[email protected]>
---------
Co-authored-by: Max Bernstein <[email protected]>
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged-By: k0kubun <[email protected]>
|
|
|
|
Bail out of HIR translation if we can't handle a send flag
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Emit CCall if we know the type statically, not just from profiles
Notes:
Merged-By: k0kubun <[email protected]>
|
|
(#13172)
Fold Send into SendWithoutBlockDirect if we know the class statically
This applies for constants and also for values where we know the type
for other reasons.
Notes:
Merged-By: k0kubun <[email protected]>
|
|
Notes:
Merged: https://github.com/ruby/ruby/pull/13162
|
|
Otherwise we might have stale types floating around
Notes:
Merged: https://github.com/ruby/ruby/pull/13162
|