69 Commits

Author SHA1 Message Date
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
Takashi Kokubun
a624a5d709 RJIT: Scope down send_iseq_complex_has_block exit 2023-03-25 21:57:04 -07:00
Takashi Kokubun
1396b83153 RJIT: Fix jit_array_ptr
array_reg was clobbered before being used by heap_ptr_opnd.
heap_ptr_opnd should be loaded before array_reg is clobbered.
2023-03-25 21:43:15 -07:00
Takashi Kokubun
9bc2dbd33c RJIT: Support optional params on splat 2023-03-25 01:17:05 -07:00
Takashi Kokubun
85a55d3e75 RJIT: Remove send_iseq_complex_splat exit 2023-03-25 00:59:47 -07:00
Takashi Kokubun
314c7dd6d1 RJIT: Support splat for cfunc 2023-03-25 00:52:07 -07:00
Takashi Kokubun
1dd65f7c55 RJIT: Initial support of splat 2023-03-25 00:31:11 -07:00
Takashi Kokubun
7947920ee7 RJIT: Follow a recent CALLER_SETUP_ARG change 2023-03-21 22:12:43 -07:00
Takashi Kokubun
38946209a7 RJIT: Split has_rest_or_post exit reasons 2023-03-21 22:01:55 -07:00
Takashi Kokubun
c44367265d RJIT: Fix invokesuper 2023-03-21 00:10:14 -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
47f7ec1c9f RJIT: Support invokeblock arity mismatches 2023-03-19 23:14:13 -07:00
Takashi Kokubun
e3dc25acae RJIT: Fix ISeq invokeblock 2023-03-19 21:52:25 -07:00
Takashi Kokubun
7aeb9e20b9 RJIT: Disable ISeq invokeblock for now
since basictest is broken
2023-03-19 21:20:28 -07:00
Takashi Kokubun
2d8ecfcc9a RJIT: Implement invokeblock with ISeq 2023-03-19 20:56:37 -07:00
Takashi Kokubun
4f350dbfdd RJIT: Remove an unneeded variable 2023-03-19 20:27:57 -07:00
Takashi Kokubun
2f29044de4 RJIT: Optimize Kernel#block_given? 2023-03-19 14:15:45 -07:00
Takashi Kokubun
83ad1cac81 RJIT: Optimize Kernel#respond_to? 2023-03-19 14:04:58 -07:00
Takashi Kokubun
95c4ced39e RJIT: Optimize Array#empty? 2023-03-19 13:41:04 -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
ca9355e173 RJIT: Optimize Kernel#instance_of? 2023-03-18 23:13:25 -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
4a8de3fa88 RJIT: Fix toregexp 2023-03-18 21:39:24 -07:00
Takashi Kokubun
9c2792c3d3 RJIT: Implement toregexp 2023-03-18 21:37:49 -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