Takashi Kokubun
4e9c3b4518
RJIT: Eliminate known-result guards for blockarg
2023-04-04 23:42:14 -07:00
Takashi Kokubun
4f77d1cdb8
RJIT: Eliminate known-result branches
2023-04-04 23:30:26 -07:00
Takashi Kokubun
e06bebff5e
RJIT: Propagate argument types on method calls
2023-04-04 22:13:25 -07:00
Takashi Kokubun
6d8875b5d7
RJIT: Fix mapping offsets in stack_swap
2023-04-04 22:05:45 -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
51b2f4c0f5
RJIT: Fix the argument of shift_stack
2023-04-04 01:17:23 -07:00
Takashi Kokubun
98f0e2c330
RJIT: Fix the argument for defined
2023-04-04 00:41:58 -07:00
Takashi Kokubun
19506650ef
RJIT: Add --rjit-verify-ctx option
2023-04-04 00:35:29 -07:00
Takashi Kokubun
2c560b976e
RJIT: Fix arguments to SPECIAL_CONST_P
2023-04-04 00:30:57 -07:00
Takashi Kokubun
6a4087702b
RJIT: Update type information on setlocal
2023-04-03 22:42:21 -07:00
Takashi Kokubun
6ab86e4626
RJIT: Fix arguments for shift_stack
2023-04-03 21:26:40 -07:00
Takashi Kokubun
3cb5e7558d
Fix a test_rubyoptions failure
2023-04-03 08:44:16 -07:00
Takashi Kokubun
46e93ef53d
RJIT: Propagate self's type information
2023-04-03 00:49:10 -07:00
Takashi Kokubun
ca8102355a
RJIT: Upgrade type on jit_guard_known_class
2023-04-03 00:39:29 -07:00
Takashi Kokubun
1d452c2cf8
RJIT: Upgrade type to Fixnum after guard
2023-04-03 00:02:45 -07:00
Takashi Kokubun
0abe9d8b32
RJIT: Upgrade type to String after guard
2023-04-02 23:54:08 -07:00
Takashi Kokubun
f0b69eb14f
RJIT: Upgrade type to Array after guard
2023-04-02 23:49:55 -07:00
Takashi Kokubun
eb51248c4c
RJIT: Upgrade type to UnknownHeap after guard
2023-04-02 23:11:18 -07:00
Takashi Kokubun
be4e16bc1a
RJIT: Update type information on setn insn
2023-04-02 23:07:58 -07:00
Takashi Kokubun
50285d2864
RJIT: Swap type information on swap insn
2023-04-02 23:06:30 -07:00
Takashi Kokubun
d546f8c518
RJIT: Store type information in Context
2023-04-02 22:32:16 -07:00
Takashi Kokubun
8968b47ba8
RJIT: Refactor getlocal and setlocal
2023-04-02 16:50:54 -07:00
Takashi Kokubun
ad2b719fc2
RJIT: C::FL_TEST_RAW returns RBOOL
2023-04-02 14:32:51 -07:00
Takashi Kokubun
57ee627929
RJIT: Lazily guard block arg
...
to simplify the implementation
2023-04-02 14:22:42 -07:00
Takashi Kokubun
66f8efc342
RJIT: Simplify cfunc implementation
2023-04-02 13:58:39 -07:00
Takashi Kokubun
284a0ff96c
RJIT: Remove an unneeded branch
2023-04-02 12:28:49 -07:00
Takashi Kokubun
3fe134759c
Skip assert_linear_performance for RJIT
2023-04-02 12:23:23 -07:00
Takashi Kokubun
bf7587748d
RJIT: Simplify invokesuper implementation
2023-04-02 11:42:16 -07:00
Takashi Kokubun
5cc644b147
RJIT: Group blockarg exit reasons
2023-04-02 11:01:23 -07:00
Takashi Kokubun
cd1cd8030c
RJIT: Support splat args
2023-04-02 10:55:03 -07:00
Takashi Kokubun
6f2535deda
RJIT: Prefix a constant with C namespace
2023-04-02 10:40:37 -07:00
Takashi Kokubun
7778c292c4
RJIT: Support keyword arguments
2023-04-02 10:26:22 -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
bf2617b8a6
RJIT: Fix has_rest exit conditions
2023-04-01 21:47:28 -07:00
Takashi Kokubun
ee52255f93
RJIT: Return CantCompile early for arg0 splat
2023-04-01 21:42:34 -07:00
Takashi Kokubun
2ce5cfa2be
RJIT: Save PC on String#concat
2023-04-01 21:34:19 -07:00
Takashi Kokubun
e45ed2da50
RJIT: Rewind stack_size on CantCompile and side exits
...
so that we can take an exit whenever we want.
As a starter, this commit also pops blockarg earlier than some
CantCompile exits.
2023-04-01 21:30:42 -07:00
Takashi Kokubun
90cdc5b8ba
RJIT: Let the caller of jit_push_frame handle stack_pop
...
because we want to do this way earlier for other types of calls.
2023-04-01 21:13:15 -07:00
Takashi Kokubun
28db75af66
RJIT: Check stackoverflow earlier for ISEQ
2023-04-01 21:03:10 -07:00
Takashi Kokubun
249fe18e8f
RJIT: Remove unused counters
2023-04-01 17:24:45 -07:00
Takashi Kokubun
f42cf3fd1e
RJIT: Migrate invokeblock to jit_call_iseq
2023-04-01 17:17:41 -07:00
Takashi Kokubun
cfea319772
RJIT: Migrate bmethod to jit_call_iseq
2023-04-01 17:03:45 -07:00
Takashi Kokubun
0973b93e49
RJIT: Start moving away from VM-like ISEQ handling
2023-04-01 16:56:05 -07:00
Takashi Kokubun
9a1f6975c5
RJIT: Propagate a set of args as a CallingInfo
2023-03-29 00:44:31 -07:00
Takashi Kokubun
7600e6bc19
RJIT: Optimize definedivar using shapes
2023-03-27 21:56:39 -07:00
Takashi Kokubun
3352e76441
RJIT: Implement leaf builtin call
2023-03-26 19:25:17 -07:00
Takashi Kokubun
ff44e32f92
RJIT: Store caller sp after stack overflow check
...
and share some code between ISEQ and C calls.
2023-03-26 18:32:01 -07:00
Takashi Kokubun
dc270fc632
RJIT: Implement attr_writer
2023-03-26 18:02:25 -07:00
Takashi Kokubun
ddb77dd11e
RJIT: Put a guard for splat w/ var-arg cfunc
2023-03-25 22:14:07 -07:00