Jean Boussier
b4a69351ec
Move FL_SINGLETON to FL_USER1
...
This frees FL_USER0 on both T_MODULE and T_CLASS.
Note: prior to this, FL_SINGLETON was never set on T_MODULE,
so checking for `FL_SINGLETON` without first checking that
`FL_TYPE` was `T_CLASS` was valid. That's no longer the case.
2024-03-06 13:11:41 -05:00
Takashi Kokubun
607b86ed1f
Update a stubbed type for RJIT
...
cfunc.func is actually used by RJIT
2024-03-01 15:10:26 -08:00
Takashi Kokubun
bc7266c5ce
Bump the required BASERUBY version to 3.0 ( #9976 )
2024-02-15 23:13:45 -08:00
Takashi Kokubun
996776e936
Leave a comment about the limitation of Primitive
...
and adjust some code styling from that PR.
2024-01-23 14:39:37 -08:00
Nobuyoshi Nakada
d940e3b2c3
cexpr!
must be up to one per line now
2024-01-22 19:39:34 +09:00
Takashi Kokubun
e37a37e696
Drop obsoleted BUILTIN_ATTR_NO_GC attribute
...
The thing that has used this in the past was very buggy, and we've never
revisied it. Let's remove it until we need it again.
2024-01-16 17:27:53 -08:00
Takashi Kokubun
19d082dcfa
RJIT: Distinguish Pointer with Array
...
This is more convenient for accessing those fields.
2023-12-22 11:24:04 -08:00
Takashi Kokubun
eb872d1752
RJIT: Share rb_vm_insns_count for vm_insns_count
2023-12-18 23:55:40 -08:00
Peter Zhu
68869e9bd9
Revert "Revert "Remove SHAPE_CAPACITY_CHANGE shapes""
...
This reverts commit 5f3fb4f4e3
.
2023-11-13 18:26:36 -05:00
Peter Zhu
5f3fb4f4e3
Revert "Remove SHAPE_CAPACITY_CHANGE shapes"
...
This reverts commit f6910a6112
.
We're seeing crashes in the test suite of Shopify's core monolith after
this change.
2023-11-10 11:27:49 -05:00
Peter Zhu
f6910a6112
Remove SHAPE_CAPACITY_CHANGE shapes
...
We don't need to create a shape to transition capacity as we can
transition the capacity when the capacity of the SHAPE_IVAR changes.
2023-11-09 09:25:02 -05:00
Peter Zhu
38ba040d8b
Make every initial size pool shape a root shape
...
This commit makes every initial size pool shape a root shape and assigns
it a capacity of 0.
2023-11-02 13:42:11 -04:00
Maxime Chevalier-Boisvert
b2e1ddffa5
YJIT: port call threshold logic from Rust to C for performance ( #8628 )
...
* Port call threshold logic from Rust to C for performance
* Prefix global/field names with yjit_
* Fix linker error
* Fix preprocessor condition for rb_yjit_threshold_hit
* Fix third linker issue
* Exclude yjit_calls_at_interv from RJIT bindgen
---------
Co-authored-by: Takashi Kokubun <takashikkbn@gmail.com>
2023-10-12 10:05:34 -04:00
Takashi Kokubun
8705e734ed
Remove a binding.irb in rjit-bindgen
2023-10-04 11:43:29 -07:00
Takashi Kokubun
cd8d20cd1f
YJIT: Compile exception handlers ( #8171 )
...
Co-authored-by: Maxime Chevalier-Boisvert <maximechevalierb@gmail.com>
2023-08-08 16:06:22 -07:00
Aaron Patterson
7ce6bcaf8b
Expose rb_hash_resurrect
...
This is for implementing the `duphash` instruction
2023-06-23 11:46:21 -07:00
Aaron Patterson
bdffcd6df3
Update RJIT to support newarray_send
...
This also adds max / hash support
2023-04-18 17:16:22 -07:00
Aaron Patterson
a9bfb64153
Expose rb_sym_to_proc via RJIT
...
This is needed for getblockparamproxy
2023-04-07 09:49:15 -07:00
Peter Zhu
1da2e7fca3
[Feature #19579 ] Remove !USE_RVARGC code ( #7655 )
...
Remove !USE_RVARGC code
[Feature #19579 ]
The Variable Width Allocation feature was turned on by default in Ruby
3.2. Since then, we haven't received bug reports or backports to the
non-Variable Width Allocation code paths, so we assume that nobody is
using it. We also don't plan on maintaining the non-Variable Width
Allocation code, so we are going to remove it.
2023-04-04 17:30:06 -04:00
Takashi Kokubun
d546f8c518
RJIT: Store type information in Context
2023-04-02 22:32:16 -07:00
Takashi Kokubun
6002b12611
RJIT: Support entry with different PCs
2023-04-02 15:27:40 -07:00
Takashi Kokubun
66f8efc342
RJIT: Simplify cfunc implementation
2023-04-02 13:58:39 -07:00
Takashi Kokubun
1b475fcd10
Remove an unneeded function copy
2023-04-01 23:09:05 -07:00
Takashi Kokubun
a077b7e36b
RJIT: Support rest args
2023-04-01 23:00:36 -07:00
Takashi Kokubun
0973b93e49
RJIT: Start moving away from VM-like ISEQ handling
2023-04-01 16:56:05 -07:00
Koichi Sasada
ad7362db07
rename rb_thread_t::locking_native_thread
...
to `rb_thread_t::has_dedicated_nt`
2023-03-31 18:10:00 +09:00
Takashi Kokubun
3352e76441
RJIT: Implement leaf builtin call
2023-03-26 19:25:17 -07:00
Takashi Kokubun
dc270fc632
RJIT: Implement attr_writer
2023-03-26 18:02:25 -07:00
Takashi Kokubun
1dd65f7c55
RJIT: Initial support of splat
2023-03-25 00:31:11 -07:00
Takashi Kokubun
70ea58bd5b
RJIT: Break up RJIT send_iseq_complex exit reasons
2023-03-19 23:58:14 -07:00
Takashi Kokubun
59b86da82c
RJIT: Implement ifunc invokeblock
2023-03-19 23:32:07 -07:00
Takashi Kokubun
83ad1cac81
RJIT: Optimize Kernel#respond_to?
2023-03-19 14:04:58 -07:00
Takashi Kokubun
cd5a8d0160
RJIT: Optimize String#+@
2023-03-19 13:36:26 -07:00
Takashi Kokubun
2121282753
RJIT: Optimize String#<<
2023-03-19 13:25:41 -07:00
Takashi Kokubun
c4e2718763
RJIT: Workaround USE_RVARGC=0 CI
2023-03-18 23:42:58 -07:00
Takashi Kokubun
32e0c97dfa
RJIT: Optimize String#bytesize
2023-03-18 23:35:42 -07:00
Takashi Kokubun
106cca5111
RJIT: Optimize String#empty?
2023-03-18 23:24:57 -07:00
Takashi Kokubun
824cf88969
RJIT: Optimize Kernel#is_a?
2023-03-18 22:59:46 -07:00
Takashi Kokubun
cc9330f8c0
RJIT: Reorder opt_case_dispatch branches
2023-03-18 22:32:27 -07:00
Takashi Kokubun
71bcab4519
RJIT: Implement setclassvariable
2023-03-18 21:49:46 -07:00
Takashi Kokubun
8510f33cc1
RJIT: Implement intern
2023-03-18 21:42:20 -07:00
Takashi Kokubun
9c2792c3d3
RJIT: Implement toregexp
2023-03-18 21:37:49 -07:00
Takashi Kokubun
d189f8d870
RJIT: Prefix rjit_options with rb_
2023-03-18 21:28:55 -07:00
Takashi Kokubun
2eefd71e0f
RJIT: Implement newrange
2023-03-18 21:24:31 -07:00
Takashi Kokubun
81e19b7d99
RJIT: Implement getglobal
2023-03-18 21:20:58 -07:00
Takashi Kokubun
9f8e914943
RJIT: Implement checkkeyword
2023-03-18 21:15:22 -07:00
Takashi Kokubun
dc28ccbb6d
RJIT: Implement getspecial insn
2023-03-18 00:00:18 -07:00
Takashi Kokubun
93e05aaa74
RJIT: Implement putspecialobject insn
2023-03-17 23:46:56 -07:00
Takashi Kokubun
45a17013aa
RJIT: Implement throw insn
2023-03-17 23:27:16 -07:00
Takashi Kokubun
182f4f0d1c
Fix a bindgen CI failure
2023-03-16 11:05:54 -07:00