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
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
Yusuke Endoh
56dbf83a85
Prevent a warning: assigned but unused variable
...
... which made a test fail
20230313
T213003Z.fail.html.gz
```
1) Failure:
TestRubyOptions#test_enable [/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/test/ruby/test_rubyoptions.rb:176]:
pid 1208 exit 0
| /home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1257: warning: assigned but unused variable - argc
| /home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1258: warning: assigned but unused variable - flags
.
1. [2/2] Assertion for "stderr"
| <[]> expected but was
| <["/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1257: warning: assigned but unused variable - argc",
| "/home/chkbuild/chkbuild/tmp/build/20230313T213003Z/ruby/lib/ruby_vm/rjit/insn_compiler.rb:1258: warning: assigned but unused variable - flags"]>.
```
2023-03-13 22:07:25 +09:00
Takashi Kokubun
ed269c81aa
RJIT: Count invokeblock exit types
2023-03-12 23:38:11 -07:00
Takashi Kokubun
da9c84f859
RJIT: Rename a side exit counter
2023-03-12 22:15:58 -07:00
Takashi Kokubun
d27b594841
RJIT: Fix a typo
...
and import a missing function
2023-03-12 22:09:05 -07:00
Takashi Kokubun
330086d3f6
RJIT: Implement definedivar
2023-03-12 22:07:02 -07:00
Takashi Kokubun
3938efa70f
RJIT: Fix block param proxy on send
...
peek_at_stack was doubly accounting for C::VM_CALL_ARGS_BLOCKARG, which
made that case always side-exit and hide this bug.
When a block handler is block param proxy, you have to set LEP's specval
as next specval instead of block param proxy itself.
2023-03-12 22:01:38 -07:00