diff --git a/prism/prism.c b/prism/prism.c index 3b2b03cdd5146c..fcc7be8a1a53ca 100644 --- a/prism/prism.c +++ b/prism/prism.c @@ -16830,7 +16830,7 @@ parse_pattern_primitive(pm_parser_t *parser, pm_constant_id_list_t *captures, pm pm_token_t lparen = parser->current; parser_lex(parser); - pm_node_t *expression = parse_value_expression(parser, PM_BINDING_POWER_STATEMENT, PM_PARSE_ACCEPTS_DO_BLOCK | PM_PARSE_ACCEPTS_COMMAND_CALL, PM_ERR_PATTERN_EXPRESSION_AFTER_PIN, (uint16_t) (depth + 1)); + pm_node_t *expression = parse_value_expression(parser, PM_BINDING_POWER_COMPOSITION, PM_PARSE_ACCEPTS_DO_BLOCK | PM_PARSE_ACCEPTS_COMMAND_CALL, PM_ERR_PATTERN_EXPRESSION_AFTER_PIN, (uint16_t) (depth + 1)); parser->pattern_matching_newlines = previous_pattern_matching_newlines; accept1(parser, PM_TOKEN_NEWLINE); @@ -19317,7 +19317,22 @@ parse_expression_prefix(pm_parser_t *parser, pm_binding_power_t binding_power, u } } } else { - receiver = parse_expression(parser, PM_BINDING_POWER_NOT, (flags & PM_PARSE_ACCEPTS_DO_BLOCK) | PM_PARSE_ACCEPTS_COMMAND_CALL, PM_ERR_NOT_EXPRESSION, (uint16_t) (depth + 1)); + /* `not` in a single line method is allowed to be followed by + * an expression without pattern matching, that optionally is + * followed by a `rescue` modifier. */ + if (flags & PM_PARSE_IN_ENDLESS_DEF) { + receiver = parse_expression(parser, PM_BINDING_POWER_MATCH + 1, (flags & PM_PARSE_ACCEPTS_DO_BLOCK) | PM_PARSE_ACCEPTS_COMMAND_CALL, PM_ERR_NOT_EXPRESSION, (uint16_t) (depth + 1)); + + if (accept1(parser, PM_TOKEN_KEYWORD_RESCUE_MODIFIER)) { + context_push(parser, PM_CONTEXT_RESCUE_MODIFIER); + pm_token_t rescue_keyword = parser->previous; + pm_node_t *value = parse_expression(parser, PM_BINDING_POWER_MATCH + 1, flags & PM_PARSE_ACCEPTS_DO_BLOCK, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1)); + context_pop(parser); + receiver = UP(pm_rescue_modifier_node_create(parser, receiver, &rescue_keyword, value)); + } + } else { + receiver = parse_expression(parser, PM_BINDING_POWER_NOT, (flags & PM_PARSE_ACCEPTS_DO_BLOCK) | PM_PARSE_ACCEPTS_COMMAND_CALL, PM_ERR_NOT_EXPRESSION, (uint16_t) (depth + 1)); + } } return UP(pm_call_node_not_create(parser, receiver, &message, &arguments)); @@ -20303,7 +20318,7 @@ parse_assignment_value(pm_parser_t *parser, pm_binding_power_t previous_binding_ pm_token_t rescue = parser->current; parser_lex(parser); - pm_node_t *right = parse_expression(parser, pm_binding_powers[PM_TOKEN_KEYWORD_RESCUE_MODIFIER].right, flags & PM_PARSE_ACCEPTS_DO_BLOCK, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1)); + pm_node_t *right = parse_expression(parser, PM_BINDING_POWER_MATCH + 1, flags & PM_PARSE_ACCEPTS_DO_BLOCK, PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1)); context_pop(parser); return UP(pm_rescue_modifier_node_create(parser, value, &rescue, right)); @@ -20420,7 +20435,7 @@ parse_assignment_values(pm_parser_t *parser, pm_binding_power_t previous_binding } } - pm_node_t *right = parse_expression(parser, pm_binding_powers[PM_TOKEN_KEYWORD_RESCUE_MODIFIER].right, (flags & PM_PARSE_ACCEPTS_DO_BLOCK) | (accepts_command_call_inner ? PM_PARSE_ACCEPTS_COMMAND_CALL : 0), PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1)); + pm_node_t *right = parse_expression(parser, PM_BINDING_POWER_MATCH + 1, (flags & PM_PARSE_ACCEPTS_DO_BLOCK) | (accepts_command_call_inner ? PM_PARSE_ACCEPTS_COMMAND_CALL : 0), PM_ERR_RESCUE_MODIFIER_VALUE, (uint16_t) (depth + 1)); context_pop(parser); return UP(pm_rescue_modifier_node_create(parser, value, &rescue, right)); diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index 1c60d7f52a787f..a2f765aa54dc18 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -2214,7 +2214,7 @@ fn can_direct_send(function: &mut Function, block: BlockId, iseq: *const rb_iseq let mut can_send = true; let mut count_failure = |counter| { can_send = false; - function.push_insn(block, Insn::IncrCounter(counter)); + function.count(block, counter); }; let params = unsafe { iseq.params() }; @@ -2525,6 +2525,12 @@ impl Function { true } + pub fn count(&mut self, block: BlockId, counter: Counter) { + if get_option!(stats) { + self.push_insn(block, Insn::IncrCounter(counter)); + } + } + /// Return a copy of the instruction where the instruction and its operands have been read from /// the union-find table (to find the current most-optimized version of this instruction). See /// [`UnionFind`] for more. @@ -3343,14 +3349,14 @@ impl Function { fn count_complex_call_features(&mut self, block: BlockId, ci_flags: c_uint) { use Counter::*; - if 0 != ci_flags & VM_CALL_ARGS_SPLAT { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_splat)); } - if 0 != ci_flags & VM_CALL_ARGS_BLOCKARG { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_blockarg)); } - if 0 != ci_flags & VM_CALL_KWARG { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_kwarg)); } - if 0 != ci_flags & VM_CALL_KW_SPLAT { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_kw_splat)); } - if 0 != ci_flags & VM_CALL_TAILCALL { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_tailcall)); } - if 0 != ci_flags & VM_CALL_SUPER { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_super)); } - if 0 != ci_flags & VM_CALL_ZSUPER { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_zsuper)); } - if 0 != ci_flags & VM_CALL_FORWARDING { self.push_insn(block, Insn::IncrCounter(complex_arg_pass_caller_forwarding)); } + if 0 != ci_flags & VM_CALL_ARGS_SPLAT { self.count(block, complex_arg_pass_caller_splat); } + if 0 != ci_flags & VM_CALL_ARGS_BLOCKARG { self.count(block, complex_arg_pass_caller_blockarg); } + if 0 != ci_flags & VM_CALL_KWARG { self.count(block, complex_arg_pass_caller_kwarg); } + if 0 != ci_flags & VM_CALL_KW_SPLAT { self.count(block, complex_arg_pass_caller_kw_splat); } + if 0 != ci_flags & VM_CALL_TAILCALL { self.count(block, complex_arg_pass_caller_tailcall); } + if 0 != ci_flags & VM_CALL_SUPER { self.count(block, complex_arg_pass_caller_super); } + if 0 != ci_flags & VM_CALL_ZSUPER { self.count(block, complex_arg_pass_caller_zsuper); } + if 0 != ci_flags & VM_CALL_FORWARDING { self.count(block, complex_arg_pass_caller_forwarding); } } fn rewrite_if_frozen(&mut self, block: BlockId, orig_insn_id: InsnId, self_val: InsnId, klass: u32, bop: u32, state: InsnId) { @@ -4006,7 +4012,7 @@ impl Function { assert_ne!(block, tmp_block); let insns = std::mem::take(&mut self.blocks[tmp_block.0].insns); self.blocks[block.0].insns.extend(insns); - self.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + self.count(block, Counter::inline_cfunc_optimized_send_count); self.make_equal_to(insn_id, replacement); if self.type_of(replacement).bit_equal(types::Any) { // Not set yet; infer type @@ -4022,7 +4028,7 @@ impl Function { let elidable = props.elidable; // Filter for a leaf and GC free function let ccall = if props.leaf && props.no_gc { - self.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + self.count(block, Counter::inline_cfunc_optimized_send_count); self.push_insn(block, Insn::CCall { cfunc: cfunc_ptr, recv, args, name, return_type, elidable }) } else { if get_option!(stats) { @@ -4056,7 +4062,7 @@ impl Function { emit_super_call_guards(self, block, super_cme, current_cme, mid, state); let insns = std::mem::take(&mut self.blocks[tmp_block.0].insns); self.blocks[block.0].insns.extend(insns); - self.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + self.count(block, Counter::inline_cfunc_optimized_send_count); self.make_equal_to(insn_id, replacement); if self.type_of(replacement).bit_equal(types::Any) { // Not set yet; infer type @@ -4072,7 +4078,7 @@ impl Function { let elidable = props.elidable; // Filter for a leaf and GC free function let ccall = if props.leaf && props.no_gc { - self.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + self.count(block, Counter::inline_cfunc_optimized_send_count); self.push_insn(block, Insn::CCall { cfunc: cfunc_ptr, recv, args, name, return_type, elidable }) } else { if get_option!(stats) { @@ -4136,20 +4142,20 @@ impl Function { }; match value { IseqReturn::LocalVariable(idx) => { - self.push_insn(block, Insn::IncrCounter(Counter::inline_iseq_optimized_send_count)); + self.count(block, Counter::inline_iseq_optimized_send_count); self.make_equal_to(insn_id, args[idx as usize]); } IseqReturn::Value(value) => { - self.push_insn(block, Insn::IncrCounter(Counter::inline_iseq_optimized_send_count)); + self.count(block, Counter::inline_iseq_optimized_send_count); let replacement = self.push_insn(block, Insn::Const { val: Const::Value(value) }); self.make_equal_to(insn_id, replacement); } IseqReturn::Receiver => { - self.push_insn(block, Insn::IncrCounter(Counter::inline_iseq_optimized_send_count)); + self.count(block, Counter::inline_iseq_optimized_send_count); self.make_equal_to(insn_id, recv); } IseqReturn::InvokeLeafBuiltin(bf, return_type) => { - self.push_insn(block, Insn::IncrCounter(Counter::inline_iseq_optimized_send_count)); + self.count(block, Counter::inline_iseq_optimized_send_count); let replacement = self.push_insn(block, Insn::InvokeBuiltin { bf, recv, @@ -4197,18 +4203,18 @@ impl Function { let frame_state = self.frame_state(state); let Some(recv_type) = self.profiled_type_of_at(self_val, frame_state.insn_idx) else { // No (monomorphic/skewed polymorphic) profile info - self.push_insn(block, Insn::IncrCounter(Counter::getivar_fallback_not_monomorphic)); + self.count(block, Counter::getivar_fallback_not_monomorphic); self.push_insn_id(block, insn_id); continue; }; if recv_type.flags().is_immediate() { // Instance variable lookups on immediate values are always nil - self.push_insn(block, Insn::IncrCounter(Counter::getivar_fallback_immediate)); + self.count(block, Counter::getivar_fallback_immediate); self.push_insn_id(block, insn_id); continue; } assert!(recv_type.shape().is_valid()); if recv_type.shape().is_too_complex() { // too-complex shapes can't use index access - self.push_insn(block, Insn::IncrCounter(Counter::getivar_fallback_too_complex)); + self.count(block, Counter::getivar_fallback_too_complex); self.push_insn_id(block, insn_id); continue; } let self_val = self.push_insn(block, Insn::GuardType { val: self_val, guard_type: types::HeapBasicObject, state }); @@ -4315,23 +4321,23 @@ impl Function { let frame_state = self.frame_state(state); let Some(recv_type) = self.profiled_type_of_at(self_val, frame_state.insn_idx) else { // No (monomorphic/skewed polymorphic) profile info - self.push_insn(block, Insn::IncrCounter(Counter::definedivar_fallback_not_monomorphic)); + self.count(block, Counter::definedivar_fallback_not_monomorphic); self.push_insn_id(block, insn_id); continue; }; if recv_type.flags().is_immediate() { // Instance variable lookups on immediate values are always nil - self.push_insn(block, Insn::IncrCounter(Counter::definedivar_fallback_immediate)); + self.count(block, Counter::definedivar_fallback_immediate); self.push_insn_id(block, insn_id); continue; } assert!(recv_type.shape().is_valid()); if !recv_type.flags().is_t_object() { // Check if the receiver is a T_OBJECT - self.push_insn(block, Insn::IncrCounter(Counter::definedivar_fallback_not_t_object)); + self.count(block, Counter::definedivar_fallback_not_t_object); self.push_insn_id(block, insn_id); continue; } if recv_type.shape().is_too_complex() { // too-complex shapes can't use index access - self.push_insn(block, Insn::IncrCounter(Counter::definedivar_fallback_too_complex)); + self.count(block, Counter::definedivar_fallback_too_complex); self.push_insn_id(block, insn_id); continue; } let self_val = self.push_insn(block, Insn::GuardType { val: self_val, guard_type: types::HeapBasicObject, state }); @@ -4352,28 +4358,28 @@ impl Function { let frame_state = self.frame_state(state); let Some(recv_type) = self.profiled_type_of_at(self_val, frame_state.insn_idx) else { // No (monomorphic/skewed polymorphic) profile info - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_not_monomorphic)); + self.count(block, Counter::setivar_fallback_not_monomorphic); self.push_insn_id(block, insn_id); continue; }; if recv_type.flags().is_immediate() { // Instance variable lookups on immediate values are always nil - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_immediate)); + self.count(block, Counter::setivar_fallback_immediate); self.push_insn_id(block, insn_id); continue; } assert!(recv_type.shape().is_valid()); if !recv_type.flags().is_t_object() { // Check if the receiver is a T_OBJECT - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_not_t_object)); + self.count(block, Counter::setivar_fallback_not_t_object); self.push_insn_id(block, insn_id); continue; } if recv_type.shape().is_too_complex() { // too-complex shapes can't use index access - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_too_complex)); + self.count(block, Counter::setivar_fallback_too_complex); self.push_insn_id(block, insn_id); continue; } if recv_type.shape().is_frozen() { // Can't set ivars on frozen objects - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_frozen)); + self.count(block, Counter::setivar_fallback_frozen); self.push_insn_id(block, insn_id); continue; } let mut ivar_index: u16 = 0; @@ -4390,7 +4396,7 @@ impl Function { let new_shape_too_complex = unsafe { rb_jit_shape_too_complex_p(next_shape_id.0) }; // TODO(max): Is it OK to bail out here after making a shape transition? if new_shape_too_complex { - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_new_shape_too_complex)); + self.count(block, Counter::setivar_fallback_new_shape_too_complex); self.push_insn_id(block, insn_id); continue; } let ivar_result = unsafe { rb_shape_get_iv_index(next_shape_id.0, id, &mut ivar_index) }; @@ -4401,7 +4407,7 @@ impl Function { // reallocate it. let needs_extension = next_capacity != current_capacity; if needs_extension { - self.push_insn(block, Insn::IncrCounter(Counter::setivar_fallback_new_shape_needs_extension)); + self.count(block, Counter::setivar_fallback_new_shape_needs_extension); self.push_insn_id(block, insn_id); continue; } // Fall through to emitting the ivar write @@ -4749,7 +4755,7 @@ impl Function { assert_ne!(block, tmp_block); let insns = std::mem::take(&mut fun.blocks[tmp_block.0].insns); fun.blocks[block.0].insns.extend(insns); - fun.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + fun.count(block, Counter::inline_cfunc_optimized_send_count); fun.make_equal_to(send_insn_id, replacement); if fun.type_of(replacement).bit_equal(types::Any) { // Not set yet; infer type @@ -4766,7 +4772,7 @@ impl Function { let elidable = props.elidable; // Filter for a leaf and GC free function if props.leaf && props.no_gc { - fun.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + fun.count(block, Counter::inline_cfunc_optimized_send_count); let ccall = fun.push_insn(block, Insn::CCall { cfunc, recv, args, name, return_type, elidable }); fun.make_equal_to(send_insn_id, ccall); } else { @@ -4831,7 +4837,7 @@ impl Function { assert_ne!(block, tmp_block); let insns = std::mem::take(&mut fun.blocks[tmp_block.0].insns); fun.blocks[block.0].insns.extend(insns); - fun.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + fun.count(block, Counter::inline_cfunc_optimized_send_count); fun.make_equal_to(send_insn_id, replacement); if fun.type_of(replacement).bit_equal(types::Any) { // Not set yet; infer type @@ -4904,7 +4910,7 @@ impl Function { assert_ne!(block, tmp_block); let insns = std::mem::take(&mut self.blocks[tmp_block.0].insns); self.blocks[block.0].insns.extend(insns); - self.push_insn(block, Insn::IncrCounter(Counter::inline_cfunc_optimized_send_count)); + self.count(block, Counter::inline_cfunc_optimized_send_count); self.make_equal_to(insn_id, replacement); if self.type_of(replacement).bit_equal(types::Any) { // Not set yet; infer type @@ -6752,21 +6758,21 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result { if summary.is_monomorphic() { let obj = summary.bucket(0).class(); if unsafe { rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1 } { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_monomorphic_iseq)); + fun.count(block, Counter::invokeblock_handler_monomorphic_iseq); } else if unsafe { rb_IMEMO_TYPE_P(obj, imemo_ifunc) == 1 } { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_monomorphic_ifunc)); + fun.count(block, Counter::invokeblock_handler_monomorphic_ifunc); } else { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_monomorphic_other)); + fun.count(block, Counter::invokeblock_handler_monomorphic_other); } } else if summary.is_skewed_polymorphic() || summary.is_polymorphic() { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_polymorphic)); + fun.count(block, Counter::invokeblock_handler_polymorphic); } else if summary.is_skewed_megamorphic() || summary.is_megamorphic() { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_megamorphic)); + fun.count(block, Counter::invokeblock_handler_megamorphic); } else { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_no_profiles)); + fun.count(block, Counter::invokeblock_handler_no_profiles); } } else { - fun.push_insn(block, Insn::IncrCounter(Counter::invokeblock_handler_no_profiles)); + fun.count(block, Counter::invokeblock_handler_no_profiles); } } } @@ -6779,25 +6785,25 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result { if summary.is_monomorphic() { let obj = summary.bucket(0).class(); if unsafe { rb_IMEMO_TYPE_P(obj, imemo_iseq) == 1} { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_iseq)); + fun.count(block, Counter::getblockparamproxy_handler_iseq); } else if unsafe { rb_IMEMO_TYPE_P(obj, imemo_ifunc) == 1} { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_ifunc)); + fun.count(block, Counter::getblockparamproxy_handler_ifunc); } else if obj.nil_p() { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_nil)); + fun.count(block, Counter::getblockparamproxy_handler_nil); } else if obj.symbol_p() { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_symbol)); + fun.count(block, Counter::getblockparamproxy_handler_symbol); } else if unsafe { rb_obj_is_proc(obj).test() } { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_proc)); + fun.count(block, Counter::getblockparamproxy_handler_proc); } } else if summary.is_polymorphic() || summary.is_skewed_polymorphic() { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_polymorphic)); + fun.count(block, Counter::getblockparamproxy_handler_polymorphic); } else if summary.is_megamorphic() || summary.is_skewed_megamorphic() { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_megamorphic)); + fun.count(block, Counter::getblockparamproxy_handler_megamorphic); } } else { - fun.push_insn(block, Insn::IncrCounter(Counter::getblockparamproxy_handler_no_profiles)); + fun.count(block, Counter::getblockparamproxy_handler_no_profiles); } } } @@ -8894,7 +8900,6 @@ mod graphviz_tests { v28:Fixnum = GuardType v12, Fixnum  v29:Fixnum = GuardType v13, Fixnum  v30:Fixnum = FixnumOr v28, v29  - IncrCounter inline_cfunc_optimized_send_count  CheckInterrupts  Return v30  >]; diff --git a/zjit/src/hir/opt_tests.rs b/zjit/src/hir/opt_tests.rs index 3476626259881c..dcdd6b1ed7a4ea 100644 --- a/zjit/src/hir/opt_tests.rs +++ b/zjit/src/hir/opt_tests.rs @@ -111,11 +111,9 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, +@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count - v35:Fixnum[6] = Const Value(6) - IncrCounter inline_cfunc_optimized_send_count + v33:Fixnum[6] = Const Value(6) CheckInterrupts - Return v35 + Return v33 "); } @@ -140,11 +138,9 @@ mod hir_opt_tests { v10:Fixnum[5] = Const Value(5) v12:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Integer@0x1000, -@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count - v35:Fixnum[1] = Const Value(1) - IncrCounter inline_cfunc_optimized_send_count + v33:Fixnum[1] = Const Value(1) CheckInterrupts - Return v35 + Return v33 "); } @@ -169,10 +165,9 @@ mod hir_opt_tests { v10:Fixnum[0] = Const Value(0) v12:Fixnum[1073741825] = Const Value(1073741825) PatchPoint MethodRedefined(Integer@0x1000, -@0x1008, cme:0x1010) - v25:Fixnum[-1073741825] = Const Value(-1073741825) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-1073741825] = Const Value(-1073741825) CheckInterrupts - Return v25 + Return v24 "); } @@ -197,10 +192,9 @@ mod hir_opt_tests { v10:Fixnum[6] = Const Value(6) v12:Fixnum[7] = Const Value(7) PatchPoint MethodRedefined(Integer@0x1000, *@0x1008, cme:0x1010) - v25:Fixnum[42] = Const Value(42) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[42] = Const Value(42) CheckInterrupts - Return v25 + Return v24 "); } @@ -229,17 +223,14 @@ mod hir_opt_tests { v14:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Integer@0x1008, *@0x1010, cme:0x1018) v35:Fixnum = GuardType v10, Fixnum - v47:Fixnum[0] = Const Value(0) - IncrCounter inline_cfunc_optimized_send_count + v44:Fixnum[0] = Const Value(0) v21:Fixnum[0] = Const Value(0) - v40:Fixnum = GuardType v10, Fixnum - v48:Fixnum[0] = Const Value(0) - IncrCounter inline_cfunc_optimized_send_count + v39:Fixnum = GuardType v10, Fixnum + v45:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Integer@0x1008, +@0x1040, cme:0x1048) - v49:Fixnum[0] = Const Value(0) - IncrCounter inline_cfunc_optimized_send_count + v46:Fixnum[0] = Const Value(0) CheckInterrupts - Return v49 + Return v46 "); } @@ -250,7 +241,7 @@ mod hir_opt_tests { 7 / 3 end "); - assert_snapshot!(hir_string("test"), @r" + assert_snapshot!(hir_string("test"), @" fn test@:3: bb1(): EntryPoint interpreter @@ -264,10 +255,9 @@ mod hir_opt_tests { v10:Fixnum[7] = Const Value(7) v12:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Integer@0x1000, /@0x1008, cme:0x1010) - v25:Fixnum[2] = Const Value(2) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[2] = Const Value(2) CheckInterrupts - Return v25 + Return v24 "); } @@ -278,7 +268,7 @@ mod hir_opt_tests { 7 / 0 end "); - assert_snapshot!(hir_string("test"), @r" + assert_snapshot!(hir_string("test"), @" fn test@:3: bb1(): EntryPoint interpreter @@ -293,7 +283,6 @@ mod hir_opt_tests { v12:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Integer@0x1000, /@0x1008, cme:0x1010) v23:Fixnum = FixnumDiv v10, v12 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -306,7 +295,7 @@ mod hir_opt_tests { 7 / -3 end "); - assert_snapshot!(hir_string("test"), @r" + assert_snapshot!(hir_string("test"), @" fn test@:3: bb1(): EntryPoint interpreter @@ -320,10 +309,9 @@ mod hir_opt_tests { v10:Fixnum[7] = Const Value(7) v12:Fixnum[-3] = Const Value(-3) PatchPoint MethodRedefined(Integer@0x1000, /@0x1008, cme:0x1010) - v25:Fixnum[-3] = Const Value(-3) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-3] = Const Value(-3) CheckInterrupts - Return v25 + Return v24 "); } @@ -334,7 +322,7 @@ mod hir_opt_tests { {RUBY_FIXNUM_MIN} / -1 end ")); - assert_snapshot!(hir_string("test"), @r" + assert_snapshot!(hir_string("test"), @" fn test@:3: bb1(): EntryPoint interpreter @@ -349,7 +337,6 @@ mod hir_opt_tests { v12:Fixnum[-1] = Const Value(-1) PatchPoint MethodRedefined(Integer@0x1000, /@0x1008, cme:0x1010) v23:Fixnum = FixnumDiv v10, v12 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -377,7 +364,6 @@ mod hir_opt_tests { v12:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) v23:Fixnum = FixnumMod v10, v12 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -405,7 +391,6 @@ mod hir_opt_tests { v12:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) v23:Fixnum = FixnumMod v10, v12 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -432,10 +417,9 @@ mod hir_opt_tests { v10:Fixnum[0] = Const Value(0) v12:Fixnum[11] = Const Value(11) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) - v25:Fixnum[0] = Const Value(0) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[0] = Const Value(0) CheckInterrupts - Return v25 + Return v24 "); } @@ -460,10 +444,9 @@ mod hir_opt_tests { v10:Fixnum[11] = Const Value(11) v12:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) - v25:Fixnum[2] = Const Value(2) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[2] = Const Value(2) CheckInterrupts - Return v25 + Return v24 "); } @@ -488,10 +471,9 @@ mod hir_opt_tests { v10:Fixnum[-7] = Const Value(-7) v12:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) - v25:Fixnum[2] = Const Value(2) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[2] = Const Value(2) CheckInterrupts - Return v25 + Return v24 "); } @@ -516,10 +498,9 @@ mod hir_opt_tests { v10:Fixnum[7] = Const Value(7) v12:Fixnum[-3] = Const Value(-3) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) - v25:Fixnum[-2] = Const Value(-2) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-2] = Const Value(-2) CheckInterrupts - Return v25 + Return v24 "); } @@ -544,10 +525,9 @@ mod hir_opt_tests { v10:Fixnum[-7] = Const Value(-7) v12:Fixnum[-3] = Const Value(-3) PatchPoint MethodRedefined(Integer@0x1000, %@0x1008, cme:0x1010) - v25:Fixnum[-1] = Const Value(-1) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-1] = Const Value(-1) CheckInterrupts - Return v25 + Return v24 "); } @@ -573,10 +553,9 @@ mod hir_opt_tests { v10:Fixnum[2] = Const Value(2) v12:Fixnum[5] = Const Value(5) PatchPoint MethodRedefined(Integer@0x1000, ^@0x1008, cme:0x1010) - v24:Fixnum[7] = Const Value(7) - IncrCounter inline_cfunc_optimized_send_count + v23:Fixnum[7] = Const Value(7) CheckInterrupts - Return v24 + Return v23 "); } @@ -602,10 +581,9 @@ mod hir_opt_tests { v10:Fixnum[123] = Const Value(123) v12:Fixnum[-123] = Const Value(-123) PatchPoint MethodRedefined(Integer@0x1000, ^@0x1008, cme:0x1010) - v24:Fixnum[-2] = Const Value(-2) - IncrCounter inline_cfunc_optimized_send_count + v23:Fixnum[-2] = Const Value(-2) CheckInterrupts - Return v24 + Return v23 "); } @@ -632,10 +610,9 @@ mod hir_opt_tests { v10:Fixnum[4] = Const Value(4) v12:Fixnum[-7] = Const Value(-7) PatchPoint MethodRedefined(Integer@0x1000, &@0x1008, cme:0x1010) - v25:Fixnum[0] = Const Value(0) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[0] = Const Value(0) CheckInterrupts - Return v25 + Return v24 "); } @@ -662,10 +639,9 @@ mod hir_opt_tests { v10:Fixnum[-4] = Const Value(-4) v12:Fixnum[7] = Const Value(7) PatchPoint MethodRedefined(Integer@0x1000, &@0x1008, cme:0x1010) - v25:Fixnum[4] = Const Value(4) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[4] = Const Value(4) CheckInterrupts - Return v25 + Return v24 "); } @@ -692,10 +668,9 @@ mod hir_opt_tests { v10:Fixnum[4] = Const Value(4) v12:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, |@0x1008, cme:0x1010) - v25:Fixnum[5] = Const Value(5) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[5] = Const Value(5) CheckInterrupts - Return v25 + Return v24 "); } @@ -722,10 +697,9 @@ mod hir_opt_tests { v10:Fixnum[-4] = Const Value(-4) v12:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, |@0x1008, cme:0x1010) - v25:Fixnum[-3] = Const Value(-3) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-3] = Const Value(-3) CheckInterrupts - Return v25 + Return v24 "); } @@ -752,10 +726,9 @@ mod hir_opt_tests { v10:Fixnum[4] = Const Value(4) v12:Fixnum[-1] = Const Value(-1) PatchPoint MethodRedefined(Integer@0x1000, |@0x1008, cme:0x1010) - v25:Fixnum[-1] = Const Value(-1) - IncrCounter inline_cfunc_optimized_send_count + v24:Fixnum[-1] = Const Value(-1) CheckInterrupts - Return v25 + Return v24 "); } @@ -784,8 +757,7 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, <@0x1008, cme:0x1010) - v43:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v42:TrueClass = Const Value(true) CheckInterrupts v24:Fixnum[3] = Const Value(3) Return v24 @@ -817,10 +789,8 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, <=@0x1008, cme:0x1010) - v60:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v58:TrueClass = Const Value(true) CheckInterrupts - IncrCounter inline_cfunc_optimized_send_count v37:Fixnum[3] = Const Value(3) Return v37 "); @@ -851,8 +821,7 @@ mod hir_opt_tests { v10:Fixnum[2] = Const Value(2) v12:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, >@0x1008, cme:0x1010) - v43:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v42:TrueClass = Const Value(true) CheckInterrupts v24:Fixnum[3] = Const Value(3) Return v24 @@ -884,10 +853,8 @@ mod hir_opt_tests { v10:Fixnum[2] = Const Value(2) v12:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, >=@0x1008, cme:0x1010) - v60:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v58:TrueClass = Const Value(true) CheckInterrupts - IncrCounter inline_cfunc_optimized_send_count v37:Fixnum[3] = Const Value(3) Return v37 "); @@ -918,8 +885,7 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, ==@0x1008, cme:0x1010) - v43:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count + v42:FalseClass = Const Value(false) CheckInterrupts v33:Fixnum[4] = Const Value(4) Return v33 @@ -951,8 +917,7 @@ mod hir_opt_tests { v10:Fixnum[2] = Const Value(2) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, ==@0x1008, cme:0x1010) - v43:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v42:TrueClass = Const Value(true) CheckInterrupts v24:Fixnum[3] = Const Value(3) Return v24 @@ -985,8 +950,7 @@ mod hir_opt_tests { v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, !=@0x1008, cme:0x1010) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) - v44:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v43:TrueClass = Const Value(true) CheckInterrupts v24:Fixnum[3] = Const Value(3) Return v24 @@ -1019,8 +983,7 @@ mod hir_opt_tests { v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, !=@0x1008, cme:0x1010) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) - v44:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count + v43:FalseClass = Const Value(false) CheckInterrupts v33:Fixnum[4] = Const Value(4) Return v33 @@ -1102,7 +1065,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:Fixnum = FixnumAdd v26, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -1256,10 +1218,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, baz@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:Fixnum[1] = Const Value(1) + v20:Fixnum[1] = Const Value(1) CheckInterrupts - Return v21 + Return v20 "); } @@ -1284,7 +1245,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, baz@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v19 "); @@ -1759,10 +1719,9 @@ mod hir_opt_tests { bb3(v11:BasicObject, v12:BasicObject, v13:BasicObject): PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) v27:Fixnum = GuardType v12, Fixnum - IncrCounter inline_iseq_optimized_send_count - v30:Fixnum[100] = Const Value(100) + v29:Fixnum[100] = Const Value(100) CheckInterrupts - Return v30 + Return v29 "); } @@ -1792,7 +1751,6 @@ mod hir_opt_tests { v28:Fixnum = GuardType v12, Fixnum v29:Fixnum = GuardType v13, Fixnum v30:Fixnum = FixnumAdd v28, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -1822,7 +1780,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:Fixnum = FixnumAdd v26, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -1852,7 +1809,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:Fixnum = FixnumAdd v14, v26 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -1884,7 +1840,6 @@ mod hir_opt_tests { v28:Fixnum = GuardType v12, Fixnum v29:Fixnum = GuardType v13, Fixnum v30:Fixnum = FixnumAref v28, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -1912,7 +1867,6 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) v12:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1000, []@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[5] = Const Value(5) CheckInterrupts Return v19 @@ -1997,7 +1951,6 @@ mod hir_opt_tests { v28:Fixnum = GuardType v12, Fixnum v29:Fixnum = GuardType v13, Fixnum v30:BoolExact = FixnumLt v28, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -2027,7 +1980,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, <@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:BoolExact = FixnumLt v26, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -2057,7 +2009,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, <@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:BoolExact = FixnumLt v14, v26 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -2304,7 +2255,6 @@ mod hir_opt_tests { v31:CInt64[0] = Const CInt64(0) v32:CInt64[0] = GuardGreaterEq v30, v31 v33:BasicObject = ArrayAref v27, v32 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v33 "); @@ -2337,7 +2287,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Hash@0x1008, []@0x1010, cme:0x1018) v27:HashExact = GuardType v10, HashExact v28:BasicObject = HashAref v27, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v28 "); @@ -2649,7 +2598,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2684,7 +2632,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, -@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2719,7 +2666,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, *@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2755,7 +2701,6 @@ mod hir_opt_tests { v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum v34:Fixnum = FixnumDiv v32, v33 - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2791,7 +2736,6 @@ mod hir_opt_tests { v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum v34:Fixnum = FixnumMod v32, v33 - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2826,7 +2770,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, <@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2861,7 +2804,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, <=@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2896,7 +2838,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, >@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2931,7 +2872,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, >=@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -2966,7 +2906,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, ==@0x1010, cme:0x1018) v32:Fixnum = GuardType v12, Fixnum v33:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -3002,7 +2941,6 @@ mod hir_opt_tests { v32:Fixnum = GuardType v12, Fixnum PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) v34:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v24:Fixnum[5] = Const Value(5) CheckInterrupts Return v24 @@ -3088,7 +3026,6 @@ mod hir_opt_tests { bb3(v9:BasicObject, v10:BasicObject): PatchPoint MethodRedefined(Integer@0x1008, itself@0x1010, cme:0x1018) v23:Fixnum = GuardType v10, Fixnum - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -3113,7 +3050,6 @@ mod hir_opt_tests { v10:ArrayExact = NewArray PatchPoint NoSingletonClass(Array@0x1000) PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v10 "); @@ -3143,7 +3079,6 @@ mod hir_opt_tests { v13:ArrayExact = NewArray PatchPoint NoSingletonClass(Array@0x1000) PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count PatchPoint NoEPEscape(test) v21:Fixnum[1] = Const Value(1) CheckInterrupts @@ -3179,8 +3114,7 @@ mod hir_opt_tests { v29:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint NoSingletonClass(Module@0x1010) PatchPoint MethodRedefined(Module@0x1010, name@0x1018, cme:0x1020) - IncrCounter inline_cfunc_optimized_send_count - v34:StringExact|NilClass = CCall v29, :Module#name@0x1048 + v33:StringExact|NilClass = CCall v29, :Module#name@0x1048 PatchPoint NoEPEscape(test) v21:Fixnum[1] = Const Value(1) CheckInterrupts @@ -3210,7 +3144,6 @@ mod hir_opt_tests { v10:ArrayExact = NewArray PatchPoint NoSingletonClass(Array@0x1000) PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count v17:Fixnum[5] = Const Value(5) CheckInterrupts Return v17 @@ -3352,7 +3285,6 @@ mod hir_opt_tests { v10:ArrayExact = NewArray PatchPoint NoSingletonClass(Array@0x1000) PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count v17:Fixnum[5] = Const Value(5) CheckInterrupts Return v17 @@ -3407,7 +3339,6 @@ mod hir_opt_tests { v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] v20:CPtr = GetEP 0 v21:BoolExact = IsBlockGiven v20 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v21 "); @@ -3433,7 +3364,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Object@0x1000, block_given?@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] v20:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v20 "); @@ -3461,7 +3391,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, block_given?@0x1008, cme:0x1010) v23:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_cfunc_optimized_send_count v15:Fixnum[5] = Const Value(5) CheckInterrupts Return v15 @@ -3489,10 +3418,9 @@ mod hir_opt_tests { bb3(v9:BasicObject, v10:BasicObject): v14:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1008, zero?@0x1010, cme:0x1018) - IncrCounter inline_iseq_optimized_send_count - v25:BasicObject = InvokeBuiltin leaf , v14 + v24:BasicObject = InvokeBuiltin leaf , v14 CheckInterrupts - Return v25 + Return v24 "); } @@ -3524,10 +3452,9 @@ mod hir_opt_tests { v18:ArrayExact = ArrayDup v17 PatchPoint NoSingletonClass(Array@0x1010) PatchPoint MethodRedefined(Array@0x1010, first@0x1018, cme:0x1020) - IncrCounter inline_iseq_optimized_send_count - v33:BasicObject = InvokeBuiltin leaf , v18 + v32:BasicObject = InvokeBuiltin leaf , v18 CheckInterrupts - Return v33 + Return v32 "); } @@ -3555,11 +3482,9 @@ mod hir_opt_tests { v20:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint NoSingletonClass(Module@0x1010) PatchPoint MethodRedefined(Module@0x1010, class@0x1018, cme:0x1020) - IncrCounter inline_iseq_optimized_send_count - v26:Class[Module@0x1010] = Const Value(VALUE(0x1010)) - IncrCounter inline_cfunc_optimized_send_count + v25:Class[Module@0x1010] = Const Value(VALUE(0x1010)) CheckInterrupts - Return v26 + Return v25 "); } @@ -3657,7 +3582,6 @@ mod hir_opt_tests { v13:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) v32:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v8, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count v19:CPtr = GetEP 0 v20:BasicObject = LoadField v19, :a@0x1038 PatchPoint NoEPEscape(test) @@ -3668,6 +3592,7 @@ mod hir_opt_tests { #[test] fn dont_specialize_call_to_iseq_with_rest() { + enable_zjit_stats(); eval(" def foo(*args) = 1 def test = foo 1 @@ -3683,18 +3608,24 @@ mod hir_opt_tests { bb2(): EntryPoint JIT(0) v4:BasicObject = LoadArg :self@0 + IncrCounterPtr Jump bb3(v4) - bb3(v6:BasicObject): - v11:Fixnum[1] = Const Value(1) + bb3(v7:BasicObject): + IncrCounter zjit_insn_count + IncrCounter zjit_insn_count + v14:Fixnum[1] = Const Value(1) + IncrCounter zjit_insn_count IncrCounter complex_arg_pass_param_rest - v13:BasicObject = Send v6, :foo, v11 # SendFallbackReason: Complex argument passing + v17:BasicObject = Send v7, :foo, v14 # SendFallbackReason: Complex argument passing + IncrCounter zjit_insn_count CheckInterrupts - Return v13 + Return v17 "); } #[test] fn dont_specialize_call_to_post_param_iseq() { + enable_zjit_stats(); eval(" def foo(opt=80, post) = post def test = foo(10) @@ -3709,13 +3640,18 @@ mod hir_opt_tests { bb2(): EntryPoint JIT(0) v4:BasicObject = LoadArg :self@0 + IncrCounterPtr Jump bb3(v4) - bb3(v6:BasicObject): - v11:Fixnum[10] = Const Value(10) + bb3(v7:BasicObject): + IncrCounter zjit_insn_count + IncrCounter zjit_insn_count + v14:Fixnum[10] = Const Value(10) + IncrCounter zjit_insn_count IncrCounter complex_arg_pass_param_post - v13:BasicObject = Send v6, :foo, v11 # SendFallbackReason: Complex argument passing + v17:BasicObject = Send v7, :foo, v14 # SendFallbackReason: Complex argument passing + IncrCounter zjit_insn_count CheckInterrupts - Return v13 + Return v17 "); } @@ -3986,6 +3922,7 @@ mod hir_opt_tests { #[test] fn dont_specialize_call_to_iseq_with_kwrest() { + enable_zjit_stats(); eval(" def foo(**args) = 1 def test = foo(a: 1) @@ -4001,13 +3938,18 @@ mod hir_opt_tests { bb2(): EntryPoint JIT(0) v4:BasicObject = LoadArg :self@0 + IncrCounterPtr Jump bb3(v4) - bb3(v6:BasicObject): - v11:Fixnum[1] = Const Value(1) + bb3(v7:BasicObject): + IncrCounter zjit_insn_count + IncrCounter zjit_insn_count + v14:Fixnum[1] = Const Value(1) + IncrCounter zjit_insn_count IncrCounter complex_arg_pass_param_kwrest - v13:BasicObject = Send v6, :foo, v11 # SendFallbackReason: Complex argument passing + v17:BasicObject = Send v7, :foo, v14 # SendFallbackReason: Complex argument passing + IncrCounter zjit_insn_count CheckInterrupts - Return v13 + Return v17 "); } @@ -4095,6 +4037,7 @@ mod hir_opt_tests { #[test] fn dont_specialize_call_to_iseq_with_call_kwsplat() { + enable_zjit_stats(); eval(" def foo(a:) = a def test = foo(**{a: 1}) @@ -4110,19 +4053,25 @@ mod hir_opt_tests { bb2(): EntryPoint JIT(0) v4:BasicObject = LoadArg :self@0 + IncrCounterPtr Jump bb3(v4) - bb3(v6:BasicObject): - v11:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:HashExact = HashDup v11 + bb3(v7:BasicObject): + IncrCounter zjit_insn_count + IncrCounter zjit_insn_count + v14:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v15:HashExact = HashDup v14 + IncrCounter zjit_insn_count IncrCounter complex_arg_pass_caller_kw_splat - v14:BasicObject = Send v6, :foo, v12 # SendFallbackReason: Complex argument passing + v18:BasicObject = Send v7, :foo, v15 # SendFallbackReason: Complex argument passing + IncrCounter zjit_insn_count CheckInterrupts - Return v14 + Return v18 "); } #[test] fn dont_specialize_call_to_iseq_with_param_kwrest() { + enable_zjit_stats(); eval(" def foo(**kwargs) = kwargs.keys def test = foo @@ -4138,12 +4087,16 @@ mod hir_opt_tests { bb2(): EntryPoint JIT(0) v4:BasicObject = LoadArg :self@0 + IncrCounterPtr Jump bb3(v4) - bb3(v6:BasicObject): + bb3(v7:BasicObject): + IncrCounter zjit_insn_count + IncrCounter zjit_insn_count IncrCounter complex_arg_pass_param_kwrest - v11:BasicObject = Send v6, :foo # SendFallbackReason: Complex argument passing + v14:BasicObject = Send v7, :foo # SendFallbackReason: Complex argument passing + IncrCounter zjit_insn_count CheckInterrupts - Return v11 + Return v14 "); } @@ -4168,7 +4121,6 @@ mod hir_opt_tests { v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v12:StringExact = StringCopy v11 v14:Fixnum[1] = Const Value(1) - IncrCounter complex_arg_pass_caller_kwarg v16:BasicObject = Send v6, :sprintf, v12, v14 # SendFallbackReason: Complex argument passing CheckInterrupts Return v16 @@ -4204,7 +4156,6 @@ mod hir_opt_tests { bb3(v11:BasicObject, v12:BasicObject, v13:NilClass): v17:ArrayExact = NewArray v22:TrueClass = Const Value(true) - IncrCounter complex_arg_pass_caller_kwarg v24:BasicObject = Send v12, 0x1008, :each_line, v22 # SendFallbackReason: Complex argument passing v25:CPtr = GetEP 0 v26:BasicObject = LoadField v25, :s@0x1030 @@ -4344,7 +4295,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, initialize@0x1038, cme:0x1040) v50:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v46 "); @@ -4413,7 +4363,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Object@0x1008) PatchPoint MethodRedefined(Object@0x1008, initialize@0x1038, cme:0x1040) v50:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v46 "); @@ -4445,7 +4394,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(BasicObject@0x1008) PatchPoint MethodRedefined(BasicObject@0x1008, initialize@0x1038, cme:0x1040) v50:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v46 "); @@ -4474,7 +4422,6 @@ mod hir_opt_tests { v12:NilClass = Const Value(nil) PatchPoint MethodRedefined(Hash@0x1008, new@0x1009, cme:0x1010) v46:HashExact = ObjectAllocClass Hash:VALUE(0x1008) - IncrCounter complex_arg_pass_param_block v19:BasicObject = Send v46, :initialize # SendFallbackReason: Complex argument passing CheckInterrupts Return v46 @@ -4632,7 +4579,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Array@0x1008, length@0x1010, cme:0x1018) v31:CInt64 = ArrayLength v19 v32:Fixnum = BoxFixnum v31 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -4664,7 +4610,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Array@0x1008, size@0x1010, cme:0x1018) v31:CInt64 = ArrayLength v19 v32:Fixnum = BoxFixnum v31 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -4787,7 +4732,6 @@ mod hir_opt_tests { Jump bb3(v4) bb3(v6:BasicObject): PatchPoint SingleRactorMode - IncrCounter getivar_fallback_not_monomorphic v11:BasicObject = GetIvar v6, :@foo CheckInterrupts Return v11 @@ -4812,7 +4756,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[1] = Const Value(1) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_not_monomorphic SetIvar v6, :@foo, v10 CheckInterrupts Return v10 @@ -5032,7 +4975,6 @@ mod hir_opt_tests { bb3(v11:BasicObject, v12:BasicObject, v13:NilClass): v17:ArrayExact = NewArray v23:ArrayExact = ToArray v17 - IncrCounter complex_arg_pass_caller_splat v25:BasicObject = Send v12, :call, v23 # SendFallbackReason: Complex argument passing CheckInterrupts Return v25 @@ -5063,7 +5005,6 @@ mod hir_opt_tests { Jump bb3(v6, v7) bb3(v9:BasicObject, v10:BasicObject): v15:Fixnum[1] = Const Value(1) - IncrCounter complex_arg_pass_caller_kwarg v17:BasicObject = Send v10, :call, v15 # SendFallbackReason: Complex argument passing CheckInterrupts Return v17 @@ -5092,7 +5033,6 @@ mod hir_opt_tests { v4:BasicObject = LoadArg :self@0 Jump bb3(v4) bb3(v6:BasicObject): - IncrCounter definedivar_fallback_not_t_object v10:StringExact|NilClass = DefinedIvar v6, :@a CheckInterrupts Return v10 @@ -5125,7 +5065,6 @@ mod hir_opt_tests { v4:BasicObject = LoadArg :self@0 Jump bb3(v4) bb3(v6:BasicObject): - IncrCounter definedivar_fallback_not_monomorphic v10:StringExact|NilClass = DefinedIvar v6, :@a CheckInterrupts Return v10 @@ -5159,7 +5098,6 @@ mod hir_opt_tests { v4:BasicObject = LoadArg :self@0 Jump bb3(v4) bb3(v6:BasicObject): - IncrCounter definedivar_fallback_too_complex v10:StringExact|NilClass = DefinedIvar v6, :@a CheckInterrupts Return v10 @@ -5292,7 +5230,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[5] = Const Value(5) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_not_t_object SetIvar v6, :@a, v10 CheckInterrupts Return v10 @@ -5327,7 +5264,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[5] = Const Value(5) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_not_monomorphic SetIvar v6, :@a, v10 CheckInterrupts Return v10 @@ -5363,7 +5299,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[5] = Const Value(5) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_too_complex SetIvar v6, :@a, v10 CheckInterrupts Return v10 @@ -5396,7 +5331,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[5] = Const Value(5) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_new_shape_too_complex SetIvar v6, :@abc, v10 CheckInterrupts Return v10 @@ -5998,7 +5932,6 @@ mod hir_opt_tests { CheckInterrupts v23:Fixnum[1] = RefineType v13, NotNil PatchPoint MethodRedefined(Integer@0x1000, itself@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count Return v23 "); } @@ -6033,7 +5966,6 @@ mod hir_opt_tests { v30:CInt64[0] = Const CInt64(0) v31:CInt64[0] = GuardGreaterEq v29, v30 v32:BasicObject = ArrayAref v23, v31 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -6067,10 +5999,9 @@ mod hir_opt_tests { v27:CInt64[1] = GuardLess v25, v26 v28:CInt64[0] = Const CInt64(0) v29:CInt64[1] = GuardGreaterEq v27, v28 - v32:Fixnum[5] = Const Value(5) - IncrCounter inline_cfunc_optimized_send_count + v31:Fixnum[5] = Const Value(5) CheckInterrupts - Return v32 + Return v31 "); } @@ -6100,10 +6031,9 @@ mod hir_opt_tests { v27:CInt64[-3] = GuardLess v25, v26 v28:CInt64[0] = Const CInt64(0) v29:CInt64[-3] = GuardGreaterEq v27, v28 - v32:Fixnum[4] = Const Value(4) - IncrCounter inline_cfunc_optimized_send_count + v31:Fixnum[4] = Const Value(4) CheckInterrupts - Return v32 + Return v31 "); } @@ -6133,10 +6063,9 @@ mod hir_opt_tests { v27:CInt64[-10] = GuardLess v25, v26 v28:CInt64[0] = Const CInt64(0) v29:CInt64[-10] = GuardGreaterEq v27, v28 - v32:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count + v31:NilClass = Const Value(nil) CheckInterrupts - Return v32 + Return v31 "); } @@ -6166,10 +6095,9 @@ mod hir_opt_tests { v27:CInt64[10] = GuardLess v25, v26 v28:CInt64[0] = Const CInt64(0) v29:CInt64[10] = GuardGreaterEq v27, v28 - v32:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count + v31:NilClass = Const Value(nil) CheckInterrupts - Return v32 + Return v31 "); } @@ -6339,13 +6267,11 @@ mod hir_opt_tests { PatchPoint SingleRactorMode PatchPoint MethodRedefined(Object@0x1000, zero@0x1008, cme:0x1010) v22:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v29:StaticSymbol[:b] = Const Value(VALUE(0x1038)) + v28:StaticSymbol[:b] = Const Value(VALUE(0x1038)) PatchPoint MethodRedefined(Object@0x1000, one@0x1040, cme:0x1048) v26:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v29 + Return v28 "); } @@ -6425,7 +6351,6 @@ mod hir_opt_tests { v22:Class[Foo@0x1008] = Const Value(VALUE(0x1008)) v12:Fixnum[100] = Const Value(100) PatchPoint MethodRedefined(Class@0x1010, identity@0x1018, cme:0x1020) - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v12 "); @@ -6450,7 +6375,6 @@ mod hir_opt_tests { v10:NilClass = Const Value(nil) PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010) v21:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v21 "); @@ -6477,7 +6401,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:NilClass = Const Value(nil) PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count v17:Fixnum[1] = Const Value(1) CheckInterrupts Return v17 @@ -6503,7 +6426,6 @@ mod hir_opt_tests { v10:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010) v21:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v21 "); @@ -6530,7 +6452,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010) - IncrCounter inline_cfunc_optimized_send_count v17:Fixnum[2] = Const Value(2) CheckInterrupts Return v17 @@ -6561,7 +6482,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(NilClass@0x1008, nil?@0x1010, cme:0x1018) v24:NilClass = GuardType v10, NilClass v25:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6591,7 +6511,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(FalseClass@0x1008, nil?@0x1010, cme:0x1018) v24:FalseClass = GuardType v10, FalseClass v25:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6621,7 +6540,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(TrueClass@0x1008, nil?@0x1010, cme:0x1018) v24:TrueClass = GuardType v10, TrueClass v25:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6651,7 +6569,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Symbol@0x1008, nil?@0x1010, cme:0x1018) v24:StaticSymbol = GuardType v10, StaticSymbol v25:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6681,7 +6598,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, nil?@0x1010, cme:0x1018) v24:Fixnum = GuardType v10, Fixnum v25:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6711,7 +6627,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Float@0x1008, nil?@0x1010, cme:0x1018) v24:Flonum = GuardType v10, Flonum v25:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6742,7 +6657,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(String@0x1008, nil?@0x1010, cme:0x1018) v25:StringExact = GuardType v10, StringExact v26:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -6773,7 +6687,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Array@0x1008, !@0x1010, cme:0x1018) v25:ArrayExact = GuardType v10, ArrayExact v26:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -6803,7 +6716,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(FalseClass@0x1008, !@0x1010, cme:0x1018) v24:FalseClass = GuardType v10, FalseClass v25:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6833,7 +6745,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(NilClass@0x1008, !@0x1010, cme:0x1018) v24:NilClass = GuardType v10, NilClass v25:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -6878,7 +6789,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(NilClass@0x1008, !@0x1010, cme:0x1018) v45:NilClass = GuardType v33, NilClass v46:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v46 "); @@ -6912,7 +6822,6 @@ mod hir_opt_tests { v27:CInt64[0] = Const CInt64(0) v28:CBool = IsBitEqual v26, v27 v29:BoolExact = BoxBool v28 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -6942,10 +6851,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1008) PatchPoint MethodRedefined(Hash@0x1008, empty?@0x1010, cme:0x1018) v25:HashExact = GuardType v10, HashExact - IncrCounter inline_cfunc_optimized_send_count - v27:BoolExact = CCall v25, :Hash#empty?@0x1040 + v26:BoolExact = CCall v25, :Hash#empty?@0x1040 CheckInterrupts - Return v27 + Return v26 "); } @@ -6978,7 +6886,6 @@ mod hir_opt_tests { v29:ObjectSubclass[class_exact:C] = GuardType v12, ObjectSubclass[class_exact:C] v30:CBool = IsBitEqual v29, v13 v31:BoolExact = BoxBool v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v31 "); @@ -7011,7 +6918,6 @@ mod hir_opt_tests { v28:Fixnum = GuardType v12, Fixnum v29:Fixnum = GuardType v13, Fixnum v30:Fixnum = FixnumAnd v28, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -7044,7 +6950,6 @@ mod hir_opt_tests { v28:Fixnum = GuardType v12, Fixnum v29:Fixnum = GuardType v13, Fixnum v30:Fixnum = FixnumOr v28, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -7072,10 +6977,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:NilClass = Const Value(nil) + v20:NilClass = Const Value(nil) CheckInterrupts - Return v21 + Return v20 "); } @@ -7510,14 +7414,12 @@ mod hir_opt_tests { v20:ObjectSubclass[class_exact:C] = RefineType v18, ObjectSubclass[class_exact:C] PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, foo@0x1010, cme:0x1018) - IncrCounter getivar_fallback_not_monomorphic v46:BasicObject = GetIvar v20, :@foo Jump bb4(v16, v17, v46) bb6(v25:BasicObject, v26:BasicObject, v27:BasicObject): v29:ObjectSubclass[class_exact:C] = RefineType v27, ObjectSubclass[class_exact:C] PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, foo@0x1010, cme:0x1018) - IncrCounter getivar_fallback_not_monomorphic v49:BasicObject = GetIvar v29, :@foo Jump bb4(v25, v26, v49) bb4(v35:BasicObject, v36:BasicObject, v37:BasicObject): @@ -7559,7 +7461,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, foo@0x1010, cme:0x1018) v23:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] - IncrCounter getivar_fallback_too_complex v24:BasicObject = GetIvar v23, :@foo CheckInterrupts Return v24 @@ -7664,7 +7565,6 @@ mod hir_opt_tests { v19:CInt64 = LoadField v16, :_env_data_index_specval@0x1002 v20:CInt64 = GuardAnyBitSet v19, CUInt64(1) v21:ObjectSubclass[BlockParamProxy] = Const Value(VALUE(0x1008)) - IncrCounter complex_arg_pass_caller_blockarg v23:BasicObject = Send v14, 0x1001, :map, v21 # SendFallbackReason: Complex argument passing CheckInterrupts Return v23 @@ -7698,7 +7598,6 @@ mod hir_opt_tests { v19:CInt64 = LoadField v16, :_env_data_index_specval@0x1002 v20:CInt64[0] = GuardBitEquals v19, CInt64(0) v21:NilClass = Const Value(nil) - IncrCounter complex_arg_pass_caller_blockarg v23:BasicObject = Send v14, 0x1001, :map, v21 # SendFallbackReason: Complex argument passing CheckInterrupts Return v23 @@ -7733,7 +7632,6 @@ mod hir_opt_tests { v15:CInt64 = LoadField v12, :_env_data_index_specval@0x1001 v16:CInt64 = GuardAnyBitSet v15, CUInt64(1) v17:ObjectSubclass[BlockParamProxy] = Const Value(VALUE(0x1008)) - IncrCounter complex_arg_pass_caller_blockarg v19:BasicObject = Send v10, 0x1000, :map, v17 # SendFallbackReason: Complex argument passing CheckInterrupts Return v19 @@ -8264,7 +8162,6 @@ mod hir_opt_tests { v11:StringExact = StringCopy v10 PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, to_s@0x1010, cme:0x1018) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v11 "); @@ -8290,7 +8187,6 @@ mod hir_opt_tests { v11:StringExact = StringCopy v10 PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, to_s@0x1010, cme:0x1018) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v11 "); @@ -8319,7 +8215,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, to_s@0x1010, cme:0x1018) v24:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v24 "); @@ -8443,7 +8338,6 @@ mod hir_opt_tests { v34:CInt64[0] = Const CInt64(0) v35:CInt64[0] = GuardGreaterEq v33, v34 v36:BasicObject = ArrayAref v14, v35 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v36 "); @@ -8483,7 +8377,6 @@ mod hir_opt_tests { v34:CInt64[0] = Const CInt64(0) v35:CInt64 = GuardGreaterEq v33, v34 v36:BasicObject = ArrayAref v29, v35 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v36 "); @@ -8524,7 +8417,6 @@ mod hir_opt_tests { v34:CInt64[0] = Const CInt64(0) v35:CInt64 = GuardGreaterEq v33, v34 v36:BasicObject = ArrayAref v29, v35 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v36 "); @@ -8557,7 +8449,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1008) PatchPoint MethodRedefined(Hash@0x1008, []@0x1010, cme:0x1018) v31:BasicObject = HashAref v14, v19 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v31 "); @@ -8591,7 +8482,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Hash@0x1008, []@0x1010, cme:0x1018) v29:HashExact = GuardType v12, HashExact v30:BasicObject = HashAref v29, v13 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -8656,7 +8546,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1018) PatchPoint MethodRedefined(Hash@0x1018, []@0x1020, cme:0x1028) v27:BasicObject = HashAref v23, v12 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -8690,7 +8579,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1000) PatchPoint MethodRedefined(Hash@0x1000, []=@0x1008, cme:0x1010) HashAset v13, v22, v24 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v24 "); @@ -8726,7 +8614,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Hash@0x1008, []=@0x1010, cme:0x1018) v37:HashExact = GuardType v14, HashExact HashAset v37, v15, v16 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v16 "); @@ -8792,7 +8679,6 @@ mod hir_opt_tests { v23:CPtr = LoadEC v24:CPtr = LoadField v23, :thread_ptr@0x1048 v25:BasicObject = LoadField v24, :self@0x1049 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -8835,7 +8721,6 @@ mod hir_opt_tests { v42:CInt64[1] = GuardGreaterEq v40, v41 ArrayAset v33, v42, v19 WriteBarrier v33, v19 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v19 "); @@ -8881,7 +8766,6 @@ mod hir_opt_tests { v47:CInt64 = GuardGreaterEq v45, v46 ArrayAset v37, v47, v16 WriteBarrier v37, v16 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v16 "); @@ -8951,7 +8835,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Array@0x1008, <<@0x1010, cme:0x1018) v27:ArrayExact = GuardType v10, ArrayExact ArrayPush v27, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -8984,7 +8867,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Array@0x1008, push@0x1010, cme:0x1018) v26:ArrayExact = GuardType v10, ArrayExact ArrayPush v26, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -9055,7 +8937,6 @@ mod hir_opt_tests { v27:FalseClass = GuardBitEquals v26, Value(false) v28:Array = GuardType v9, Array ArrayPush v28, v10 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v28 "); @@ -9096,7 +8977,6 @@ mod hir_opt_tests { v24:CUInt64 = LoadField v23, :_rbasic_flags@0x1049 v25:CUInt64 = GuardNoBitsSet v24, RUBY_ELTS_SHARED=CUInt64(4096) v26:BasicObject = ArrayPop v23 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -9144,7 +9024,6 @@ mod hir_opt_tests { v33:CInt64[0] = Const CInt64(0) v34:CInt64 = GuardGreaterEq v32, v33 v35:BasicObject = ArrayAref v28, v34 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v35 "); @@ -9211,7 +9090,6 @@ mod hir_opt_tests { v25:ArrayExact = GuardType v10, ArrayExact v26:CInt64 = ArrayLength v25 v27:Fixnum = BoxFixnum v26 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -9243,7 +9121,6 @@ mod hir_opt_tests { v25:ArrayExact = GuardType v10, ArrayExact v26:CInt64 = ArrayLength v25 v27:Fixnum = BoxFixnum v26 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -9312,7 +9189,6 @@ mod hir_opt_tests { v33:CInt64[0] = Const CInt64(0) v34:CInt64 = GuardGreaterEq v32, v33 v35:Fixnum = StringGetbyte v28, v32 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v35 "); @@ -9352,7 +9228,6 @@ mod hir_opt_tests { v36:CInt64 = GuardLess v34, v35 v37:CInt64[0] = Const CInt64(0) v38:CInt64 = GuardGreaterEq v36, v37 - IncrCounter inline_cfunc_optimized_send_count v23:Fixnum[5] = Const Value(5) CheckInterrupts Return v23 @@ -9398,7 +9273,6 @@ mod hir_opt_tests { v40:CUInt64 = LoadField v32, :_rbasic_flags@0x1041 v41:CUInt64 = GuardNoBitsSet v40, RUBY_FL_FREEZE=CUInt64(2048) v42:Fixnum = StringSetbyteFixnum v32, v33, v34 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v34 "); @@ -9445,7 +9319,6 @@ mod hir_opt_tests { v40:CUInt64 = LoadField v32, :_rbasic_flags@0x1041 v41:CUInt64 = GuardNoBitsSet v40, RUBY_FL_FREEZE=CUInt64(2048) v42:Fixnum = StringSetbyteFixnum v32, v33, v34 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v34 "); @@ -9515,7 +9388,6 @@ mod hir_opt_tests { v27:CInt64[0] = Const CInt64(0) v28:CBool = IsBitEqual v26, v27 v29:BoolExact = BoxBool v28 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -9547,7 +9419,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, empty?@0x1010, cme:0x1018) v29:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v20:Fixnum[4] = Const Value(4) CheckInterrupts Return v20 @@ -9579,7 +9450,6 @@ mod hir_opt_tests { v24:Fixnum = GuardType v10, Fixnum v25:Fixnum[1] = Const Value(1) v26:Fixnum = FixnumAdd v24, v25 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -9639,7 +9509,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, <<@0x1010, cme:0x1018) v26:Fixnum = GuardType v10, Fixnum v27:Fixnum = FixnumLShift v26, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v27 "); @@ -9760,7 +9629,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, >>@0x1010, cme:0x1018) v25:Fixnum = GuardType v10, Fixnum v26:Fixnum = FixnumRShift v25, v15 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -9881,7 +9749,6 @@ mod hir_opt_tests { v29:StringExact = GuardType v12, StringExact v30:String = GuardType v13, String v31:StringExact = StringAppend v29, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -9914,7 +9781,6 @@ mod hir_opt_tests { v29:StringExact = GuardType v12, StringExact v30:Fixnum = GuardType v13, Fixnum v31:StringExact = StringAppendCodepoint v29, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -9949,7 +9815,6 @@ mod hir_opt_tests { v29:StringExact = GuardType v12, StringExact v30:String = GuardType v13, String v31:StringExact = StringAppend v29, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -10065,10 +9930,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, ascii_only?@0x1010, cme:0x1018) v24:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count - v26:BoolExact = CCall v24, :String#ascii_only?@0x1040 + v25:BoolExact = CCall v24, :String#ascii_only?@0x1040 CheckInterrupts - Return v26 + Return v25 "); } @@ -10146,7 +10010,6 @@ mod hir_opt_tests { v27:Fixnum = GuardType v12, Fixnum v28:Fixnum = GuardType v13, Fixnum v29:Fixnum = FixnumXor v27, v28 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v29 "); @@ -10180,7 +10043,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1008, ^@0x1010, cme:0x1018) v31:Fixnum = GuardType v12, Fixnum v32:Fixnum = GuardType v13, Fixnum - IncrCounter inline_cfunc_optimized_send_count v23:Fixnum[42] = Const Value(42) CheckInterrupts Return v23 @@ -10321,10 +10183,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1008) PatchPoint MethodRedefined(Hash@0x1008, size@0x1010, cme:0x1018) v25:HashExact = GuardType v10, HashExact - IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall v25, :Hash#size@0x1040 + v26:Fixnum = CCall v25, :Hash#size@0x1040 CheckInterrupts - Return v27 + Return v26 "); } @@ -10354,7 +10215,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Hash@0x1008) PatchPoint MethodRedefined(Hash@0x1008, size@0x1010, cme:0x1018) v29:HashExact = GuardType v10, HashExact - IncrCounter inline_cfunc_optimized_send_count v20:Fixnum[5] = Const Value(5) CheckInterrupts Return v20 @@ -10390,7 +10250,6 @@ mod hir_opt_tests { v26:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v30:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -10425,7 +10284,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(C@0x1010, respond_to_missing?@0x1048, cme:0x1050) PatchPoint MethodRedefined(C@0x1010, foo@0x1078, cme:0x1080) v32:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10461,7 +10319,6 @@ mod hir_opt_tests { v26:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v30:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -10498,7 +10355,6 @@ mod hir_opt_tests { v28:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v32:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10535,7 +10391,6 @@ mod hir_opt_tests { v28:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v32:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10572,7 +10427,6 @@ mod hir_opt_tests { v28:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v32:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10608,7 +10462,6 @@ mod hir_opt_tests { v28:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v32:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10644,7 +10497,6 @@ mod hir_opt_tests { v28:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] PatchPoint MethodRedefined(C@0x1010, foo@0x1048, cme:0x1050) v32:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10679,7 +10531,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(C@0x1010, respond_to_missing?@0x1048, cme:0x1050) PatchPoint MethodRedefined(C@0x1010, foo@0x1078, cme:0x1080) v32:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v32 "); @@ -10740,7 +10591,6 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v18 "); @@ -10767,10 +10617,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:StringExact[VALUE(0x1038)] = Const Value(VALUE(0x1038)) + v20:StringExact[VALUE(0x1038)] = Const Value(VALUE(0x1038)) CheckInterrupts - Return v21 + Return v20 "); } @@ -10794,10 +10643,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:NilClass = Const Value(nil) + v20:NilClass = Const Value(nil) CheckInterrupts - Return v21 + Return v20 "); } @@ -10821,10 +10669,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:TrueClass = Const Value(true) + v20:TrueClass = Const Value(true) CheckInterrupts - Return v21 + Return v20 "); } @@ -10848,10 +10695,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:FalseClass = Const Value(false) + v20:FalseClass = Const Value(false) CheckInterrupts - Return v21 + Return v20 "); } @@ -10875,10 +10721,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:Fixnum[0] = Const Value(0) + v20:Fixnum[0] = Const Value(0) CheckInterrupts - Return v21 + Return v20 "); } @@ -10902,10 +10747,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v21:Fixnum[1] = Const Value(1) + v20:Fixnum[1] = Const Value(1) CheckInterrupts - Return v21 + Return v20 "); } @@ -10930,7 +10774,6 @@ mod hir_opt_tests { v11:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v20:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v11 "); @@ -10959,7 +10802,6 @@ mod hir_opt_tests { v15:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v24:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v15 "); @@ -10994,17 +10836,14 @@ mod hir_opt_tests { bb3(v8:BasicObject, v9:NilClass): v13:ArrayExact = NewArray v19:ArrayExact = ToArray v13 - IncrCounter complex_arg_pass_caller_splat v21:BasicObject = Send v8, :foo, v19 # SendFallbackReason: Complex argument passing v25:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v26:StringExact = StringCopy v25 PatchPoint NoEPEscape(test) v31:ArrayExact = ToArray v13 - IncrCounter complex_arg_pass_caller_splat v33:BasicObject = Send v26, :display, v31 # SendFallbackReason: Complex argument passing PatchPoint NoEPEscape(test) v41:ArrayExact = ToArray v13 - IncrCounter complex_arg_pass_caller_splat v43:BasicObject = Send v8, :itself, v41 # SendFallbackReason: Complex argument passing CheckInterrupts Return v43 @@ -11033,7 +10872,6 @@ mod hir_opt_tests { bb3(v9:BasicObject, v10:BasicObject): PatchPoint MethodRedefined(Symbol@0x1008, to_sym@0x1010, cme:0x1018) v22:StaticSymbol = GuardType v10, StaticSymbol - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v22 "); @@ -11061,7 +10899,6 @@ mod hir_opt_tests { bb3(v9:BasicObject, v10:BasicObject): PatchPoint MethodRedefined(Integer@0x1008, to_i@0x1010, cme:0x1018) v22:Fixnum = GuardType v10, Fixnum - IncrCounter inline_iseq_optimized_send_count CheckInterrupts Return v22 "); @@ -11090,10 +10927,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[123] = Const Value(123) + v21:Fixnum[123] = Const Value(123) CheckInterrupts - Return v22 + Return v21 "); } @@ -11120,10 +10956,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[123] = Const Value(123) + v21:Fixnum[123] = Const Value(123) CheckInterrupts - Return v22 + Return v21 "); } @@ -11150,10 +10985,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[123] = Const Value(123) + v21:Fixnum[123] = Const Value(123) CheckInterrupts - Return v22 + Return v21 "); } @@ -11212,7 +11046,6 @@ mod hir_opt_tests { v29:StringExact = GuardType v12, StringExact v30:String = GuardType v13, String v31:BoolExact = CCall v29, :String#==@0x1040, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v31 "); @@ -11247,7 +11080,6 @@ mod hir_opt_tests { v29:StringSubclass[class_exact:C] = GuardType v12, StringSubclass[class_exact:C] v30:String = GuardType v13, String v31:BoolExact = CCall v29, :String#==@0x1040, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v31 "); @@ -11282,7 +11114,6 @@ mod hir_opt_tests { v29:StringExact = GuardType v12, StringExact v30:String = GuardType v13, String v31:BoolExact = CCall v29, :String#==@0x1040, v30 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v31 "); @@ -11315,7 +11146,6 @@ mod hir_opt_tests { v28:StringExact = GuardType v12, StringExact v29:String = GuardType v13, String v30:BoolExact = CCall v28, :String#==@0x1040, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11350,7 +11180,6 @@ mod hir_opt_tests { v28:StringSubclass[class_exact:C] = GuardType v12, StringSubclass[class_exact:C] v29:String = GuardType v13, String v30:BoolExact = CCall v28, :String#==@0x1040, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11385,7 +11214,6 @@ mod hir_opt_tests { v28:StringExact = GuardType v12, StringExact v29:String = GuardType v13, String v30:BoolExact = CCall v28, :String#==@0x1040, v29 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11416,10 +11244,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, size@0x1010, cme:0x1018) v25:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall v25, :String#size@0x1040 + v26:Fixnum = CCall v25, :String#size@0x1040 CheckInterrupts - Return v27 + Return v26 "); } @@ -11449,7 +11276,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, size@0x1010, cme:0x1018) v29:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v20:Fixnum[5] = Const Value(5) CheckInterrupts Return v20 @@ -11483,7 +11309,6 @@ mod hir_opt_tests { v24:StringExact = GuardType v10, StringExact v25:CInt64 = LoadField v24, :len@0x1040 v26:Fixnum = BoxFixnum v25 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v26 "); @@ -11515,7 +11340,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, bytesize@0x1010, cme:0x1018) v28:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[5] = Const Value(5) CheckInterrupts Return v19 @@ -11547,10 +11371,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, length@0x1010, cme:0x1018) v25:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall v25, :String#length@0x1040 + v26:Fixnum = CCall v25, :String#length@0x1040 CheckInterrupts - Return v27 + Return v26 "); } @@ -11580,7 +11403,6 @@ mod hir_opt_tests { PatchPoint NoEPEscape(test) PatchPoint MethodRedefined(Class@0x1018, ===@0x1020, cme:0x1028) v30:BoolExact = IsA v10, v27 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11611,10 +11433,9 @@ mod hir_opt_tests { v27:ModuleExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) PatchPoint NoEPEscape(test) PatchPoint MethodRedefined(Module@0x1018, ===@0x1020, cme:0x1028) - IncrCounter inline_cfunc_optimized_send_count - v31:BoolExact = CCall v27, :Module#===@0x1050, v10 + v30:BoolExact = CCall v27, :Module#===@0x1050, v10 CheckInterrupts - Return v31 + Return v30 "); } @@ -11645,7 +11466,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(String@0x1010, is_a?@0x1011, cme:0x1018) v29:StringExact = GuardType v10, StringExact v30:BoolExact = IsA v29, v25 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11712,7 +11532,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1018) PatchPoint MethodRedefined(String@0x1018, is_a?@0x1020, cme:0x1028) v33:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v21:Fixnum[5] = Const Value(5) CheckInterrupts Return v21 @@ -11747,7 +11566,6 @@ mod hir_opt_tests { v31:Class[Integer@0x1010] = Const Value(VALUE(0x1010)) PatchPoint NoEPEscape(test) PatchPoint MethodRedefined(Class@0x1018, ===@0x1020, cme:0x1028) - IncrCounter inline_cfunc_optimized_send_count v23:Fixnum[5] = Const Value(5) CheckInterrupts Return v23 @@ -11781,7 +11599,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(String@0x1010, kind_of?@0x1011, cme:0x1018) v29:StringExact = GuardType v10, StringExact v30:BoolExact = IsA v29, v25 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v30 "); @@ -11848,7 +11665,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1018) PatchPoint MethodRedefined(String@0x1018, kind_of?@0x1020, cme:0x1028) v33:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v21:Fixnum[5] = Const Value(5) CheckInterrupts Return v21 @@ -11877,10 +11693,9 @@ mod hir_opt_tests { PatchPoint StableConstantNames(0x1000, Integer) v22:Class[Integer@0x1008] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(Integer@0x1008, is_a?@0x1009, cme:0x1010) - v27:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v26:TrueClass = Const Value(true) CheckInterrupts - Return v27 + Return v26 "); } @@ -11906,10 +11721,9 @@ mod hir_opt_tests { PatchPoint StableConstantNames(0x1000, String) v22:Class[String@0x1008] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(Integer@0x1010, is_a?@0x1018, cme:0x1020) - v27:FalseClass = Const Value(false) - IncrCounter inline_cfunc_optimized_send_count + v26:FalseClass = Const Value(false) CheckInterrupts - Return v27 + Return v26 "); } @@ -11939,10 +11753,9 @@ mod hir_opt_tests { v25:Class[Array@0x1018] = Const Value(VALUE(0x1018)) PatchPoint NoSingletonClass(C@0x1020) PatchPoint MethodRedefined(C@0x1020, is_a?@0x1028, cme:0x1030) - v31:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v30:TrueClass = Const Value(true) CheckInterrupts - Return v31 + Return v30 "); } @@ -11972,10 +11785,9 @@ mod hir_opt_tests { v25:Class[C@0x1018] = Const Value(VALUE(0x1018)) PatchPoint NoSingletonClass(C@0x1018) PatchPoint MethodRedefined(C@0x1018, is_a?@0x1019, cme:0x1020) - v31:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v30:TrueClass = Const Value(true) CheckInterrupts - Return v31 + Return v30 "); } @@ -12003,10 +11815,9 @@ mod hir_opt_tests { PatchPoint StableConstantNames(0x1010, Symbol) v25:Class[Symbol@0x1018] = Const Value(VALUE(0x1018)) PatchPoint MethodRedefined(Symbol@0x1018, is_a?@0x1019, cme:0x1020) - v30:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v29:TrueClass = Const Value(true) CheckInterrupts - Return v30 + Return v29 "); } @@ -12029,9 +11840,6 @@ mod hir_opt_tests { Jump bb3(v4) bb3(v6:BasicObject): v11:Fixnum[1] = Const Value(1) - IncrCounter complex_arg_pass_param_rest - IncrCounter complex_arg_pass_param_block - IncrCounter complex_arg_pass_param_kwrest v13:BasicObject = Send v6, :fancy, v11 # SendFallbackReason: Complex argument passing CheckInterrupts Return v13 @@ -12056,7 +11864,6 @@ mod hir_opt_tests { v4:BasicObject = LoadArg :self@0 Jump bb3(v4) bb3(v6:BasicObject): - IncrCounter complex_arg_pass_param_forwardable v11:BasicObject = Send v6, :forwardable # SendFallbackReason: Complex argument passing CheckInterrupts Return v11 @@ -12089,7 +11896,6 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1008) PatchPoint MethodRedefined(String@0x1008, length@0x1010, cme:0x1018) v29:StringExact = GuardType v10, StringExact - IncrCounter inline_cfunc_optimized_send_count v20:Fixnum[4] = Const Value(4) CheckInterrupts Return v20 @@ -12130,15 +11936,12 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1000) PatchPoint MethodRedefined(C@0x1000, class@0x1008, cme:0x1010) v43:ObjectSubclass[class_exact:C] = GuardType v6, ObjectSubclass[class_exact:C] - IncrCounter inline_iseq_optimized_send_count - v47:Class[C@0x1000] = Const Value(VALUE(0x1000)) - IncrCounter inline_cfunc_optimized_send_count + v46:Class[C@0x1000] = Const Value(VALUE(0x1000)) v13:StaticSymbol[:_lex_actions] = Const Value(VALUE(0x1038)) v15:TrueClass = Const Value(true) PatchPoint MethodRedefined(Class@0x1040, respond_to?@0x1048, cme:0x1050) PatchPoint MethodRedefined(Class@0x1040, _lex_actions@0x1078, cme:0x1080) - v53:TrueClass = Const Value(true) - IncrCounter inline_cfunc_optimized_send_count + v51:TrueClass = Const Value(true) CheckInterrupts v26:StaticSymbol[:CORRECT] = Const Value(VALUE(0x10a8)) Return v26 @@ -12169,14 +11972,11 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, class@0x1010, cme:0x1018) v25:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] - IncrCounter inline_iseq_optimized_send_count - v29:Class[C@0x1008] = Const Value(VALUE(0x1008)) - IncrCounter inline_cfunc_optimized_send_count + v28:Class[C@0x1008] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(Class@0x1040, name@0x1048, cme:0x1050) - IncrCounter inline_cfunc_optimized_send_count - v34:StringExact|NilClass = CCall v29, :Module#name@0x1078 + v31:StringExact|NilClass = CCall v28, :Module#name@0x1078 CheckInterrupts - Return v34 + Return v31 "); } @@ -12204,11 +12004,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, class@0x1010, cme:0x1018) v23:ObjectSubclass[class_exact:C] = GuardType v10, ObjectSubclass[class_exact:C] - IncrCounter inline_iseq_optimized_send_count - v27:Class[C@0x1008] = Const Value(VALUE(0x1008)) - IncrCounter inline_cfunc_optimized_send_count + v26:Class[C@0x1008] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v27 + Return v26 "); } @@ -12231,11 +12029,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): v10:Fixnum[5] = Const Value(5) PatchPoint MethodRedefined(Integer@0x1000, class@0x1008, cme:0x1010) - IncrCounter inline_iseq_optimized_send_count - v22:Class[Integer@0x1000] = Const Value(VALUE(0x1000)) - IncrCounter inline_cfunc_optimized_send_count + v21:Class[Integer@0x1000] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v22 + Return v21 "); } @@ -12258,11 +12054,9 @@ mod hir_opt_tests { bb3(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, class@0x1008, cme:0x1010) v18:ObjectSubclass[class_exact*:Object@VALUE(0x1000)] = GuardType v6, ObjectSubclass[class_exact*:Object@VALUE(0x1000)] - IncrCounter inline_iseq_optimized_send_count - v22:Class[Object@0x1038] = Const Value(VALUE(0x1038)) - IncrCounter inline_cfunc_optimized_send_count + v21:Class[Object@0x1038] = Const Value(VALUE(0x1038)) CheckInterrupts - Return v22 + Return v21 "); } @@ -12719,16 +12513,15 @@ mod hir_opt_tests { v27:ObjectSubclass[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint NoSingletonClass(TestNestedAccess@0x1010) PatchPoint MethodRedefined(TestNestedAccess@0x1010, x@0x1018, cme:0x1020) - v52:Fixnum[100] = Const Value(100) + v51:Fixnum[100] = Const Value(100) PatchPoint StableConstantNames(0x1048, NESTED_FROZEN) v33:ObjectSubclass[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(TestNestedAccess@0x1010, y@0x1050, cme:0x1058) - v54:Fixnum[200] = Const Value(200) + v53:Fixnum[200] = Const Value(200) PatchPoint MethodRedefined(Integer@0x1080, +@0x1088, cme:0x1090) - v55:Fixnum[300] = Const Value(300) - IncrCounter inline_cfunc_optimized_send_count + v54:Fixnum[300] = Const Value(300) CheckInterrupts - Return v55 + Return v54 "); } @@ -12757,7 +12550,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(String@0x1010, bytesize@0x1018, cme:0x1020) v24:CInt64 = LoadField v20, :len@0x1048 v25:Fixnum = BoxFixnum v24 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v25 "); @@ -12786,10 +12578,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1000) PatchPoint MethodRedefined(C@0x1000, secret@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact:C] = GuardType v6, ObjectSubclass[class_exact:C] - IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[42] = Const Value(42) + v21:Fixnum[42] = Const Value(42) CheckInterrupts - Return v22 + Return v21 "); } @@ -12846,7 +12637,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(BasicObject@0x1000, initialize@0x1008, cme:0x1010) v21:BasicObjectExact = GuardType v6, BasicObjectExact v22:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v22 "); @@ -12930,10 +12720,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(C@0x1000) PatchPoint MethodRedefined(C@0x1000, secret@0x1008, cme:0x1010) v19:ObjectSubclass[class_exact:C] = GuardType v6, ObjectSubclass[class_exact:C] - IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[42] = Const Value(42) + v21:Fixnum[42] = Const Value(42) CheckInterrupts - Return v22 + Return v21 "); } @@ -13126,7 +12915,6 @@ mod hir_opt_tests { PatchPoint MethodRedefined(Integer@0x1070, +@0x1078, cme:0x1080) v36:Fixnum = GuardType v33, Fixnum v37:Fixnum = FixnumAdd v36, v18 - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v37 "); @@ -13247,10 +13035,9 @@ mod hir_opt_tests { v20:CallableMethodEntry[VALUE(0x1040)] = GuardBitEquals v19, Value(VALUE(0x1040)) v21:RubyValue = LoadField v18, :_ep_specval@0x1048 v22:FalseClass = GuardBitEquals v21, Value(false) - IncrCounter inline_cfunc_optimized_send_count - v24:Fixnum = CCall v6, :Hash#size@0x1050 + v23:Fixnum = CCall v6, :Hash#size@0x1050 CheckInterrupts - Return v24 + Return v23 "); } @@ -13283,7 +13070,6 @@ mod hir_opt_tests { v21:RubyValue = LoadField v18, :_ep_specval@0x1048 v22:FalseClass = GuardBitEquals v21, Value(false) v23:NilClass = Const Value(nil) - IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v23 "); @@ -13586,23 +13372,20 @@ mod hir_opt_tests { bb5(v16:BasicObject, v17:BasicObject, v18:BasicObject): PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, foo@0x1010, cme:0x1018) - IncrCounter inline_iseq_optimized_send_count - v56:Fixnum[3] = Const Value(3) - Jump bb4(v16, v17, v56) + v55:Fixnum[3] = Const Value(3) + Jump bb4(v16, v17, v55) bb6(v25:BasicObject, v26:BasicObject, v27:BasicObject): PatchPoint NoSingletonClass(D@0x1040) PatchPoint MethodRedefined(D@0x1040, foo@0x1010, cme:0x1048) - IncrCounter inline_iseq_optimized_send_count - v58:Fixnum[4] = Const Value(4) - Jump bb4(v25, v26, v58) + v56:Fixnum[4] = Const Value(4) + Jump bb4(v25, v26, v56) bb4(v35:BasicObject, v36:BasicObject, v37:BasicObject): v40:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Integer@0x1070, +@0x1078, cme:0x1080) - v61:Fixnum = GuardType v37, Fixnum - v62:Fixnum = FixnumAdd v61, v40 - IncrCounter inline_cfunc_optimized_send_count + v59:Fixnum = GuardType v37, Fixnum + v60:Fixnum = FixnumAdd v59, v40 CheckInterrupts - Return v62 + Return v60 "); } @@ -13642,12 +13425,10 @@ mod hir_opt_tests { v20:ObjectSubclass[class_exact:C] = RefineType v18, ObjectSubclass[class_exact:C] PatchPoint NoSingletonClass(C@0x1008) PatchPoint MethodRedefined(C@0x1008, itself@0x1010, cme:0x1018) - IncrCounter inline_cfunc_optimized_send_count Jump bb4(v16, v17, v20) bb6(v25:BasicObject, v26:BasicObject, v27:BasicObject): v29:Fixnum = RefineType v27, Fixnum PatchPoint MethodRedefined(Integer@0x1040, itself@0x1010, cme:0x1018) - IncrCounter inline_cfunc_optimized_send_count Jump bb4(v25, v26, v29) bb4(v35:BasicObject, v36:BasicObject, v37:BasicObject): CheckInterrupts @@ -13703,7 +13484,6 @@ mod hir_opt_tests { v28:HeapBasicObject = RefineType v21, HeapBasicObject v31:Fixnum[4] = Const Value(4) PatchPoint SingleRactorMode - IncrCounter setivar_fallback_new_shape_needs_extension SetIvar v28, :@d, v31 CheckInterrupts Return v31 @@ -13847,22 +13627,19 @@ mod hir_opt_tests { v85:CInt64 = ArrayLength v84 v86:Fixnum = BoxFixnum v85 v87:BoolExact = FixnumGe v49, v86 - IncrCounter inline_cfunc_optimized_send_count v54:CBool = Test v87 IfFalse v54, bb7(v48, v49) CheckInterrupts Return v48 bb7(v67:BasicObject, v68:Fixnum): - v89:Array = RefineType v67, Array - v90:CInt64 = UnboxFixnum v68 - v91:BasicObject = ArrayAref v89, v90 - IncrCounter inline_cfunc_optimized_send_count - v74:BasicObject = InvokeBlock, v91 # SendFallbackReason: Uncategorized(invokeblock) - v93:Fixnum[1] = Const Value(1) - v94:Fixnum = FixnumAdd v68, v93 - IncrCounter inline_cfunc_optimized_send_count + v88:Array = RefineType v67, Array + v89:CInt64 = UnboxFixnum v68 + v90:BasicObject = ArrayAref v88, v89 + v74:BasicObject = InvokeBlock, v90 # SendFallbackReason: Uncategorized(invokeblock) + v91:Fixnum[1] = Const Value(1) + v92:Fixnum = FixnumAdd v68, v91 PatchPoint NoEPEscape(each) - Jump bb8(v67, v94) + Jump bb8(v67, v92) "); } @@ -13953,8 +13730,7 @@ mod hir_opt_tests { v26:Fixnum[5] = Const Value(5) PatchPoint NoEPEscape(initialize) PatchPoint MethodRedefined(Integer@0x1008, +@0x1010, cme:0x1018) - v65:Fixnum[6] = Const Value(6) - IncrCounter inline_cfunc_optimized_send_count + v64:Fixnum[6] = Const Value(6) PatchPoint SingleRactorMode WriteBarrier v23, v16 CheckInterrupts diff --git a/zjit/src/hir/tests.rs b/zjit/src/hir/tests.rs index 20fe04507640de..b26f5a989c1374 100644 --- a/zjit/src/hir/tests.rs +++ b/zjit/src/hir/tests.rs @@ -50,12 +50,10 @@ mod snapshot_tests { v12:Fixnum[2] = Const Value(2) v13:Any = Snapshot FrameState { pc: 0x1008, stack: [v10, v12], locals: [] } PatchPoint MethodRedefined(Integer@0x1010, +@0x1018, cme:0x1020) - IncrCounter inline_cfunc_optimized_send_count - v35:Fixnum[6] = Const Value(6) - IncrCounter inline_cfunc_optimized_send_count - v21:Any = Snapshot FrameState { pc: 0x1048, stack: [v35], locals: [] } + v33:Fixnum[6] = Const Value(6) + v21:Any = Snapshot FrameState { pc: 0x1048, stack: [v33], locals: [] } CheckInterrupts - Return v35 + Return v33 "); } diff --git a/zjit/src/options.rs b/zjit/src/options.rs index 9121e49bff5e1f..cb868e4aca2107 100644 --- a/zjit/src/options.rs +++ b/zjit/src/options.rs @@ -457,6 +457,13 @@ pub fn set_call_threshold(call_threshold: CallThreshold) { update_profile_threshold(); } +/// Enable --zjit-stats for testing +#[cfg(test)] +pub fn enable_zjit_stats() { + rb_zjit_prepare_options(); + unsafe { OPTIONS.as_mut() }.unwrap().stats = true; +} + /// Print YJIT options for `ruby --help`. `width` is width of option parts, and /// `columns` is indent width of descriptions. #[unsafe(no_mangle)]