Skip to content

Commit 5cc644b

Browse files
committed
RJIT: Group blockarg exit reasons
1 parent cd1cd80 commit 5cc644b

3 files changed

Lines changed: 6 additions & 12 deletions

File tree

lib/ruby_vm/rjit/insn_compiler.rb

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3844,7 +3844,7 @@ def jit_caller_setup_arg_block(jit, ctx, asm, ci, blockiseq, is_super)
38443844
jit_chain_guard(:jne, jit, ctx, asm, counted_exit(side_exit, :send_block_not_proxy))
38453845
return C.rb_block_param_proxy
38463846
else
3847-
asm.incr_counter(:send_blockarg_not_nil_or_proxy)
3847+
asm.incr_counter(:send_block_arg)
38483848
return CantCompile
38493849
end
38503850
elsif blockiseq != 0
@@ -4838,7 +4838,7 @@ def jit_call_attrset(jit, ctx, asm, cme, calling, comptime_recv, recv_opnd)
48384838
asm.incr_counter(:send_c_tracingg)
48394839
return CantCompile
48404840
elsif flags & C::VM_CALL_ARGS_BLOCKARG != 0
4841-
asm.incr_counter(:send_attrset_blockarg)
4841+
asm.incr_counter(:send_block_arg)
48424842
return CantCompile
48434843
end
48444844

@@ -4897,7 +4897,7 @@ def jit_call_ivar(jit, ctx, asm, cme, calling, comptime_recv, recv_opnd)
48974897

48984898
# Not handling block_handler
48994899
if flags & C::VM_CALL_ARGS_BLOCKARG != 0
4900-
asm.incr_counter(:send_ivar_blockarg)
4900+
asm.incr_counter(:send_block_arg)
49014901
return CantCompile
49024902
end
49034903

@@ -4959,7 +4959,7 @@ def jit_call_alias(jit, ctx, asm, calling, cme, comptime_recv, recv_opnd, known_
49594959
def jit_call_optimized(jit, ctx, asm, cme, calling, known_recv_class)
49604960
if calling.flags & C::VM_CALL_ARGS_BLOCKARG != 0
49614961
# Not working yet
4962-
asm.incr_counter(:send_optimized_blockarg)
4962+
asm.incr_counter(:send_block_arg)
49634963
return CantCompile
49644964
end
49654965

rjit_c.h

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,12 +47,12 @@ RJIT_RUNTIME_COUNTERS(
4747
send_is_a_class_mismatch,
4848
send_instance_of_class_mismatch,
4949

50-
send_blockarg_not_nil_or_proxy,
5150
send_blockiseq,
5251
send_block_handler,
5352
send_block_setup,
5453
send_block_not_nil,
5554
send_block_not_proxy,
55+
send_block_arg,
5656

5757
send_iseq_kwparam,
5858
send_iseq_accepts_no_kwarg,
@@ -83,11 +83,9 @@ RJIT_RUNTIME_COUNTERS(
8383
send_attrset_splat,
8484
send_attrset_kwarg,
8585
send_attrset_method,
86-
send_attrset_blockarg,
8786

8887
send_ivar_splat,
8988
send_ivar_opt_send,
90-
send_ivar_blockarg,
9189

9290
send_optimized_send_no_args,
9391
send_optimized_send_not_sym_or_str,
@@ -100,7 +98,6 @@ RJIT_RUNTIME_COUNTERS(
10098
send_optimized_call_splat,
10199
send_optimized_struct_aref_error,
102100

103-
send_optimized_blockarg,
104101
send_optimized_block_call,
105102
send_optimized_struct_aset,
106103

rjit_c.rb

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,12 +1334,12 @@ def C.rb_rjit_runtime_counters
13341334
send_c_tracing: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_c_tracing)")],
13351335
send_is_a_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_is_a_class_mismatch)")],
13361336
send_instance_of_class_mismatch: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_instance_of_class_mismatch)")],
1337-
send_blockarg_not_nil_or_proxy: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockarg_not_nil_or_proxy)")],
13381337
send_blockiseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_blockiseq)")],
13391338
send_block_handler: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_handler)")],
13401339
send_block_setup: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_setup)")],
13411340
send_block_not_nil: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_not_nil)")],
13421341
send_block_not_proxy: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_not_proxy)")],
1342+
send_block_arg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_block_arg)")],
13431343
send_iseq_kwparam: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_kwparam)")],
13441344
send_iseq_accepts_no_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_accepts_no_kwarg)")],
13451345
send_iseq_has_opt: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_iseq_has_opt)")],
@@ -1367,10 +1367,8 @@ def C.rb_rjit_runtime_counters
13671367
send_attrset_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_splat)")],
13681368
send_attrset_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_kwarg)")],
13691369
send_attrset_method: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_method)")],
1370-
send_attrset_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_attrset_blockarg)")],
13711370
send_ivar_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_splat)")],
13721371
send_ivar_opt_send: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_opt_send)")],
1373-
send_ivar_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_ivar_blockarg)")],
13741372
send_optimized_send_no_args: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_no_args)")],
13751373
send_optimized_send_not_sym_or_str: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_not_sym_or_str)")],
13761374
send_optimized_send_mid_class_changed: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_send_mid_class_changed)")],
@@ -1381,7 +1379,6 @@ def C.rb_rjit_runtime_counters
13811379
send_optimized_call_kwarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_call_kwarg)")],
13821380
send_optimized_call_splat: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_call_splat)")],
13831381
send_optimized_struct_aref_error: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_struct_aref_error)")],
1384-
send_optimized_blockarg: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_blockarg)")],
13851382
send_optimized_block_call: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_block_call)")],
13861383
send_optimized_struct_aset: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_optimized_struct_aset)")],
13871384
send_bmethod_not_iseq: [CType::Immediate.parse("size_t"), Primitive.cexpr!("OFFSETOF((*((struct rb_rjit_runtime_counters *)NULL)), send_bmethod_not_iseq)")],

0 commit comments

Comments
 (0)