diff options
| author | Max Bernstein <rubybugs@bernsteinbear.com> | 2025-11-10 07:51:56 -0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2025-11-10 15:51:56 +0000 |
| commit | fb5f10e0d6fbf5b3f7f13b392e598ccd7c32c2bc (patch) | |
| tree | 15e3968f7e7c8d1fc82c164ac13a2a01d63e40cc | |
| parent | b539cd2a33dae904e55fd8f054349b9ff076793a (diff) | |
ZJIT: Snapshot once per YARV insn (#15082)
This is roughly net-neutral for the number of instructions created but
at least cenetralizes where the Snapshot is made.
Previously, we might have multiple Snapshot per YARV instruction
depending on if it had event flags, if the body of the instruction also
needed a Snapshot, etc.
| -rw-r--r-- | zjit/src/hir.rs | 90 | ||||
| -rw-r--r-- | zjit/src/hir/opt_tests.rs | 1448 | ||||
| -rw-r--r-- | zjit/src/hir/tests.rs | 650 |
3 files changed, 1065 insertions, 1123 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs index 46b2bc905e..b8c7826aea 100644 --- a/zjit/src/hir.rs +++ b/zjit/src/hir.rs @@ -4585,8 +4585,8 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { unsafe extern "C" { fn rb_iseq_event_flags(iseq: IseqPtr, pos: usize) -> rb_event_flag_t; } + let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state.clone() }); if unsafe { rb_iseq_event_flags(iseq, insn_idx as usize) } != 0 { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state.clone() }); fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::NoTracePoint, state: exit_id }); } @@ -4612,26 +4612,22 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } YARVINSN_putstring => { let val = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::StringCopy { val, chilled: false, state: exit_id }); state.stack_push(insn_id); } YARVINSN_putchilledstring => { let val = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::StringCopy { val, chilled: true, state: exit_id }); state.stack_push(insn_id); } YARVINSN_putself => { state.stack_push(self_param); } YARVINSN_intern => { let val = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::StringIntern { val, state: exit_id }); state.stack_push(insn_id); } YARVINSN_concatstrings => { let count = get_arg(pc, 0).as_u32(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let strings = state.stack_pop_n(count as usize)?; let insn_id = fun.push_insn(block, Insn::StringConcat { strings, state: exit_id }); state.stack_push(insn_id); @@ -4640,14 +4636,12 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { // First arg contains the options (multiline, extended, ignorecase) used to create the regexp let opt = get_arg(pc, 0).as_usize(); let count = get_arg(pc, 1).as_usize(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let values = state.stack_pop_n(count)?; let insn_id = fun.push_insn(block, Insn::ToRegexp { opt, values, state: exit_id }); state.stack_push(insn_id); } YARVINSN_newarray => { let count = get_arg(pc, 0).as_usize(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let elements = state.stack_pop_n(count)?; state.stack_push(fun.push_insn(block, Insn::NewArray { elements, state: exit_id })); } @@ -4655,7 +4649,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let count = get_arg(pc, 0).as_usize(); let method = get_arg(pc, 1).as_u32(); let elements = state.stack_pop_n(count)?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let (bop, insn) = match method { VM_OPT_NEWARRAY_SEND_MAX => (BOP_MAX, Insn::ArrayMax { elements, state: exit_id }), VM_OPT_NEWARRAY_SEND_INCLUDE_P => { @@ -4679,7 +4672,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } YARVINSN_duparray => { let val = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::ArrayDup { val, state: exit_id }); state.stack_push(insn_id); } @@ -4691,7 +4683,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { break; } let target = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let bop = match method_id { x if x == ID!(include_p).0 => BOP_INCLUDE_P, _ => { @@ -4710,7 +4701,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_newhash => { let count = get_arg(pc, 0).as_usize(); assert!(count % 2 == 0, "newhash count should be even"); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let mut elements = vec![]; for _ in 0..(count/2) { let value = state.stack_pop()?; @@ -4723,7 +4713,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } YARVINSN_duphash => { let val = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::HashDup { val, state: exit_id }); state.stack_push(insn_id); } @@ -4731,7 +4720,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flag = get_arg(pc, 0); let result_must_be_mutable = flag.test(); let val = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let obj = if result_must_be_mutable { fun.push_insn(block, Insn::ToNewArray { val, state: exit_id }) } else { @@ -4742,7 +4730,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_concattoarray => { let right = state.stack_pop()?; let left = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let right_array = fun.push_insn(block, Insn::ToArray { val: right, state: exit_id }); fun.push_insn(block, Insn::ArrayExtend { left, right: right_array, state: exit_id }); state.stack_push(left); @@ -4751,7 +4738,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let count = get_arg(pc, 0).as_usize(); let vals = state.stack_pop_n(count)?; let array = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); for val in vals.into_iter() { fun.push_insn(block, Insn::ArrayPush { array, val, state: exit_id }); } @@ -4769,14 +4755,12 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let obj = get_arg(pc, 1); let pushval = get_arg(pc, 2); let v = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); state.stack_push(fun.push_insn(block, Insn::Defined { op_type, obj, pushval, v, state: exit_id })); } YARVINSN_definedivar => { // (ID id, IVC ic, VALUE pushval) let id = ID(get_arg(pc, 0).as_u64()); let pushval = get_arg(pc, 2); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); state.stack_push(fun.push_insn(block, Insn::DefinedIvar { self_val: self_param, id, pushval, state: exit_id })); } YARVINSN_checkkeyword => { @@ -4801,7 +4785,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { state.stack_push(fun.push_insn(block, Insn::GetConstantPath { ic, state: snapshot })); } YARVINSN_branchunless => { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::CheckInterrupts { state: exit_id }); let offset = get_arg(pc, 0).as_i64(); let val = state.stack_pop()?; @@ -4815,7 +4798,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { queue.push_back((state.clone(), target, target_idx, local_inval)); } YARVINSN_branchif => { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::CheckInterrupts { state: exit_id }); let offset = get_arg(pc, 0).as_i64(); let val = state.stack_pop()?; @@ -4829,7 +4811,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { queue.push_back((state.clone(), target, target_idx, local_inval)); } YARVINSN_branchnil => { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::CheckInterrupts { state: exit_id }); let offset = get_arg(pc, 0).as_i64(); let val = state.stack_pop()?; @@ -4856,7 +4837,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { // TODO: Guard on a profiled class and add a patch point for #new redefinition let argc = unsafe { vm_ci_argc((*cd).ci) } as usize; let val = state.stack_topn(argc)?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let test_id = fun.push_insn(block, Insn::IsMethodCfunc { val, cd, cfunc: rb_class_new_instance_pass_kw as *const u8, state: exit_id }); // Jump to the fallback block if it's not the expected function. @@ -4876,7 +4856,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } YARVINSN_jump => { let offset = get_arg(pc, 0).as_i64(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::CheckInterrupts { state: exit_id }); let target_idx = insn_idx_at_offset(insn_idx, offset); let target = insn_idx_to_block[&target_idx]; @@ -4942,7 +4921,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } YARVINSN_getblockparamproxy => { let level = get_arg(pc, 1).as_u32(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::GuardBlockParamProxy { level, state: exit_id }); // TODO(Shopify/ruby#753): GC root, so we should be able to avoid unnecessary GC tracing state.stack_push(fun.push_insn(block, Insn::Const { val: Const::Value(unsafe { rb_block_param_proxy }) })); @@ -4987,7 +4965,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flags = unsafe { rb_vm_ci_flag(call_info) }; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle the call type; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } @@ -4995,14 +4972,12 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let args = state.stack_pop_n(argc as usize)?; let recv = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let send = fun.push_insn(block, Insn::SendWithoutBlock { recv, cd, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(send); } YARVINSN_opt_hash_freeze => { let klass = HASH_REDEFINED_OP_FLAG; let bop = BOP_FREEZE; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); if unsafe { rb_BASIC_OP_UNREDEFINED_P(bop, klass) } { fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::BOPRedefined { klass, bop }, state: exit_id }); let recv = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); @@ -5015,7 +4990,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_opt_ary_freeze => { let klass = ARRAY_REDEFINED_OP_FLAG; let bop = BOP_FREEZE; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); if unsafe { rb_BASIC_OP_UNREDEFINED_P(bop, klass) } { fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::BOPRedefined { klass, bop }, state: exit_id }); let recv = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); @@ -5028,7 +5002,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_opt_str_freeze => { let klass = STRING_REDEFINED_OP_FLAG; let bop = BOP_FREEZE; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); if unsafe { rb_BASIC_OP_UNREDEFINED_P(bop, klass) } { fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::BOPRedefined { klass, bop }, state: exit_id }); let recv = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); @@ -5041,7 +5014,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_opt_str_uminus => { let klass = STRING_REDEFINED_OP_FLAG; let bop = BOP_UMINUS; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); if unsafe { rb_BASIC_OP_UNREDEFINED_P(bop, klass) } { fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::BOPRedefined { klass, bop }, state: exit_id }); let recv = fun.push_insn(block, Insn::Const { val: Const::Value(get_arg(pc, 0)) }); @@ -5052,13 +5024,11 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } } YARVINSN_leave => { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::CheckInterrupts { state: exit_id }); fun.push_insn(block, Insn::Return { val: state.stack_pop()? }); break; // Don't enqueue the next block as a successor } YARVINSN_throw => { - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::Throw { throw_state: get_arg(pc, 0).as_u32(), val: state.stack_pop()?, state: exit_id }); break; // Don't enqueue the next block as a successor } @@ -5095,7 +5065,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flags = unsafe { rb_vm_ci_flag(call_info) }; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle tailcall; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } @@ -5103,7 +5072,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let args = state.stack_pop_n(argc as usize)?; let recv = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let send = fun.push_insn(block, Insn::SendWithoutBlock { recv, cd, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(send); } @@ -5114,7 +5082,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flags = unsafe { rb_vm_ci_flag(call_info) }; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle tailcall; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } @@ -5123,7 +5090,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let args = state.stack_pop_n(argc as usize + usize::from(block_arg))?; let recv = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let send = fun.push_insn(block, Insn::Send { recv, cd, blockiseq, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(send); @@ -5147,7 +5113,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let forwarding = (flags & VM_CALL_FORWARDING) != 0; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle the call type; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } @@ -5155,7 +5120,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let args = state.stack_pop_n(argc as usize + usize::from(forwarding))?; let recv = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let send_forward = fun.push_insn(block, Insn::SendForward { recv, cd, blockiseq, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(send_forward); @@ -5175,7 +5139,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flags = unsafe { rb_vm_ci_flag(call_info) }; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle tailcall; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } @@ -5184,7 +5147,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let args = state.stack_pop_n(argc as usize + usize::from(block_arg))?; let recv = state.stack_pop()?; let blockiseq: IseqPtr = get_arg(pc, 1).as_ptr(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let result = fun.push_insn(block, Insn::InvokeSuper { recv, cd, blockiseq, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(result); @@ -5206,33 +5168,28 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flags = unsafe { rb_vm_ci_flag(call_info) }; if let Err(call_type) = unhandled_call_type(flags) { // Can't handle tailcall; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledCallType(call_type) }); break; // End the block } let argc = unsafe { vm_ci_argc((*cd).ci) }; let block_arg = (flags & VM_CALL_ARGS_BLOCKARG) != 0; let args = state.stack_pop_n(argc as usize + usize::from(block_arg))?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let result = fun.push_insn(block, Insn::InvokeBlock { cd, args, state: exit_id, reason: NotOptimizedInstruction(opcode) }); state.stack_push(result); } YARVINSN_getglobal => { let id = ID(get_arg(pc, 0).as_u64()); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let result = fun.push_insn(block, Insn::GetGlobal { id, state: exit_id }); state.stack_push(result); } YARVINSN_setglobal => { let id = ID(get_arg(pc, 0).as_u64()); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let val = state.stack_pop()?; fun.push_insn(block, Insn::SetGlobal { id, val, state: exit_id }); } YARVINSN_getinstancevariable => { let id = ID(get_arg(pc, 0).as_u64()); // ic is in arg 1 - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); // Assume single-Ractor mode to omit gen_prepare_non_leaf_call on gen_getivar // TODO: We only really need this if self_val is a class/module fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::SingleRactorMode, state: exit_id }); @@ -5242,7 +5199,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_setinstancevariable => { let id = ID(get_arg(pc, 0).as_u64()); let ic = get_arg(pc, 1).as_ptr(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); // Assume single-Ractor mode to omit gen_prepare_non_leaf_call on gen_setivar // TODO: We only really need this if self_val is a class/module fun.push_insn(block, Insn::PatchPoint { invariant: Invariant::SingleRactorMode, state: exit_id }); @@ -5252,14 +5208,12 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { YARVINSN_getclassvariable => { let id = ID(get_arg(pc, 0).as_u64()); let ic = get_arg(pc, 1).as_ptr(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let result = fun.push_insn(block, Insn::GetClassVar { id, ic, state: exit_id }); state.stack_push(result); } YARVINSN_setclassvariable => { let id = ID(get_arg(pc, 0).as_u64()); let ic = get_arg(pc, 1).as_ptr(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let val = state.stack_pop()?; fun.push_insn(block, Insn::SetClassVar { id, val, ic, state: exit_id }); } @@ -5277,7 +5231,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let flag = RangeType::from(get_arg(pc, 0).as_u32()); let high = state.stack_pop()?; let low = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let insn_id = fun.push_insn(block, Insn::NewRange { low, high, flag, state: exit_id }); state.stack_push(insn_id); } @@ -5291,8 +5244,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { args.push(self_param); args.reverse(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); - // Check if this builtin is annotated let return_type = ZJITState::get_method_annotations() .get_builtin_properties(&bf) @@ -5321,8 +5272,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { args.push(local); } - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); - // Check if this builtin is annotated let return_type = ZJITState::get_method_annotations() .get_builtin_properties(&bf) @@ -5346,7 +5295,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { assert_eq!(0, argc, "objtostring should not have args"); let recv = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let objtostring = fun.push_insn(block, Insn::ObjToString { val: recv, cd, state: exit_id }); state.stack_push(objtostring) } @@ -5354,7 +5302,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let str = state.stack_pop()?; let val = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let anytostring = fun.push_insn(block, Insn::AnyToString { val, str, state: exit_id }); state.stack_push(anytostring); } @@ -5362,8 +5309,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { let key = get_arg(pc, 0).as_u64(); let svar = get_arg(pc, 1).as_u64(); - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); - if svar == 0 { // TODO: Handle non-backref fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnknownSpecialVariable(key) }); @@ -5389,12 +5334,10 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { // (reverse?) // // Unhandled opcode; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledYARVInsn(opcode) }); break; // End the block } let val = state.stack_pop()?; - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); let array = fun.push_insn(block, Insn::GuardType { val, guard_type: types::ArrayExact, state: exit_id, }); let length = fun.push_insn(block, Insn::ArrayLength { array }); fun.push_insn(block, Insn::GuardBitEquals { val: length, expected: Const::CInt64(num as i64), state: exit_id }); @@ -5408,7 +5351,6 @@ pub fn iseq_to_hir(iseq: *const rb_iseq_t) -> Result<Function, ParseError> { } _ => { // Unhandled opcode; side-exit into the interpreter - let exit_id = fun.push_insn(block, Insn::Snapshot { state: exit_state }); fun.push_insn(block, Insn::SideExit { state: exit_id, reason: SideExitReason::UnhandledYARVInsn(opcode) }); break; // End the block } @@ -5949,14 +5891,14 @@ mod graphviz_tests { bb2 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> <TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject) </TD></TR> <TR><TD ALIGN="left" PORT="v15">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v17">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v25">PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29) </TD></TR> - <TR><TD ALIGN="left" PORT="v26">v26:Fixnum = GuardType v11, Fixnum </TD></TR> - <TR><TD ALIGN="left" PORT="v27">v27:Fixnum = GuardType v12, Fixnum </TD></TR> - <TR><TD ALIGN="left" PORT="v28">v28:Fixnum = FixnumOr v26, v27 </TD></TR> + <TR><TD ALIGN="left" PORT="v18">PatchPoint NoTracePoint </TD></TR> + <TR><TD ALIGN="left" PORT="v24">PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29) </TD></TR> + <TR><TD ALIGN="left" PORT="v25">v25:Fixnum = GuardType v11, Fixnum </TD></TR> + <TR><TD ALIGN="left" PORT="v26">v26:Fixnum = GuardType v12, Fixnum </TD></TR> + <TR><TD ALIGN="left" PORT="v27">v27:Fixnum = FixnumOr v25, v26 </TD></TR> <TR><TD ALIGN="left" PORT="v21">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v23">CheckInterrupts </TD></TR> - <TR><TD ALIGN="left" PORT="v24">Return v28 </TD></TR> + <TR><TD ALIGN="left" PORT="v22">CheckInterrupts </TD></TR> + <TR><TD ALIGN="left" PORT="v23">Return v27 </TD></TR> </TABLE>>]; } "#); @@ -6003,17 +5945,17 @@ mod graphviz_tests { <TR><TD ALIGN="left" PORT="v18">PatchPoint NoTracePoint </TD></TR> <TR><TD ALIGN="left" PORT="v19">v19:Fixnum[3] = Const Value(3) </TD></TR> <TR><TD ALIGN="left" PORT="v21">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v23">CheckInterrupts </TD></TR> - <TR><TD ALIGN="left" PORT="v24">Return v19 </TD></TR> + <TR><TD ALIGN="left" PORT="v22">CheckInterrupts </TD></TR> + <TR><TD ALIGN="left" PORT="v23">Return v19 </TD></TR> </TABLE>>]; bb2:v16 -> bb3:params:n; bb3 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0"> - <TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb3(v25:BasicObject, v26:BasicObject) </TD></TR> - <TR><TD ALIGN="left" PORT="v29">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v30">v30:Fixnum[4] = Const Value(4) </TD></TR> - <TR><TD ALIGN="left" PORT="v32">PatchPoint NoTracePoint </TD></TR> - <TR><TD ALIGN="left" PORT="v34">CheckInterrupts </TD></TR> - <TR><TD ALIGN="left" PORT="v35">Return v30 </TD></TR> + <TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb3(v24:BasicObject, v25:BasicObject) </TD></TR> + <TR><TD ALIGN="left" PORT="v28">PatchPoint NoTracePoint </TD></TR> + <TR><TD ALIGN="left" PORT="v29">v29:Fixnum[4] = Const Value(4) </TD></TR> + <TR><TD ALIGN="left" PORT="v31">PatchPoint NoTracePoint </TD></TR> + <TR><TD ALIGN="left" PORT="v32">CheckInterrupts </TD></TR> + <TR><TD ALIGN="left" PORT="v33">Return v29 </TD></TR> </TABLE>>]; } "#); diff --git a/zjit/src/hir/opt_tests.rs b/zjit/src/hir/opt_tests.rs index 543e1b5287..55123f47aa 100644 --- a/zjit/src/hir/opt_tests.rs +++ b/zjit/src/hir/opt_tests.rs @@ -52,9 +52,9 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:NilClass): v13:TrueClass = Const Value(true) CheckInterrupts - v22:Fixnum[3] = Const Value(3) + v23:Fixnum[3] = Const Value(3) CheckInterrupts - Return v22 + Return v23 "); } @@ -108,14 +108,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v30:Fixnum[3] = Const Value(3) - v16:Fixnum[3] = Const Value(3) + v29:Fixnum[3] = Const Value(3) + v17:Fixnum[3] = Const Value(3) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v31:Fixnum[6] = Const Value(6) + v30:Fixnum[6] = Const Value(6) CheckInterrupts - Return v31 + Return v30 "); } @@ -137,14 +137,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[5] = Const Value(5) - v11:Fixnum[3] = Const Value(3) + v12:Fixnum[3] = Const Value(3) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS) - v30:Fixnum[2] = Const Value(2) - v16:Fixnum[1] = Const Value(1) + v29:Fixnum[2] = Const Value(2) + v17:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS) - v31:Fixnum[1] = Const Value(1) + v30:Fixnum[1] = Const Value(1) CheckInterrupts - Return v31 + Return v30 "); } @@ -166,11 +166,11 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[0] = Const Value(0) - v11:Fixnum[1073741825] = Const Value(1073741825) + v12:Fixnum[1073741825] = Const Value(1073741825) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS) - v23:Fixnum[-1073741825] = Const Value(-1073741825) + v22:Fixnum[-1073741825] = Const Value(-1073741825) CheckInterrupts - Return v23 + Return v22 "); } @@ -192,11 +192,11 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[6] = Const Value(6) - v11:Fixnum[7] = Const Value(7) + v12:Fixnum[7] = Const Value(7) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT) - v23:Fixnum[42] = Const Value(42) + v22:Fixnum[42] = Const Value(42) CheckInterrupts - Return v23 + Return v22 "); } @@ -221,16 +221,16 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): v13:Fixnum[0] = Const Value(0) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT) - v33:Fixnum = GuardType v9, Fixnum - v40:Fixnum[0] = Const Value(0) - v18:Fixnum[0] = Const Value(0) + v32:Fixnum = GuardType v9, Fixnum + v39:Fixnum[0] = Const Value(0) + v20:Fixnum[0] = Const Value(0) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT) - v36:Fixnum = GuardType v9, Fixnum - v41:Fixnum[0] = Const Value(0) + v35:Fixnum = GuardType v9, Fixnum + v40:Fixnum[0] = Const Value(0) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v42:Fixnum[0] = Const Value(0) + v41:Fixnum[0] = Const Value(0) CheckInterrupts - Return v42 + Return v41 "); } @@ -256,9 +256,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT) - v40:TrueClass = Const Value(true) + v38:TrueClass = Const Value(true) CheckInterrupts v22:Fixnum[3] = Const Value(3) CheckInterrupts @@ -288,18 +288,18 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE) - v52:TrueClass = Const Value(true) + v51:TrueClass = Const Value(true) CheckInterrupts - v20:Fixnum[2] = Const Value(2) v21:Fixnum[2] = Const Value(2) + v23:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE) - v54:TrueClass = Const Value(true) + v53:TrueClass = Const Value(true) CheckInterrupts - v32:Fixnum[3] = Const Value(3) + v33:Fixnum[3] = Const Value(3) CheckInterrupts - Return v32 + Return v33 "); } @@ -325,9 +325,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[2] = Const Value(2) - v11:Fixnum[1] = Const Value(1) + v12:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GT) - v40:TrueClass = Const Value(true) + v38:TrueClass = Const Value(true) CheckInterrupts v22:Fixnum[3] = Const Value(3) CheckInterrupts @@ -357,18 +357,18 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[2] = Const Value(2) - v11:Fixnum[1] = Const Value(1) + v12:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE) - v52:TrueClass = Const Value(true) + v51:TrueClass = Const Value(true) CheckInterrupts - v20:Fixnum[2] = Const Value(2) v21:Fixnum[2] = Const Value(2) + v23:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE) - v54:TrueClass = Const Value(true) + v53:TrueClass = Const Value(true) CheckInterrupts - v32:Fixnum[3] = Const Value(3) + v33:Fixnum[3] = Const Value(3) CheckInterrupts - Return v32 + Return v33 "); } @@ -394,13 +394,13 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) - v40:FalseClass = Const Value(false) + v38:FalseClass = Const Value(false) CheckInterrupts - v32:Fixnum[4] = Const Value(4) + v31:Fixnum[4] = Const Value(4) CheckInterrupts - Return v32 + Return v31 "); } @@ -426,9 +426,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[2] = Const Value(2) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) - v40:TrueClass = Const Value(true) + v38:TrueClass = Const Value(true) CheckInterrupts v22:Fixnum[3] = Const Value(3) CheckInterrupts @@ -458,10 +458,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ) - v41:TrueClass = Const Value(true) + v39:TrueClass = Const Value(true) CheckInterrupts v22:Fixnum[3] = Const Value(3) CheckInterrupts @@ -491,14 +491,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[2] = Const Value(2) - v11:Fixnum[2] = Const Value(2) + v12:Fixnum[2] = Const Value(2) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ) - v41:FalseClass = Const Value(false) + v39:FalseClass = Const Value(false) CheckInterrupts - v32:Fixnum[4] = Const Value(4) + v31:Fixnum[4] = Const Value(4) CheckInterrupts - Return v32 + Return v31 "); } @@ -542,9 +542,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(CustomEq@0x1000) v28:HeapObject[class_exact:CustomEq] = GuardType v9, HeapObject[class_exact:CustomEq] v29:BoolExact = CCallWithFrame !=@0x1038, v28, v9 - v19:NilClass = Const Value(nil) + v20:NilClass = Const Value(nil) CheckInterrupts - Return v19 + Return v20 "); } @@ -567,12 +567,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) + v14:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v24:Fixnum = GuardType v9, Fixnum - v25:Fixnum = FixnumAdd v24, v13 + v23:Fixnum = GuardType v9, Fixnum + v24:Fixnum = FixnumAdd v23, v14 CheckInterrupts - Return v25 + Return v24 "); } @@ -677,10 +677,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v20:BasicObject = SendWithoutBlockDirect v19, :foo (0x1038) + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v19:BasicObject = SendWithoutBlockDirect v18, :foo (0x1038) CheckInterrupts - Return v20 + Return v19 "); } @@ -705,11 +705,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, baz@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[1] = Const Value(1) + v21:Fixnum[1] = Const Value(1) CheckInterrupts - Return v22 + Return v21 "); } @@ -733,10 +733,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, baz@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v20:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v20 + Return v19 "); } @@ -763,11 +763,11 @@ mod hir_opt_tests { v13:BasicObject = GetLocal l0, EP@3 PatchPoint MethodRedefined(C@0x1000, fun_new_map@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v25:ArraySubclass[class_exact:C] = GuardType v13, ArraySubclass[class_exact:C] - v26:BasicObject = CCallWithFrame fun_new_map@0x1038, v25, block=0x1040 + v24:ArraySubclass[class_exact:C] = GuardType v13, ArraySubclass[class_exact:C] + v25:BasicObject = CCallWithFrame fun_new_map@0x1038, v24, block=0x1040 v16:BasicObject = GetLocal l0, EP@3 CheckInterrupts - Return v26 + Return v25 "); } @@ -820,10 +820,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v20:BasicObject = SendWithoutBlockDirect v19, :foo (0x1038) + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v19:BasicObject = SendWithoutBlockDirect v18, :foo (0x1038) CheckInterrupts - Return v20 + Return v19 "); } @@ -845,11 +845,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[3] = Const Value(3) + v11:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Object@0x1000, Integer@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) v20:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v21:BasicObject = SendWithoutBlockDirect v20, :Integer (0x1038), v10 + v21:BasicObject = SendWithoutBlockDirect v20, :Integer (0x1038), v11 CheckInterrupts Return v21 "); @@ -874,14 +874,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) + v11:Fixnum[1] = Const Value(1) + v13:Fixnum[2] = Const Value(2) PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v21:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v22:BasicObject = SendWithoutBlockDirect v21, :foo (0x1038), v10, v11 + v22:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v23:BasicObject = SendWithoutBlockDirect v22, :foo (0x1038), v11, v13 CheckInterrupts - Return v22 + Return v23 "); } @@ -937,14 +937,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v12:StringExact = StringCopy v11 PatchPoint MethodRedefined(Object@0x1008, puts@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Object@0x1008) - v23:HeapObject[class_exact*:Object@VALUE(0x1008)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1008)] - v24:BasicObject = CCallVariadic puts@0x1040, v23, v12 + v22:HeapObject[class_exact*:Object@VALUE(0x1008)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1008)] + v23:BasicObject = CCallVariadic puts@0x1040, v22, v12 CheckInterrupts - Return v24 + Return v23 "); } @@ -996,11 +996,11 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v26:Fixnum = GuardType v11, Fixnum - v27:Fixnum = GuardType v12, Fixnum - v28:Fixnum = FixnumAdd v26, v27 + v25:Fixnum = GuardType v11, Fixnum + v26:Fixnum = GuardType v12, Fixnum + v27:Fixnum = FixnumAdd v25, v26 CheckInterrupts - Return v28 + Return v27 "); } @@ -1021,12 +1021,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) + v14:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v24:Fixnum = GuardType v9, Fixnum - v25:Fixnum = FixnumAdd v24, v13 + v23:Fixnum = GuardType v9, Fixnum + v24:Fixnum = FixnumAdd v23, v14 CheckInterrupts - Return v25 + Return v24 "); } @@ -1049,10 +1049,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): v13:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) - v24:Fixnum = GuardType v9, Fixnum - v25:Fixnum = FixnumAdd v13, v24 + v23:Fixnum = GuardType v9, Fixnum + v24:Fixnum = FixnumAdd v13, v23 CheckInterrupts - Return v25 + Return v24 "); } @@ -1075,11 +1075,11 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT) - v26:Fixnum = GuardType v11, Fixnum - v27:Fixnum = GuardType v12, Fixnum - v28:BoolExact = FixnumLt v26, v27 + v25:Fixnum = GuardType v11, Fixnum + v26:Fixnum = GuardType v12, Fixnum + v27:BoolExact = FixnumLt v25, v26 CheckInterrupts - Return v28 + Return v27 "); } @@ -1100,12 +1100,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) + v14:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT) - v24:Fixnum = GuardType v9, Fixnum - v25:BoolExact = FixnumLt v24, v13 + v23:Fixnum = GuardType v9, Fixnum + v24:BoolExact = FixnumLt v23, v14 CheckInterrupts - Return v25 + Return v24 "); } @@ -1128,10 +1128,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): v13:Fixnum[1] = Const Value(1) PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT) - v24:Fixnum = GuardType v9, Fixnum - v25:BoolExact = FixnumLt v13, v24 + v23:Fixnum = GuardType v9, Fixnum + v24:BoolExact = FixnumLt v13, v23 CheckInterrupts - Return v25 + Return v24 "); } @@ -1157,10 +1157,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:Fixnum[2] = Const Value(2) - v16:Fixnum[1] = Const Value(1) - v24:RangeExact = NewRangeFixnum v16 NewRangeInclusive v13 + v17:Fixnum[1] = Const Value(1) + v25:RangeExact = NewRangeFixnum v17 NewRangeInclusive v13 CheckInterrupts - Return v24 + Return v25 "); } @@ -1187,10 +1187,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:Fixnum[2] = Const Value(2) - v16:Fixnum[1] = Const Value(1) - v24:RangeExact = NewRangeFixnum v16 NewRangeExclusive v13 + v17:Fixnum[1] = Const Value(1) + v25:RangeExact = NewRangeFixnum v17 NewRangeExclusive v13 CheckInterrupts - Return v24 + Return v25 "); } @@ -1267,9 +1267,9 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[10] = Const Value(10) + v14:Fixnum[10] = Const Value(10) v21:Fixnum = GuardType v9, Fixnum - v22:RangeExact = NewRangeFixnum v21 NewRangeInclusive v13 + v22:RangeExact = NewRangeFixnum v21 NewRangeInclusive v14 CheckInterrupts Return v22 "); @@ -1294,9 +1294,9 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[10] = Const Value(10) + v14:Fixnum[10] = Const Value(10) v21:Fixnum = GuardType v9, Fixnum - v22:RangeExact = NewRangeFixnum v21 NewRangeExclusive v13 + v22:RangeExact = NewRangeFixnum v21 NewRangeExclusive v14 CheckInterrupts Return v22 "); @@ -1323,7 +1323,7 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:ArrayExact = NewArray + v13:ArrayExact = NewArray v17:Fixnum[5] = Const Value(5) CheckInterrupts Return v17 @@ -1348,14 +1348,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[0] = Const Value(0) + v14:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Array@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v26:ArrayExact = GuardType v9, ArrayExact - v27:BasicObject = ArrayArefFixnum v26, v13 + v25:ArrayExact = GuardType v9, ArrayExact + v26:BasicObject = ArrayArefFixnum v25, v14 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v27 + Return v26 "); assert_snapshot!(inspect("test [1,2,3]"), @"1"); } @@ -1378,14 +1378,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[0] = Const Value(0) + v14:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Hash@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v26:HashExact = GuardType v9, HashExact - v27:BasicObject = HashAref v26, v13 + v25:HashExact = GuardType v9, HashExact + v26:BasicObject = HashAref v25, v14 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v27 + Return v26 "); assert_snapshot!(inspect("test({0 => 4})"), @"4"); } @@ -1412,9 +1412,9 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:RangeExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v16:Fixnum[5] = Const Value(5) + v17:Fixnum[5] = Const Value(5) CheckInterrupts - Return v16 + Return v17 "); } @@ -1440,10 +1440,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS) - v15:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v14:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v16:StringExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v18:StringExact = StringCopy v16 - v20:RangeExact = NewRange v15 NewRangeInclusive v18 + v17:StringExact = StringCopy v16 + v19:RangeExact = NewRange v14 NewRangeInclusive v17 PatchPoint NoEPEscape(test) v25:Fixnum[0] = Const Value(0) CheckInterrupts @@ -1474,9 +1474,9 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:NilClass): v17:ArrayExact = NewArray v11 - v20:Fixnum[5] = Const Value(5) + v21:Fixnum[5] = Const Value(5) CheckInterrupts - Return v20 + Return v21 "); } @@ -1500,7 +1500,7 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:HashExact = NewHash + v13:HashExact = NewHash PatchPoint NoEPEscape(test) v19:Fixnum[5] = Const Value(5) CheckInterrupts @@ -1531,12 +1531,12 @@ mod hir_opt_tests { Jump bb2(v7, v8, v9, v10) bb2(v12:BasicObject, v13:BasicObject, v14:BasicObject, v15:NilClass): v19:StaticSymbol[:a] = Const Value(VALUE(0x1000)) - v20:StaticSymbol[:b] = Const Value(VALUE(0x1008)) - v22:HashExact = NewHash v19: v13, v20: v14 + v22:StaticSymbol[:b] = Const Value(VALUE(0x1008)) + v25:HashExact = NewHash v19: v13, v22: v14 PatchPoint NoEPEscape(test) - v27:Fixnum[5] = Const Value(5) + v31:Fixnum[5] = Const Value(5) CheckInterrupts - Return v27 + Return v31 "); } @@ -1562,7 +1562,7 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v15:ArrayExact = ArrayDup v13 + v14:ArrayExact = ArrayDup v13 v18:Fixnum[5] = Const Value(5) CheckInterrupts Return v18 @@ -1590,7 +1590,7 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v15:HashExact = HashDup v13 + v14:HashExact = HashDup v13 v18:Fixnum[5] = Const Value(5) CheckInterrupts Return v18 @@ -1618,9 +1618,9 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v15:Fixnum[5] = Const Value(5) + v16:Fixnum[5] = Const Value(5) CheckInterrupts - Return v15 + Return v16 "); } @@ -1646,7 +1646,7 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v15:StringExact = StringCopy v13 + v14:StringExact = StringCopy v13 v18:Fixnum[5] = Const Value(5) CheckInterrupts Return v18 @@ -1677,9 +1677,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1707,9 +1707,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1737,9 +1737,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1768,9 +1768,9 @@ mod hir_opt_tests { v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum v31:Fixnum = FixnumDiv v29, v30 - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1799,9 +1799,9 @@ mod hir_opt_tests { v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum v31:Fixnum = FixnumMod v29, v30 - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1829,9 +1829,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1859,9 +1859,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1889,9 +1889,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GT) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1919,9 +1919,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1949,9 +1949,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ) v29:Fixnum = GuardType v11, Fixnum v30:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -1980,9 +1980,9 @@ mod hir_opt_tests { PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ) v30:Fixnum = GuardType v11, Fixnum v31:Fixnum = GuardType v12, Fixnum - v22:Fixnum[5] = Const Value(5) + v23:Fixnum[5] = Const Value(5) CheckInterrupts - Return v22 + Return v23 "); } @@ -2005,9 +2005,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v11:BasicObject = GetConstantPath 0x1000 - v14:Fixnum[5] = Const Value(5) + v15:Fixnum[5] = Const Value(5) CheckInterrupts - Return v14 + Return v15 "); } @@ -2030,10 +2030,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, itself@0x1008, cme:0x1010) - v22:Fixnum = GuardType v9, Fixnum + v21:Fixnum = GuardType v9, Fixnum IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v22 + Return v21 "); } @@ -2052,12 +2052,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v11 + Return v10 "); } @@ -2081,7 +2081,7 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:ArrayExact = NewArray + v13:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count @@ -2122,9 +2122,9 @@ mod hir_opt_tests { IncrCounter inline_cfunc_optimized_send_count v34:StringExact|NilClass = CCall name@0x1048, v29 PatchPoint NoEPEscape(test) - v21:Fixnum[1] = Const Value(1) + v22:Fixnum[1] = Const Value(1) CheckInterrupts - Return v21 + Return v22 "); } @@ -2148,14 +2148,14 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:ArrayExact = NewArray + v13:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count - v31:Fixnum = CCall length@0x1038, v14 - v21:Fixnum[5] = Const Value(5) + v29:Fixnum = CCall length@0x1038, v13 + v20:Fixnum[5] = Const Value(5) CheckInterrupts - Return v21 + Return v20 "); } @@ -2178,9 +2178,9 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, C) - v19:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v18:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v19 + Return v18 "); } @@ -2202,19 +2202,19 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, String) - v27:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v29:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1010, Class) - v30:Class[VALUE(0x1018)] = Const Value(VALUE(0x1018)) + v32:Class[VALUE(0x1018)] = Const Value(VALUE(0x1018)) PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1020, Module) - v33:Class[VALUE(0x1028)] = Const Value(VALUE(0x1028)) + v35:Class[VALUE(0x1028)] = Const Value(VALUE(0x1028)) PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1030, BasicObject) - v36:Class[VALUE(0x1038)] = Const Value(VALUE(0x1038)) - v19:ArrayExact = NewArray v27, v30, v33, v36 + v38:Class[VALUE(0x1038)] = Const Value(VALUE(0x1038)) + v22:ArrayExact = NewArray v29, v32, v35, v38 CheckInterrupts - Return v19 + Return v22 "); } @@ -2240,9 +2240,9 @@ mod hir_opt_tests { PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1010, Kernel) v26:ModuleExact[VALUE(0x1018)] = Const Value(VALUE(0x1018)) - v15:ArrayExact = NewArray v23, v26 + v16:ArrayExact = NewArray v23, v26 CheckInterrupts - Return v15 + Return v16 "); } @@ -2266,9 +2266,9 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, MY_MODULE) - v19:ModuleSubclass[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v18:ModuleSubclass[VALUE(0x1008)] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v19 + Return v18 "); } @@ -2292,14 +2292,14 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:ArrayExact = NewArray + v13:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count - v31:Fixnum = CCall size@0x1038, v14 - v21:Fixnum[5] = Const Value(5) + v29:Fixnum = CCall size@0x1038, v13 + v20:Fixnum[5] = Const Value(5) CheckInterrupts - Return v21 + Return v20 "); } @@ -2322,10 +2322,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[0] = Const Value(0) - v13:BasicObject = SendWithoutBlock v10, :itself, v11 + v12:Fixnum[0] = Const Value(0) + v14:BasicObject = SendWithoutBlock v10, :itself, v12 CheckInterrupts - Return v13 + Return v14 "); } @@ -2347,11 +2347,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, block_given?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v20:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v21:BoolExact = IsBlockGiven + v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v20:BoolExact = IsBlockGiven IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v21 + Return v20 "); } @@ -2373,11 +2373,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, block_given?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v20:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] - v21:BoolExact = IsBlockGiven + v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v20:BoolExact = IsBlockGiven IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v21 + Return v20 "); } @@ -2404,9 +2404,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(Object@0x1000) v23:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_cfunc_optimized_send_count - v14:Fixnum[5] = Const Value(5) + v15:Fixnum[5] = Const Value(5) CheckInterrupts - Return v14 + Return v15 "); } @@ -2429,9 +2429,9 @@ mod hir_opt_tests { v13:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, zero?@0x1008, cme:0x1010) IncrCounter inline_iseq_optimized_send_count - v24:BasicObject = InvokeBuiltin leaf _bi285, v13 + v23:BasicObject = InvokeBuiltin leaf _bi285, v13 CheckInterrupts - Return v24 + Return v23 "); } @@ -2457,13 +2457,13 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:NilClass): v16:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v18:ArrayExact = ArrayDup v16 + v17:ArrayExact = ArrayDup v16 PatchPoint MethodRedefined(Array@0x1008, first@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) IncrCounter inline_iseq_optimized_send_count - v32:BasicObject = InvokeBuiltin leaf _bi132, v18 + v31:BasicObject = InvokeBuiltin leaf _bi132, v17 CheckInterrupts - Return v32 + Return v31 "); } @@ -2487,13 +2487,13 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, M) - v21:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v20:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(Module@0x1010, class@0x1018, cme:0x1020) PatchPoint NoSingletonClass(Module@0x1010) IncrCounter inline_iseq_optimized_send_count - v26:HeapObject = InvokeBuiltin leaf _bi20, v21 + v25:HeapObject = InvokeBuiltin leaf _bi20, v20 CheckInterrupts - Return v26 + Return v25 "); } @@ -2523,10 +2523,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v23:BasicObject = SendWithoutBlockDirect v22, :foo (0x1038) + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v22:BasicObject = SendWithoutBlockDirect v21, :foo (0x1038) CheckInterrupts - Return v23 + Return v22 "); } @@ -2548,11 +2548,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) + v11:Fixnum[1] = Const Value(1) IncrCounter complex_arg_pass_param_opt - v12:BasicObject = SendWithoutBlock v6, :foo, v10 + v13:BasicObject = SendWithoutBlock v6, :foo, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -2606,11 +2606,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:NilClass): v13:Fixnum[1] = Const Value(1) SetLocal l0, EP@3, v13 - v18:BasicObject = Send v8, 0x1000, :foo - v19:BasicObject = GetLocal l0, EP@3 - v22:BasicObject = GetLocal l0, EP@3 + v19:BasicObject = Send v8, 0x1000, :foo + v20:BasicObject = GetLocal l0, EP@3 + v24:BasicObject = GetLocal l0, EP@3 CheckInterrupts - Return v22 + Return v24 "); } @@ -2632,11 +2632,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) + v11:Fixnum[1] = Const Value(1) IncrCounter complex_arg_pass_param_rest - v12:BasicObject = SendWithoutBlock v6, :foo, v10 + v13:BasicObject = SendWithoutBlock v6, :foo, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -2658,11 +2658,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) + v11:Fixnum[1] = Const Value(1) IncrCounter complex_arg_pass_caller_kwarg - v12:BasicObject = SendWithoutBlock v6, :foo, v10 + v13:BasicObject = SendWithoutBlock v6, :foo, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -2684,11 +2684,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) + v11:Fixnum[1] = Const Value(1) IncrCounter complex_arg_pass_caller_kwarg - v12:BasicObject = SendWithoutBlock v6, :foo, v10 + v13:BasicObject = SendWithoutBlock v6, :foo, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -2754,9 +2754,9 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Kernel) - v19:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v18:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v19 + Return v18 "); } @@ -2784,9 +2784,9 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Foo::Bar::C) - v19:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v18:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v19 + Return v18 "); } @@ -2809,17 +2809,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, C) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(C@0x1008, new@0x1010, cme:0x1018) - v43:HeapObject[class_exact:C] = ObjectAllocClass C:VALUE(0x1008) + v46:HeapObject[class_exact:C] = ObjectAllocClass C:VALUE(0x1008) PatchPoint MethodRedefined(C@0x1008, initialize@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v47:NilClass = Const Value(nil) + v50:NilClass = Const Value(nil) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts CheckInterrupts - Return v43 + Return v46 "); } @@ -2846,17 +2846,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, C) - v42:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) - v13:Fixnum[1] = Const Value(1) + v46:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) + v16:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(C@0x1008, new@0x1010, cme:0x1018) - v45:HeapObject[class_exact:C] = ObjectAllocClass C:VALUE(0x1008) + v49:HeapObject[class_exact:C] = ObjectAllocClass C:VALUE(0x1008) PatchPoint MethodRedefined(C@0x1008, initialize@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v48:BasicObject = SendWithoutBlockDirect v45, :initialize (0x1070), v13 + v52:BasicObject = SendWithoutBlockDirect v49, :initialize (0x1070), v16 CheckInterrupts CheckInterrupts - Return v45 + Return v49 "); } @@ -2878,17 +2878,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Object) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(Object@0x1008, new@0x1010, cme:0x1018) - v43:ObjectExact = ObjectAllocClass Object:VALUE(0x1008) + v46:ObjectExact = ObjectAllocClass Object:VALUE(0x1008) PatchPoint MethodRedefined(Object@0x1008, initialize@0x1040, cme:0x1048) PatchPoint NoSingletonClass(Object@0x1008) - v47:NilClass = Const Value(nil) + v50:NilClass = Const Value(nil) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts CheckInterrupts - Return v43 + Return v46 "); } @@ -2910,17 +2910,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, BasicObject) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(BasicObject@0x1008, new@0x1010, cme:0x1018) - v43:BasicObjectExact = ObjectAllocClass BasicObject:VALUE(0x1008) + v46:BasicObjectExact = ObjectAllocClass BasicObject:VALUE(0x1008) PatchPoint MethodRedefined(BasicObject@0x1008, initialize@0x1040, cme:0x1048) PatchPoint NoSingletonClass(BasicObject@0x1008) - v47:NilClass = Const Value(nil) + v50:NilClass = Const Value(nil) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts CheckInterrupts - Return v43 + Return v46 "); } @@ -2942,17 +2942,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Hash) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(Hash@0x1008, new@0x1010, cme:0x1018) - v43:HashExact = ObjectAllocClass Hash:VALUE(0x1008) + v46:HashExact = ObjectAllocClass Hash:VALUE(0x1008) IncrCounter complex_arg_pass_param_opt IncrCounter complex_arg_pass_param_kw IncrCounter complex_arg_pass_param_block - v18:BasicObject = SendWithoutBlock v43, :initialize + v20:BasicObject = SendWithoutBlock v46, :initialize CheckInterrupts CheckInterrupts - Return v43 + Return v46 "); assert_snapshot!(inspect("test"), @"{}"); } @@ -2975,15 +2975,15 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Array) - v42:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) - v13:Fixnum[1] = Const Value(1) + v46:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) + v16:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Array@0x1008, new@0x1010, cme:0x1018) PatchPoint MethodRedefined(Class@0x1040, new@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Class@0x1040) - v53:BasicObject = CCallVariadic new@0x1048, v42, v13 + v57:BasicObject = CCallVariadic new@0x1048, v46, v16 CheckInterrupts - Return v53 + Return v57 "); } @@ -3005,17 +3005,17 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Set) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(Set@0x1008, new@0x1010, cme:0x1018) - v16:HeapBasicObject = ObjectAlloc v40 + v18:HeapBasicObject = ObjectAlloc v43 PatchPoint MethodRedefined(Set@0x1008, initialize@0x1040, cme:0x1048) PatchPoint NoSingletonClass(Set@0x1008) - v46:SetExact = GuardType v16, SetExact - v47:BasicObject = CCallVariadic initialize@0x1070, v46 + v49:SetExact = GuardType v18, SetExact + v50:BasicObject = CCallVariadic initialize@0x1070, v49 CheckInterrupts CheckInterrupts - Return v16 + Return v18 "); } @@ -3037,14 +3037,14 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, String) - v40:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) + v43:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) PatchPoint MethodRedefined(String@0x1008, new@0x1010, cme:0x1018) PatchPoint MethodRedefined(Class@0x1040, new@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Class@0x1040) - v51:BasicObject = CCallVariadic new@0x1048, v40 + v54:BasicObject = CCallVariadic new@0x1048, v43 CheckInterrupts - Return v51 + Return v54 "); } @@ -3066,18 +3066,18 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Regexp) - v44:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:NilClass = Const Value(nil) - v13:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) - v15:StringExact = StringCopy v13 + v47:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:NilClass = Const Value(nil) + v16:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) + v17:StringExact = StringCopy v16 PatchPoint MethodRedefined(Regexp@0x1008, new@0x1018, cme:0x1020) - v47:RegexpExact = ObjectAllocClass Regexp:VALUE(0x1008) + v50:RegexpExact = ObjectAllocClass Regexp:VALUE(0x1008) PatchPoint MethodRedefined(Regexp@0x1008, initialize@0x1048, cme:0x1050) PatchPoint NoSingletonClass(Regexp@0x1008) - v51:BasicObject = CCallVariadic initialize@0x1078, v47, v15 + v54:BasicObject = CCallVariadic initialize@0x1078, v50, v17 CheckInterrupts CheckInterrupts - Return v47 + Return v50 "); } @@ -3098,13 +3098,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:ArrayExact = NewArray v11, v12 + v18:ArrayExact = NewArray v11, v12 PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count - v31:Fixnum = CCall length@0x1038, v17 + v30:Fixnum = CCall length@0x1038, v18 CheckInterrupts - Return v31 + Return v30 "); } @@ -3125,13 +3125,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:ArrayExact = NewArray v11, v12 + v18:ArrayExact = NewArray v11, v12 PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) IncrCounter inline_cfunc_optimized_send_count - v31:Fixnum = CCall size@0x1038, v17 + v30:Fixnum = CCall size@0x1038, v18 CheckInterrupts - Return v31 + Return v30 "); } @@ -3175,9 +3175,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint SingleRactorMode - v12:BasicObject = GetIvar v6, :@foo + v11:BasicObject = GetIvar v6, :@foo CheckInterrupts - Return v12 + Return v11 "); } @@ -3220,9 +3220,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -3264,10 +3264,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE) CheckInterrupts - Return v12 + Return v11 "); } @@ -3286,13 +3286,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:HashExact = NewHash + v10:HashExact = NewHash PatchPoint MethodRedefined(Hash@0x1000, dup@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v24:BasicObject = CCallWithFrame dup@0x1038, v11 - v15:BasicObject = SendWithoutBlock v24, :freeze + v22:BasicObject = CCallWithFrame dup@0x1038, v10 + v14:BasicObject = SendWithoutBlock v22, :freeze CheckInterrupts - Return v15 + Return v14 "); } @@ -3311,9 +3311,9 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:HashExact = NewHash + v10:HashExact = NewHash v12:NilClass = Const Value(nil) - v14:BasicObject = SendWithoutBlock v11, :freeze, v12 + v14:BasicObject = SendWithoutBlock v10, :freeze, v12 CheckInterrupts Return v14 "); @@ -3335,9 +3335,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -3357,10 +3357,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) CheckInterrupts - Return v12 + Return v11 "); } @@ -3379,13 +3379,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, dup@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v24:BasicObject = CCallWithFrame dup@0x1038, v11 - v15:BasicObject = SendWithoutBlock v24, :freeze + v22:BasicObject = CCallWithFrame dup@0x1038, v10 + v14:BasicObject = SendWithoutBlock v22, :freeze CheckInterrupts - Return v15 + Return v14 "); } @@ -3404,9 +3404,9 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray v12:NilClass = Const Value(nil) - v14:BasicObject = SendWithoutBlock v11, :freeze, v12 + v14:BasicObject = SendWithoutBlock v10, :freeze, v12 CheckInterrupts Return v14 "); @@ -3428,9 +3428,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -3450,10 +3450,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE) CheckInterrupts - Return v12 + Return v11 "); } @@ -3473,13 +3473,13 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 PatchPoint MethodRedefined(String@0x1008, dup@0x1010, cme:0x1018) PatchPoint NoSingletonClass(String@0x1008) - v25:BasicObject = CCallWithFrame dup@0x1040, v12 - v16:BasicObject = SendWithoutBlock v25, :freeze + v23:BasicObject = CCallWithFrame dup@0x1040, v11 + v15:BasicObject = SendWithoutBlock v23, :freeze CheckInterrupts - Return v16 + Return v15 "); } @@ -3499,9 +3499,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 v13:NilClass = Const Value(nil) - v15:BasicObject = SendWithoutBlock v12, :freeze, v13 + v15:BasicObject = SendWithoutBlock v11, :freeze, v13 CheckInterrupts Return v15 "); @@ -3523,9 +3523,9 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -3545,10 +3545,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS) CheckInterrupts - Return v12 + Return v11 "); } @@ -3568,13 +3568,13 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 PatchPoint MethodRedefined(String@0x1008, dup@0x1010, cme:0x1018) PatchPoint NoSingletonClass(String@0x1008) - v25:BasicObject = CCallWithFrame dup@0x1040, v12 - v16:BasicObject = SendWithoutBlock v25, :-@ + v23:BasicObject = CCallWithFrame dup@0x1040, v11 + v15:BasicObject = SendWithoutBlock v23, :-@ CheckInterrupts - Return v16 + Return v15 "); } @@ -3595,8 +3595,8 @@ mod hir_opt_tests { bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:StringExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v15:StringExact = StringCopy v13 - v21:StringExact = StringConcat v10, v15 + v14:StringExact = StringCopy v13 + v21:StringExact = StringConcat v10, v14 CheckInterrupts Return v21 "); @@ -3618,12 +3618,12 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v11:Fixnum[1] = Const Value(1) - v13:BasicObject = ObjToString v11 - v15:String = AnyToString v11, str: v13 - v17:StringExact = StringConcat v10, v15 + v12:Fixnum[1] = Const Value(1) + v15:BasicObject = ObjToString v12 + v17:String = AnyToString v12, str: v15 + v19:StringExact = StringConcat v10, v17 CheckInterrupts - Return v17 + Return v19 "); } @@ -3649,10 +3649,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): v13:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint NoSingletonClass(String@0x1008) - v26:String = GuardType v9, String - v19:StringExact = StringConcat v13, v26 + v27:String = GuardType v9, String + v21:StringExact = StringConcat v13, v27 CheckInterrupts - Return v19 + Return v21 "); } @@ -3681,10 +3681,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): v13:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint NoSingletonClass(MyString@0x1008) - v26:String = GuardType v9, String - v19:StringExact = StringConcat v13, v26 + v27:String = GuardType v9, String + v21:StringExact = StringConcat v13, v27 CheckInterrupts - Return v19 + Return v21 "); } @@ -3709,15 +3709,15 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): v13:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v25:BasicObject = GuardTypeNot v9, String + v26:BasicObject = GuardTypeNot v9, String PatchPoint MethodRedefined(Array@0x1008, to_s@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v30:ArrayExact = GuardType v9, ArrayExact - v31:BasicObject = CCallWithFrame to_s@0x1040, v30 - v17:String = AnyToString v9, str: v31 - v19:StringExact = StringConcat v13, v17 + v31:ArrayExact = GuardType v9, ArrayExact + v32:BasicObject = CCallWithFrame to_s@0x1040, v31 + v19:String = AnyToString v9, str: v32 + v21:StringExact = StringConcat v13, v19 CheckInterrupts - Return v19 + Return v21 "); } @@ -3798,14 +3798,14 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, S) - v24:ArrayExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:Fixnum[0] = Const Value(0) + v23:ArrayExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Array@0x1010, []@0x1018, cme:0x1020) PatchPoint NoSingletonClass(Array@0x1010) - v28:BasicObject = ArrayArefFixnum v24, v12 + v27:BasicObject = ArrayArefFixnum v23, v13 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v27 "); // TODO(max): Check the result of `S[0] = 5; test` using `inspect` to make sure that we // actually do the load at run-time. @@ -3827,14 +3827,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v28:Fixnum[5] = Const Value(5) + v26:Fixnum[5] = Const Value(5) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v26 "); } @@ -3854,14 +3854,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:Fixnum[-3] = Const Value(-3) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v28:Fixnum[4] = Const Value(4) + v26:Fixnum[4] = Const Value(4) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v26 "); } @@ -3881,14 +3881,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:Fixnum[-10] = Const Value(-10) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v28:NilClass = Const Value(nil) + v26:NilClass = Const Value(nil) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v26 "); } @@ -3908,14 +3908,14 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:Fixnum[10] = Const Value(10) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v28:NilClass = Const Value(nil) + v26:NilClass = Const Value(nil) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v26 "); } @@ -3938,13 +3938,13 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) v13:Fixnum[10] = Const Value(10) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v25:BasicObject = SendWithoutBlockDirect v12, :[] (0x1040), v13 + v23:BasicObject = SendWithoutBlockDirect v11, :[] (0x1040), v13 CheckInterrupts - Return v25 + Return v23 "); } @@ -3967,12 +3967,12 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:ArrayExact = ArrayDup v10 + v11:ArrayExact = ArrayDup v10 PatchPoint MethodRedefined(Array@0x1008, max@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v22:BasicObject = SendWithoutBlockDirect v12, :max (0x1040) + v20:BasicObject = SendWithoutBlockDirect v11, :max (0x1040) CheckInterrupts - Return v22 + Return v20 "); } @@ -3998,9 +3998,9 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, MY_SET) - v19:SetExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v18:SetExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) CheckInterrupts - Return v19 + Return v18 "); } @@ -4077,10 +4077,10 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[100] = Const Value(100) - v12:BasicObject = SendWithoutBlock v6, :identity, v10 + v11:Fixnum[100] = Const Value(100) + v13:BasicObject = SendWithoutBlock v6, :identity, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -4131,12 +4131,12 @@ mod hir_opt_tests { PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Foo) v22:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:Fixnum[100] = Const Value(100) + v13:Fixnum[100] = Const Value(100) PatchPoint MethodRedefined(Class@0x1010, identity@0x1018, cme:0x1020) PatchPoint NoSingletonClass(Class@0x1010) IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v12 + Return v13 "); } @@ -4157,10 +4157,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): v10:NilClass = Const Value(nil) PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010) - v22:TrueClass = Const Value(true) + v20:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v22 + Return v20 "); } @@ -4208,10 +4208,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010) - v22:FalseClass = Const Value(false) + v20:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v22 + Return v20 "); } @@ -4261,11 +4261,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010) - v24:NilClass = GuardType v9, NilClass - v25:TrueClass = Const Value(true) + v22:NilClass = GuardType v9, NilClass + v23:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4288,11 +4288,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(FalseClass@0x1000, nil?@0x1008, cme:0x1010) - v24:FalseClass = GuardType v9, FalseClass - v25:FalseClass = Const Value(false) + v22:FalseClass = GuardType v9, FalseClass + v23:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4315,11 +4315,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(TrueClass@0x1000, nil?@0x1008, cme:0x1010) - v24:TrueClass = GuardType v9, TrueClass - v25:FalseClass = Const Value(false) + v22:TrueClass = GuardType v9, TrueClass + v23:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4342,11 +4342,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Symbol@0x1000, nil?@0x1008, cme:0x1010) - v24:StaticSymbol = GuardType v9, StaticSymbol - v25:FalseClass = Const Value(false) + v22:StaticSymbol = GuardType v9, StaticSymbol + v23:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4369,11 +4369,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010) - v24:Fixnum = GuardType v9, Fixnum - v25:FalseClass = Const Value(false) + v22:Fixnum = GuardType v9, Fixnum + v23:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4396,11 +4396,11 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Float@0x1000, nil?@0x1008, cme:0x1010) - v24:Flonum = GuardType v9, Flonum - v25:FalseClass = Const Value(false) + v22:Flonum = GuardType v9, Flonum + v23:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v23 "); } @@ -4424,11 +4424,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, nil?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v25:StringExact = GuardType v9, StringExact - v26:FalseClass = Const Value(false) + v23:StringExact = GuardType v9, StringExact + v24:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v26 + Return v24 "); } @@ -4452,11 +4452,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Array@0x1000, !@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v25:ArrayExact = GuardType v9, ArrayExact + v23:ArrayExact = GuardType v9, ArrayExact IncrCounter inline_cfunc_optimized_send_count - v27:BoolExact = CCall !@0x1038, v25 + v25:BoolExact = CCall !@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -4480,11 +4480,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Array@0x1000, empty?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v25:ArrayExact = GuardType v9, ArrayExact + v23:ArrayExact = GuardType v9, ArrayExact IncrCounter inline_cfunc_optimized_send_count - v27:BoolExact = CCall empty?@0x1038, v25 + v25:BoolExact = CCall empty?@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -4508,11 +4508,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Hash@0x1000, empty?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v25:HashExact = GuardType v9, HashExact + v23:HashExact = GuardType v9, HashExact IncrCounter inline_cfunc_optimized_send_count - v27:BoolExact = CCall empty?@0x1038, v25 + v25:BoolExact = CCall empty?@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -4538,12 +4538,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(C@0x1000, ==@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v28:HeapObject[class_exact:C] = GuardType v11, HeapObject[class_exact:C] - v29:CBool = IsBitEqual v28, v12 - v30:BoolExact = BoxBool v29 + v27:HeapObject[class_exact:C] = GuardType v11, HeapObject[class_exact:C] + v28:CBool = IsBitEqual v27, v12 + v29:BoolExact = BoxBool v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -4567,11 +4567,11 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 28) - v26:Fixnum = GuardType v11, Fixnum - v27:Fixnum = GuardType v12, Fixnum - v28:Fixnum = FixnumAnd v26, v27 + v25:Fixnum = GuardType v11, Fixnum + v26:Fixnum = GuardType v12, Fixnum + v27:Fixnum = FixnumAnd v25, v26 CheckInterrupts - Return v28 + Return v27 "); } @@ -4595,11 +4595,11 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29) - v26:Fixnum = GuardType v11, Fixnum - v27:Fixnum = GuardType v12, Fixnum - v28:Fixnum = FixnumOr v26, v27 + v25:Fixnum = GuardType v11, Fixnum + v26:Fixnum = GuardType v12, Fixnum + v27:Fixnum = FixnumOr v25, v26 CheckInterrupts - Return v28 + Return v27 "); } @@ -4624,11 +4624,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:NilClass = Const Value(nil) + v21:NilClass = Const Value(nil) CheckInterrupts - Return v22 + Return v21 "); } @@ -4660,11 +4660,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v25:HeapObject[class_exact:C] = GuardShape v22, 0x1038 - v26:BasicObject = LoadField v25, :@foo@0x1039 + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v24:HeapObject[class_exact:C] = GuardShape v21, 0x1038 + v25:BasicObject = LoadField v24, :@foo@0x1039 CheckInterrupts - Return v26 + Return v25 "); } @@ -4699,12 +4699,12 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v25:HeapObject[class_exact:C] = GuardShape v22, 0x1038 - v26:CPtr = LoadField v25, :_as_heap@0x1039 - v27:BasicObject = LoadField v26, :@foo@0x103a + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v24:HeapObject[class_exact:C] = GuardShape v21, 0x1038 + v25:CPtr = LoadField v24, :_as_heap@0x1039 + v26:BasicObject = LoadField v25, :@foo@0x103a CheckInterrupts - Return v27 + Return v26 "); } @@ -4768,12 +4768,12 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:ArrayExact = ArrayDup v10 + v11:ArrayExact = ArrayDup v10 PatchPoint MethodRedefined(Array@0x1008, map@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v23:BasicObject = CCallWithFrame map@0x1040, v12, block=0x1048 + v21:BasicObject = CCallWithFrame map@0x1040, v11, block=0x1048 CheckInterrupts - Return v23 + Return v21 "); } @@ -4794,10 +4794,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:ArrayExact = ArrayDup v10 - v14:BasicObject = Send v12, 0x1008, :index + v11:ArrayExact = ArrayDup v10 + v13:BasicObject = Send v11, 0x1008, :index CheckInterrupts - Return v14 + Return v13 "); } @@ -4818,13 +4818,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:ArrayExact = NewArray + v13:ArrayExact = NewArray GuardBlockParamProxy l0 - v17:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) + v16:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) IncrCounter complex_arg_pass_caller_blockarg - v19:BasicObject = Send v14, 0x1008, :map, v17 + v18:BasicObject = Send v13, 0x1008, :map, v16 CheckInterrupts - Return v19 + Return v18 "); } @@ -4878,13 +4878,13 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, O) - v21:HeapObject[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v20:HeapObject[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(C@0x1010, foo@0x1018, cme:0x1020) PatchPoint NoSingletonClass(C@0x1010) - v26:HeapObject[VALUE(0x1008)] = GuardShape v21, 0x1048 - v27:NilClass = Const Value(nil) + v25:HeapObject[VALUE(0x1008)] = GuardShape v20, 0x1048 + v26:NilClass = Const Value(nil) CheckInterrupts - Return v27 + Return v26 "); } @@ -4912,13 +4912,13 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, O) - v21:HeapObject[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v20:HeapObject[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(C@0x1010, foo@0x1018, cme:0x1020) PatchPoint NoSingletonClass(C@0x1010) - v26:HeapObject[VALUE(0x1008)] = GuardShape v21, 0x1048 - v27:NilClass = Const Value(nil) + v25:HeapObject[VALUE(0x1008)] = GuardShape v20, 0x1048 + v26:NilClass = Const Value(nil) CheckInterrupts - Return v27 + Return v26 "); } @@ -4946,11 +4946,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v25:HeapObject[class_exact:C] = GuardShape v22, 0x1038 - v26:NilClass = Const Value(nil) + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v24:HeapObject[class_exact:C] = GuardShape v21, 0x1038 + v25:NilClass = Const Value(nil) CheckInterrupts - Return v26 + Return v25 "); } @@ -4978,11 +4978,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v25:HeapObject[class_exact:C] = GuardShape v22, 0x1038 - v26:NilClass = Const Value(nil) + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v24:HeapObject[class_exact:C] = GuardShape v21, 0x1038 + v25:NilClass = Const Value(nil) CheckInterrupts - Return v26 + Return v25 "); } @@ -5008,12 +5008,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:Fixnum[5] = Const Value(5) + v16:Fixnum[5] = Const Value(5) PatchPoint MethodRedefined(C@0x1000, foo=@0x1008, cme:0x1010) - v23:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - SetIvar v23, :@foo, v14 + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + SetIvar v26, :@foo, v16 CheckInterrupts - Return v14 + Return v16 "); } @@ -5039,12 +5039,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:Fixnum[5] = Const Value(5) + v16:Fixnum[5] = Const Value(5) PatchPoint MethodRedefined(C@0x1000, foo=@0x1008, cme:0x1010) - v23:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - SetIvar v23, :@foo, v14 + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + SetIvar v26, :@foo, v16 CheckInterrupts - Return v14 + Return v16 "); } @@ -5069,10 +5069,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v23:BasicObject = LoadField v22, :foo@0x1038 + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v22:BasicObject = LoadField v21, :foo@0x1038 CheckInterrupts - Return v23 + Return v22 "); } @@ -5097,11 +5097,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v22:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v23:CPtr = LoadField v22, :_as_heap@0x1038 - v24:BasicObject = LoadField v23, :foo@0x1039 + v21:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v22:CPtr = LoadField v21, :_as_heap@0x1038 + v23:BasicObject = LoadField v22, :foo@0x1039 CheckInterrupts - Return v24 + Return v23 "); } @@ -5130,9 +5130,9 @@ mod hir_opt_tests { PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v17:Fixnum[5] = Const Value(5) + v18:Fixnum[5] = Const Value(5) CheckInterrupts - Return v17 + Return v18 "); } @@ -5151,12 +5151,12 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, reverse@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v22:ArrayExact = CCallWithFrame reverse@0x1038, v11 + v20:ArrayExact = CCallWithFrame reverse@0x1038, v10 CheckInterrupts - Return v22 + Return v20 "); } @@ -5178,7 +5178,7 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray PatchPoint MethodRedefined(Array@0x1000, reverse@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) v16:Fixnum[5] = Const Value(5) @@ -5202,14 +5202,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v14:StringExact = StringCopy v12 + v13:StringExact = StringCopy v12 PatchPoint MethodRedefined(Array@0x1008, join@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v25:StringExact = CCallVariadic join@0x1040, v11, v14 + v23:StringExact = CCallVariadic join@0x1040, v10, v13 CheckInterrupts - Return v25 + Return v23 "); } @@ -5229,12 +5229,12 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 PatchPoint MethodRedefined(String@0x1008, to_s@0x1010, cme:0x1018) PatchPoint NoSingletonClass(String@0x1008) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v12 + Return v11 "); } @@ -5254,12 +5254,12 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 PatchPoint MethodRedefined(String@0x1008, to_s@0x1010, cme:0x1018) PatchPoint NoSingletonClass(String@0x1008) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v12 + Return v11 "); } @@ -5282,10 +5282,10 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, to_s@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v23:StringExact = GuardType v9, StringExact + v22:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v23 + Return v22 "); } @@ -5310,14 +5310,14 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v15:ArrayExact = ArrayDup v13 - v18:Fixnum[0] = Const Value(0) + v14:ArrayExact = ArrayDup v13 + v19:Fixnum[0] = Const Value(0) PatchPoint MethodRedefined(Array@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Array@0x1008) - v31:BasicObject = ArrayArefFixnum v15, v18 + v30:BasicObject = ArrayArefFixnum v14, v19 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v31 + Return v30 "); } @@ -5343,12 +5343,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(Array@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v28:ArrayExact = GuardType v11, ArrayExact - v29:Fixnum = GuardType v12, Fixnum - v30:BasicObject = ArrayArefFixnum v28, v29 + v27:ArrayExact = GuardType v11, ArrayExact + v28:Fixnum = GuardType v12, Fixnum + v29:BasicObject = ArrayArefFixnum v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -5375,12 +5375,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(C@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v28:ArraySubclass[class_exact:C] = GuardType v11, ArraySubclass[class_exact:C] - v29:Fixnum = GuardType v12, Fixnum - v30:BasicObject = ArrayArefFixnum v28, v29 + v27:ArraySubclass[class_exact:C] = GuardType v11, ArraySubclass[class_exact:C] + v28:Fixnum = GuardType v12, Fixnum + v29:BasicObject = ArrayArefFixnum v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -5405,14 +5405,14 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): v13:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v15:HashExact = HashDup v13 - v18:Fixnum[1] = Const Value(1) + v14:HashExact = HashDup v13 + v19:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Hash@0x1008, []@0x1010, cme:0x1018) PatchPoint NoSingletonClass(Hash@0x1008) - v31:BasicObject = HashAref v15, v18 + v30:BasicObject = HashAref v14, v19 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v31 + Return v30 "); } @@ -5438,11 +5438,11 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(Hash@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v28:HashExact = GuardType v11, HashExact - v29:BasicObject = HashAref v28, v12 + v27:HashExact = GuardType v11, HashExact + v28:BasicObject = HashAref v27, v12 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v28 "); } @@ -5469,11 +5469,11 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(C@0x1000, []@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v28:HashSubclass[class_exact:C] = GuardType v11, HashSubclass[class_exact:C] - v29:BasicObject = HashAref v28, v12 + v27:HashSubclass[class_exact:C] = GuardType v11, HashSubclass[class_exact:C] + v28:BasicObject = HashAref v27, v12 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v28 "); } @@ -5496,14 +5496,14 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, H) - v24:HashExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v12:StaticSymbol[:a] = Const Value(VALUE(0x1010)) + v23:HashExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v13:StaticSymbol[:a] = Const Value(VALUE(0x1010)) PatchPoint MethodRedefined(Hash@0x1018, []@0x1020, cme:0x1028) PatchPoint NoSingletonClass(Hash@0x1018) - v28:BasicObject = HashAref v24, v12 + v27:BasicObject = HashAref v23, v13 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v27 "); } @@ -5525,13 +5525,13 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint SingleRactorMode PatchPoint StableConstantNames(0x1000, Thread) - v21:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v20:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008)) PatchPoint MethodRedefined(Class@0x1010, current@0x1018, cme:0x1020) PatchPoint NoSingletonClass(Class@0x1010) IncrCounter inline_cfunc_optimized_send_count - v26:BasicObject = CCall current@0x1048, v21 + v25:BasicObject = CCall current@0x1048, v20 CheckInterrupts - Return v26 + Return v25 "); } @@ -5554,14 +5554,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:Fixnum[1] = Const Value(1) - v15:Fixnum[10] = Const Value(10) + v16:Fixnum[1] = Const Value(1) + v18:Fixnum[10] = Const Value(10) PatchPoint MethodRedefined(Array@0x1000, []=@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v28:ArrayExact = GuardType v9, ArrayExact - v29:BasicObject = CCallVariadic []=@0x1038, v28, v14, v15 + v31:ArrayExact = GuardType v9, ArrayExact + v32:BasicObject = CCallVariadic []=@0x1038, v31, v16, v18 CheckInterrupts - Return v15 + Return v18 "); } @@ -5584,14 +5584,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) + v14:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Array@0x1000, <<@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v26:ArrayExact = GuardType v9, ArrayExact - ArrayPush v26, v13 + v25:ArrayExact = GuardType v9, ArrayExact + ArrayPush v25, v14 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v26 + Return v25 "); } @@ -5614,11 +5614,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) + v14:Fixnum[1] = Const Value(1) PatchPoint MethodRedefined(Array@0x1000, push@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) v24:ArrayExact = GuardType v9, ArrayExact - ArrayPush v24, v13 + ArrayPush v24, v14 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts Return v24 @@ -5644,15 +5644,15 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) - v14:Fixnum[2] = Const Value(2) - v15:Fixnum[3] = Const Value(3) + v14:Fixnum[1] = Const Value(1) + v16:Fixnum[2] = Const Value(2) + v18:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Array@0x1000, push@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v26:ArrayExact = GuardType v9, ArrayExact - v27:BasicObject = CCallVariadic push@0x1038, v26, v13, v14, v15 + v28:ArrayExact = GuardType v9, ArrayExact + v29:BasicObject = CCallVariadic push@0x1038, v28, v14, v16, v18 CheckInterrupts - Return v27 + Return v29 "); } @@ -5676,11 +5676,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v25:ArrayExact = GuardType v9, ArrayExact + v23:ArrayExact = GuardType v9, ArrayExact IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall length@0x1038, v25 + v25:Fixnum = CCall length@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -5704,11 +5704,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Array@0x1000) - v25:ArrayExact = GuardType v9, ArrayExact + v23:ArrayExact = GuardType v9, ArrayExact IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall size@0x1038, v25 + v25:Fixnum = CCall size@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -5730,13 +5730,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:RegexpExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v14:RegexpExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(String@0x1008, =~@0x1010, cme:0x1018) PatchPoint NoSingletonClass(String@0x1008) - v26:StringExact = GuardType v9, StringExact - v27:BasicObject = CCallWithFrame =~@0x1040, v26, v13 + v25:StringExact = GuardType v9, StringExact + v26:BasicObject = CCallWithFrame =~@0x1040, v25, v14 CheckInterrupts - Return v27 + Return v26 "); } @@ -5792,12 +5792,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, getbyte@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v29:StringExact = GuardType v11, StringExact - v30:Fixnum = GuardType v12, Fixnum + v30:StringExact = GuardType v11, StringExact + v31:Fixnum = GuardType v12, Fixnum IncrCounter inline_cfunc_optimized_send_count - v20:Fixnum[5] = Const Value(5) + v22:Fixnum[5] = Const Value(5) CheckInterrupts - Return v20 + Return v22 "); } @@ -5824,19 +5824,19 @@ mod hir_opt_tests { bb2(v12:BasicObject, v13:BasicObject, v14:BasicObject, v15:BasicObject): PatchPoint MethodRedefined(String@0x1000, setbyte@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v29:StringExact = GuardType v13, StringExact - v30:Fixnum = GuardType v14, Fixnum - v31:Fixnum = GuardType v15, Fixnum - v32:CInt64 = UnboxFixnum v30 - v33:CInt64 = LoadField v29, :len@0x1038 - v34:CInt64 = GuardLess v32, v33 - v35:CInt64[0] = Const CInt64(0) - v36:CInt64 = GuardGreaterEq v34, v35 - v37:StringExact = GuardNotFrozen v29 - v38:Fixnum = StringSetbyteFixnum v37, v30, v31 + v30:StringExact = GuardType v13, StringExact + v31:Fixnum = GuardType v14, Fixnum + v32:Fixnum = GuardType v15, Fixnum + v33:CInt64 = UnboxFixnum v31 + v34:CInt64 = LoadField v30, :len@0x1038 + v35:CInt64 = GuardLess v33, v34 + v36:CInt64[0] = Const CInt64(0) + v37:CInt64 = GuardGreaterEq v35, v36 + v38:StringExact = GuardNotFrozen v30 + v39:Fixnum = StringSetbyteFixnum v38, v31, v32 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v31 + Return v32 "); } @@ -5865,19 +5865,19 @@ mod hir_opt_tests { bb2(v12:BasicObject, v13:BasicObject, v14:BasicObject, v15:BasicObject): PatchPoint MethodRedefined(MyString@0x1000, setbyte@0x1008, cme:0x1010) PatchPoint NoSingletonClass(MyString@0x1000) - v29:StringSubclass[class_exact:MyString] = GuardType v13, StringSubclass[class_exact:MyString] - v30:Fixnum = GuardType v14, Fixnum - v31:Fixnum = GuardType v15, Fixnum - v32:CInt64 = UnboxFixnum v30 - v33:CInt64 = LoadField v29, :len@0x1038 - v34:CInt64 = GuardLess v32, v33 - v35:CInt64[0] = Const CInt64(0) - v36:CInt64 = GuardGreaterEq v34, v35 - v37:StringSubclass[class_exact:MyString] = GuardNotFrozen v29 - v38:Fixnum = StringSetbyteFixnum v37, v30, v31 + v30:StringSubclass[class_exact:MyString] = GuardType v13, StringSubclass[class_exact:MyString] + v31:Fixnum = GuardType v14, Fixnum + v32:Fixnum = GuardType v15, Fixnum + v33:CInt64 = UnboxFixnum v31 + v34:CInt64 = LoadField v30, :len@0x1038 + v35:CInt64 = GuardLess v33, v34 + v36:CInt64[0] = Const CInt64(0) + v37:CInt64 = GuardGreaterEq v35, v36 + v38:StringSubclass[class_exact:MyString] = GuardNotFrozen v30 + v39:Fixnum = StringSetbyteFixnum v38, v31, v32 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v31 + Return v32 "); } @@ -5904,10 +5904,10 @@ mod hir_opt_tests { bb2(v12:BasicObject, v13:BasicObject, v14:BasicObject, v15:BasicObject): PatchPoint MethodRedefined(String@0x1000, setbyte@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v29:StringExact = GuardType v13, StringExact - v30:BasicObject = CCallWithFrame setbyte@0x1038, v29, v14, v15 + v30:StringExact = GuardType v13, StringExact + v31:BasicObject = CCallWithFrame setbyte@0x1038, v30, v14, v15 CheckInterrupts - Return v30 + Return v31 "); } @@ -5932,11 +5932,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, empty?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v25:StringExact = GuardType v9, StringExact + v23:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count - v27:BoolExact = CCall empty?@0x1038, v25 + v25:BoolExact = CCall empty?@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -5962,7 +5962,7 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, empty?@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v9, StringExact + v27:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[4] = Const Value(4) CheckInterrupts @@ -5989,12 +5989,12 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, succ@0x1008, cme:0x1010) - v24:Fixnum = GuardType v9, Fixnum - v25:Fixnum[1] = Const Value(1) - v26:Fixnum = FixnumAdd v24, v25 + v22:Fixnum = GuardType v9, Fixnum + v23:Fixnum[1] = Const Value(1) + v24:Fixnum = FixnumAdd v22, v23 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v26 + Return v24 "); } @@ -6017,10 +6017,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, succ@0x1008, cme:0x1010) - v24:Integer = GuardType v9, Integer - v25:BasicObject = CCallWithFrame succ@0x1038, v24 + v22:Integer = GuardType v9, Integer + v23:BasicObject = CCallWithFrame succ@0x1038, v22 CheckInterrupts - Return v25 + Return v23 "); } @@ -6044,12 +6044,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, <<@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v11, StringExact - v29:String = GuardType v12, String - v30:StringExact = StringAppend v28, v29 + v27:StringExact = GuardType v11, StringExact + v28:String = GuardType v12, String + v29:StringExact = StringAppend v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v27 "); } @@ -6074,10 +6074,10 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, <<@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v11, StringExact - v29:BasicObject = CCallWithFrame <<@0x1038, v28, v12 + v27:StringExact = GuardType v11, StringExact + v28:BasicObject = CCallWithFrame <<@0x1038, v27, v12 CheckInterrupts - Return v29 + Return v28 "); } @@ -6103,12 +6103,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, <<@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v11, StringExact - v29:String = GuardType v12, String - v30:StringExact = StringAppend v28, v29 + v27:StringExact = GuardType v11, StringExact + v28:String = GuardType v12, String + v29:StringExact = StringAppend v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v28 + Return v27 "); } @@ -6134,10 +6134,10 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(MyString@0x1000, <<@0x1008, cme:0x1010) PatchPoint NoSingletonClass(MyString@0x1000) - v28:StringSubclass[class_exact:MyString] = GuardType v11, StringSubclass[class_exact:MyString] - v29:BasicObject = CCallWithFrame <<@0x1038, v28, v12 + v27:StringSubclass[class_exact:MyString] = GuardType v11, StringSubclass[class_exact:MyString] + v28:BasicObject = CCallWithFrame <<@0x1038, v27, v12 CheckInterrupts - Return v29 + Return v28 "); } @@ -6157,10 +6157,10 @@ mod hir_opt_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[4] = Const Value(4) - v11:Fixnum[1] = Const Value(1) - v13:BasicObject = SendWithoutBlock v10, :succ, v11 + v12:Fixnum[1] = Const Value(1) + v14:BasicObject = SendWithoutBlock v10, :succ, v12 CheckInterrupts - Return v13 + Return v14 "); } @@ -6214,12 +6214,12 @@ mod hir_opt_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, ^@0x1008, cme:0x1010) - v28:Fixnum = GuardType v11, Fixnum - v29:Fixnum = GuardType v12, Fixnum + v29:Fixnum = GuardType v11, Fixnum + v30:Fixnum = GuardType v12, Fixnum IncrCounter inline_cfunc_optimized_send_count - v20:Fixnum[42] = Const Value(42) + v22:Fixnum[42] = Const Value(42) CheckInterrupts - Return v20 + Return v22 "); } @@ -6337,11 +6337,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Hash@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v25:HashExact = GuardType v9, HashExact + v23:HashExact = GuardType v9, HashExact IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall size@0x1038, v25 + v25:Fixnum = CCall size@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -6367,7 +6367,7 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Hash@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Hash@0x1000) - v28:HashExact = GuardType v9, HashExact + v27:HashExact = GuardType v9, HashExact IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[5] = Const Value(5) CheckInterrupts @@ -6395,7 +6395,7 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] @@ -6427,7 +6427,7 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] @@ -6462,7 +6462,7 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] @@ -6496,17 +6496,17 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) - v14:FalseClass = Const Value(false) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v16:FalseClass = Const Value(false) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) - v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] PatchPoint MethodRedefined(C@0x1008, foo@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v29:FalseClass = Const Value(false) + v30:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v30 "); } @@ -6531,17 +6531,17 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) - v14:NilClass = Const Value(nil) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v16:NilClass = Const Value(nil) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) - v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] PatchPoint MethodRedefined(C@0x1008, foo@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v29:FalseClass = Const Value(false) + v30:FalseClass = Const Value(false) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v30 "); } @@ -6566,17 +6566,17 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) - v14:TrueClass = Const Value(true) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v16:TrueClass = Const Value(true) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) - v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] PatchPoint MethodRedefined(C@0x1008, foo@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v29:TrueClass = Const Value(true) + v30:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v30 "); } @@ -6600,17 +6600,17 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) - v14:Fixnum[4] = Const Value(4) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v16:Fixnum[4] = Const Value(4) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) - v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] PatchPoint MethodRedefined(C@0x1008, foo@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v29:TrueClass = Const Value(true) + v30:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v30 "); } @@ -6634,17 +6634,17 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) - v14:NilClass = Const Value(nil) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v16:NilClass = Const Value(nil) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) - v25:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v26:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] PatchPoint MethodRedefined(C@0x1008, foo@0x1040, cme:0x1048) PatchPoint NoSingletonClass(C@0x1008) - v29:TrueClass = Const Value(true) + v30:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v29 + Return v30 "); } @@ -6667,7 +6667,7 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] @@ -6703,11 +6703,11 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) + v14:StaticSymbol[:foo] = Const Value(VALUE(0x1000)) PatchPoint MethodRedefined(C@0x1008, respond_to?@0x1010, cme:0x1018) PatchPoint NoSingletonClass(C@0x1008) v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] - v25:BasicObject = CCallVariadic respond_to?@0x1040, v24, v13 + v25:BasicObject = CCallVariadic respond_to?@0x1040, v24, v14 CheckInterrupts Return v25 "); @@ -6732,10 +6732,10 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v19 + Return v18 "); } @@ -6759,11 +6759,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:StringExact[VALUE(0x1038)] = Const Value(VALUE(0x1038)) + v21:StringExact[VALUE(0x1038)] = Const Value(VALUE(0x1038)) CheckInterrupts - Return v22 + Return v21 "); } @@ -6786,11 +6786,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:NilClass = Const Value(nil) + v21:NilClass = Const Value(nil) CheckInterrupts - Return v22 + Return v21 "); } @@ -6813,11 +6813,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:TrueClass = Const Value(true) + v21:TrueClass = Const Value(true) CheckInterrupts - Return v22 + Return v21 "); } @@ -6840,11 +6840,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:FalseClass = Const Value(false) + v21:FalseClass = Const Value(false) CheckInterrupts - Return v22 + Return v21 "); } @@ -6867,11 +6867,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[0] = Const Value(0) + v21:Fixnum[0] = Const Value(0) CheckInterrupts - Return v22 + Return v21 "); } @@ -6894,11 +6894,11 @@ mod hir_opt_tests { bb2(v6:BasicObject): PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v19:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v18:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count - v22:Fixnum[1] = Const Value(1) + v21:Fixnum[1] = Const Value(1) CheckInterrupts - Return v22 + Return v21 "); } @@ -6919,13 +6919,13 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[3] = Const Value(3) + v11:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) v20:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v10 + Return v11 "); } @@ -6946,15 +6946,15 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) - v12:Fixnum[3] = Const Value(3) + v11:Fixnum[1] = Const Value(1) + v13:Fixnum[2] = Const Value(2) + v15:Fixnum[3] = Const Value(3) PatchPoint MethodRedefined(Object@0x1000, callee@0x1008, cme:0x1010) PatchPoint NoSingletonClass(Object@0x1000) - v22:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] + v24:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v6, HeapObject[class_exact*:Object@VALUE(0x1000)] IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v12 + Return v15 "); } @@ -6984,22 +6984,22 @@ mod hir_opt_tests { v6:NilClass = Const Value(nil) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:NilClass): - v14:ArrayExact = NewArray - v18:ArrayExact = ToArray v14 + v13:ArrayExact = NewArray + v19:ArrayExact = ToArray v13 IncrCounter complex_arg_pass_caller_splat - v20:BasicObject = SendWithoutBlock v8, :foo, v18 - v23:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v25:StringExact = StringCopy v23 + v21:BasicObject = SendWithoutBlock v8, :foo, v19 + v25:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v26:StringExact = StringCopy v25 PatchPoint NoEPEscape(test) - v29:ArrayExact = ToArray v14 + v31:ArrayExact = ToArray v13 IncrCounter complex_arg_pass_caller_splat - v31:BasicObject = SendWithoutBlock v25, :display, v29 + v33:BasicObject = SendWithoutBlock v26, :display, v31 PatchPoint NoEPEscape(test) - v37:ArrayExact = ToArray v14 + v41:ArrayExact = ToArray v13 IncrCounter complex_arg_pass_caller_splat - v39:BasicObject = SendWithoutBlock v8, :itself, v37 + v43:BasicObject = SendWithoutBlock v8, :itself, v41 CheckInterrupts - Return v39 + Return v43 "); } @@ -7021,10 +7021,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Symbol@0x1000, to_sym@0x1008, cme:0x1010) - v21:StaticSymbol = GuardType v9, StaticSymbol + v20:StaticSymbol = GuardType v9, StaticSymbol IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v21 + Return v20 "); } @@ -7046,10 +7046,10 @@ mod hir_opt_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(Integer@0x1000, to_i@0x1008, cme:0x1010) - v21:Fixnum = GuardType v9, Fixnum + v20:Fixnum = GuardType v9, Fixnum IncrCounter inline_iseq_optimized_send_count CheckInterrupts - Return v21 + Return v20 "); } @@ -7073,12 +7073,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, ==@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v11, StringExact - v29:String = GuardType v12, String - v30:BoolExact = CCall String#==@0x1038, v28, v29 + v27:StringExact = GuardType v11, StringExact + v28:String = GuardType v12, String + v29:BoolExact = CCall String#==@0x1038, v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -7104,12 +7104,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(C@0x1000, ==@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v28:StringSubclass[class_exact:C] = GuardType v11, StringSubclass[class_exact:C] - v29:String = GuardType v12, String - v30:BoolExact = CCall String#==@0x1038, v28, v29 + v27:StringSubclass[class_exact:C] = GuardType v11, StringSubclass[class_exact:C] + v28:String = GuardType v12, String + v29:BoolExact = CCall String#==@0x1038, v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -7135,12 +7135,12 @@ mod hir_opt_tests { bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint MethodRedefined(String@0x1000, ==@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v11, StringExact - v29:String = GuardType v12, String - v30:BoolExact = CCall String#==@0x1038, v28, v29 + v27:StringExact = GuardType v11, StringExact + v28:String = GuardType v12, String + v29:BoolExact = CCall String#==@0x1038, v27, v28 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v30 + Return v29 "); } @@ -7256,11 +7256,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v25:StringExact = GuardType v9, StringExact + v23:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall size@0x1038, v25 + v25:Fixnum = CCall size@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -7286,7 +7286,7 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, size@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v9, StringExact + v27:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[5] = Const Value(5) CheckInterrupts @@ -7315,12 +7315,12 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, bytesize@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v23:StringExact = GuardType v9, StringExact - v24:CInt64 = LoadField v23, :len@0x1038 - v25:Fixnum = BoxFixnum v24 + v22:StringExact = GuardType v9, StringExact + v23:CInt64 = LoadField v22, :len@0x1038 + v24:Fixnum = BoxFixnum v23 IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - Return v25 + Return v24 "); } @@ -7348,9 +7348,9 @@ mod hir_opt_tests { PatchPoint NoSingletonClass(String@0x1000) v26:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count - v17:Fixnum[5] = Const Value(5) + v18:Fixnum[5] = Const Value(5) CheckInterrupts - Return v17 + Return v18 "); } @@ -7375,11 +7375,11 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, length@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v25:StringExact = GuardType v9, StringExact + v23:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count - v27:Fixnum = CCall length@0x1038, v25 + v25:Fixnum = CCall length@0x1038, v23 CheckInterrupts - Return v27 + Return v25 "); } @@ -7400,14 +7400,14 @@ mod hir_opt_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[1] = Const Value(1) + v11:Fixnum[1] = Const Value(1) IncrCounter complex_arg_pass_param_rest IncrCounter complex_arg_pass_param_kw IncrCounter complex_arg_pass_param_kwrest IncrCounter complex_arg_pass_param_block - v12:BasicObject = SendWithoutBlock v6, :fancy, v10 + v13:BasicObject = SendWithoutBlock v6, :fancy, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -7457,7 +7457,7 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(String@0x1000, length@0x1008, cme:0x1010) PatchPoint NoSingletonClass(String@0x1000) - v28:StringExact = GuardType v9, StringExact + v27:StringExact = GuardType v9, StringExact IncrCounter inline_cfunc_optimized_send_count v19:Fixnum[4] = Const Value(4) CheckInterrupts @@ -7500,8 +7500,8 @@ mod hir_opt_tests { v40:HeapObject[class_exact:C] = GuardType v6, HeapObject[class_exact:C] IncrCounter inline_iseq_optimized_send_count v43:HeapObject = InvokeBuiltin leaf _bi20, v40 - v12:StaticSymbol[:_lex_actions] = Const Value(VALUE(0x1038)) - v13:TrueClass = Const Value(true) + v13:StaticSymbol[:_lex_actions] = Const Value(VALUE(0x1038)) + v15:TrueClass = Const Value(true) PatchPoint MethodRedefined(Class@0x1040, respond_to?@0x1048, cme:0x1050) PatchPoint NoSingletonClass(Class@0x1040) v47:ModuleSubclass[class_exact*:Class@VALUE(0x1040)] = GuardType v43, ModuleSubclass[class_exact*:Class@VALUE(0x1040)] @@ -7510,9 +7510,9 @@ mod hir_opt_tests { v51:TrueClass = Const Value(true) IncrCounter inline_cfunc_optimized_send_count CheckInterrupts - v22:StaticSymbol[:CORRECT] = Const Value(VALUE(0x10a8)) + v24:StaticSymbol[:CORRECT] = Const Value(VALUE(0x10a8)) CheckInterrupts - Return v22 + Return v24 "); } @@ -7536,16 +7536,16 @@ mod hir_opt_tests { bb2(v8:BasicObject, v9:BasicObject): PatchPoint MethodRedefined(C@0x1000, class@0x1008, cme:0x1010) PatchPoint NoSingletonClass(C@0x1000) - v24:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] + v23:HeapObject[class_exact:C] = GuardType v9, HeapObject[class_exact:C] IncrCounter inline_iseq_optimized_send_count - v27:HeapObject = InvokeBuiltin leaf _bi20, v24 + v26:HeapObject = InvokeBuiltin leaf _bi20, v23 PatchPoint MethodRedefined(Class@0x1038, name@0x1040, cme:0x1048) PatchPoint NoSingletonClass(Class@0x1038) - v31:ModuleSubclass[class_exact*:Class@VALUE(0x1038)] = GuardType v27, ModuleSubclass[class_exact*:Class@VALUE(0x1038)] + v30:ModuleSubclass[class_exact*:Class@VALUE(0x1038)] = GuardType v26, ModuleSubclass[class_exact*:Class@VALUE(0x1038)] IncrCounter inline_cfunc_optimized_send_count - v33:StringExact|NilClass = CCall name@0x1070, v31 + v32:StringExact|NilClass = CCall name@0x1070, v30 CheckInterrupts - Return v33 + Return v32 "); } } diff --git a/zjit/src/hir/tests.rs b/zjit/src/hir/tests.rs index accc104719..b3230b71c8 100644 --- a/zjit/src/hir/tests.rs +++ b/zjit/src/hir/tests.rs @@ -32,13 +32,13 @@ mod snapshot_tests { v13:Any = Snapshot FrameState { pc: 0x1000, stack: [], locals: [a=v11, b=v12] } v14:Any = Snapshot FrameState { pc: 0x1008, stack: [], locals: [a=v11, b=v12] } PatchPoint NoTracePoint - v16:Any = Snapshot FrameState { pc: 0x1010, stack: [v11, v12], locals: [a=v11, b=v12] } - v17:ArrayExact = NewArray v11, v12 - v18:Any = Snapshot FrameState { pc: 0x1018, stack: [v17], locals: [a=v11, b=v12] } + v16:Any = Snapshot FrameState { pc: 0x1010, stack: [v11], locals: [a=v11, b=v12] } + v17:Any = Snapshot FrameState { pc: 0x1018, stack: [v11, v12], locals: [a=v11, b=v12] } + v18:ArrayExact = NewArray v11, v12 + v19:Any = Snapshot FrameState { pc: 0x1020, stack: [v18], locals: [a=v11, b=v12] } PatchPoint NoTracePoint - v20:Any = Snapshot FrameState { pc: 0x1018, stack: [v17], locals: [a=v11, b=v12] } CheckInterrupts - Return v17 + Return v18 "); } } @@ -137,15 +137,15 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v9, v10) bb2(v12:BasicObject, v13:BasicObject): - v15:Fixnum[1] = Const Value(1) - Jump bb4(v12, v15) - bb3(v18:BasicObject, v19:BasicObject): + v16:Fixnum[1] = Const Value(1) + Jump bb4(v12, v16) + bb3(v20:BasicObject, v21:BasicObject): EntryPoint JIT(1) - Jump bb4(v18, v19) - bb4(v21:BasicObject, v22:BasicObject): - v26:Fixnum[123] = Const Value(123) + Jump bb4(v20, v21) + bb4(v23:BasicObject, v24:BasicObject): + v28:Fixnum[123] = Const Value(123) CheckInterrupts - Return v26 + Return v28 "); } @@ -183,9 +183,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:ArrayExact = NewArray + v10:ArrayExact = NewArray CheckInterrupts - Return v11 + Return v10 "); } @@ -226,9 +226,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:ArrayExact = NewArray v11, v12 + v18:ArrayExact = NewArray v11, v12 CheckInterrupts - Return v17 + Return v18 "); } @@ -247,10 +247,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[10] = Const Value(10) - v15:RangeExact = NewRange v9 NewRangeInclusive v13 + v14:Fixnum[10] = Const Value(10) + v16:RangeExact = NewRange v9 NewRangeInclusive v14 CheckInterrupts - Return v15 + Return v16 "); } @@ -270,9 +270,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:RangeExact = NewRange v11 NewRangeInclusive v12 + v18:RangeExact = NewRange v11 NewRangeInclusive v12 CheckInterrupts - Return v17 + Return v18 "); } @@ -291,10 +291,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[10] = Const Value(10) - v15:RangeExact = NewRange v9 NewRangeExclusive v13 + v14:Fixnum[10] = Const Value(10) + v16:RangeExact = NewRange v9 NewRangeExclusive v14 CheckInterrupts - Return v15 + Return v16 "); } @@ -314,9 +314,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:RangeExact = NewRange v11 NewRangeExclusive v12 + v18:RangeExact = NewRange v11 NewRangeExclusive v12 CheckInterrupts - Return v17 + Return v18 "); } @@ -335,9 +335,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:ArrayExact = ArrayDup v10 + v11:ArrayExact = ArrayDup v10 CheckInterrupts - Return v12 + Return v11 "); } @@ -356,9 +356,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:HashExact = HashDup v10 + v11:HashExact = HashDup v10 CheckInterrupts - Return v12 + Return v11 "); } @@ -376,9 +376,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:HashExact = NewHash + v10:HashExact = NewHash CheckInterrupts - Return v11 + Return v10 "); } @@ -399,10 +399,10 @@ pub mod hir_build_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): v16:StaticSymbol[:a] = Const Value(VALUE(0x1000)) - v17:StaticSymbol[:b] = Const Value(VALUE(0x1008)) - v19:HashExact = NewHash v16: v11, v17: v12 + v19:StaticSymbol[:b] = Const Value(VALUE(0x1008)) + v22:HashExact = NewHash v16: v11, v19: v12 CheckInterrupts - Return v19 + Return v22 "); } @@ -421,9 +421,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:StringExact = StringCopy v10 + v11:StringExact = StringCopy v10 CheckInterrupts - Return v12 + Return v11 "); } @@ -522,8 +522,8 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v11:Fixnum[2] = Const Value(2) - v15:BasicObject = SendWithoutBlock v10, :+, v11 + v12:Fixnum[2] = Const Value(2) + v15:BasicObject = SendWithoutBlock v10, :+, v12 CheckInterrupts Return v15 "); @@ -546,9 +546,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -592,9 +592,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -638,9 +638,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -684,9 +684,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS) - v12:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v11:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) CheckInterrupts - Return v12 + Return v11 "); } @@ -774,16 +774,16 @@ pub mod hir_build_tests { bb2(v6:BasicObject): v10:BasicObject = GetLocal l2, EP@4 SetLocal l1, EP@3, v10 - v14:BasicObject = GetLocal l1, EP@3 - v15:BasicObject = GetLocal l2, EP@4 - v19:BasicObject = SendWithoutBlock v14, :+, v15 - SetLocal l2, EP@4, v19 - v23:BasicObject = GetLocal l2, EP@4 - v24:BasicObject = GetLocal l3, EP@5 - v28:BasicObject = SendWithoutBlock v23, :+, v24 - SetLocal l3, EP@5, v28 + v15:BasicObject = GetLocal l1, EP@3 + v17:BasicObject = GetLocal l2, EP@4 + v20:BasicObject = SendWithoutBlock v15, :+, v17 + SetLocal l2, EP@4, v20 + v25:BasicObject = GetLocal l2, EP@4 + v27:BasicObject = GetLocal l3, EP@5 + v30:BasicObject = SendWithoutBlock v25, :+, v27 + SetLocal l3, EP@5, v30 CheckInterrupts - Return v28 + Return v30 " ); } @@ -813,14 +813,14 @@ pub mod hir_build_tests { bb2(v14:BasicObject, v15:BasicObject, v16:NilClass): v20:Fixnum[1] = Const Value(1) Jump bb4(v14, v20, v20) - bb3(v23:BasicObject, v24:BasicObject): + bb3(v26:BasicObject, v27:BasicObject): EntryPoint JIT(1) - v25:NilClass = Const Value(nil) - Jump bb4(v23, v24, v25) - bb4(v27:BasicObject, v28:BasicObject, v29:NilClass|Fixnum): - v34:ArrayExact = NewArray v28, v29 + v28:NilClass = Const Value(nil) + Jump bb4(v26, v27, v28) + bb4(v30:BasicObject, v31:BasicObject, v32:NilClass|Fixnum): + v38:ArrayExact = NewArray v31, v32 CheckInterrupts - Return v34 + Return v38 "); } @@ -879,9 +879,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:StringExact|NilClass = DefinedIvar v6, :@foo + v10:StringExact|NilClass = DefinedIvar v6, :@foo CheckInterrupts - Return v11 + Return v10 "); } @@ -907,17 +907,17 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:TrueClass|NilClass = DefinedIvar v6, :@foo + v10:TrueClass|NilClass = DefinedIvar v6, :@foo CheckInterrupts - v14:CBool = Test v11 - IfFalse v14, bb3(v6) - v18:Fixnum[3] = Const Value(3) + v13:CBool = Test v10 + IfFalse v13, bb3(v6) + v17:Fixnum[3] = Const Value(3) CheckInterrupts - Return v18 - bb3(v24:BasicObject): - v28:Fixnum[4] = Const Value(4) + Return v17 + bb3(v22:BasicObject): + v26:Fixnum[4] = Const Value(4) CheckInterrupts - Return v28 + Return v26 "); } @@ -939,12 +939,12 @@ pub mod hir_build_tests { bb2(v6:BasicObject): v10:NilClass = Const Value(nil) v12:StringExact|NilClass = Defined constant, v10 - v14:StringExact|NilClass = Defined func, v6 - v15:NilClass = Const Value(nil) - v17:StringExact|NilClass = Defined global-variable, v15 - v19:ArrayExact = NewArray v12, v14, v17 + v15:StringExact|NilClass = Defined func, v6 + v17:NilClass = Const Value(nil) + v19:StringExact|NilClass = Defined global-variable, v17 + v21:ArrayExact = NewArray v12, v15, v19 CheckInterrupts - Return v19 + Return v21 "); } @@ -977,10 +977,10 @@ pub mod hir_build_tests { v19:Fixnum[3] = Const Value(3) CheckInterrupts Return v19 - bb3(v25:BasicObject, v26:BasicObject): - v30:Fixnum[4] = Const Value(4) + bb3(v24:BasicObject, v25:BasicObject): + v29:Fixnum[4] = Const Value(4) CheckInterrupts - Return v30 + Return v29 "); } @@ -1016,14 +1016,14 @@ pub mod hir_build_tests { PatchPoint NoEPEscape(test) CheckInterrupts Jump bb4(v10, v11, v22) - bb3(v28:BasicObject, v29:BasicObject, v30:NilClass): - v34:Fixnum[4] = Const Value(4) + bb3(v29:BasicObject, v30:BasicObject, v31:NilClass): + v35:Fixnum[4] = Const Value(4) PatchPoint NoEPEscape(test) - Jump bb4(v28, v29, v34) - bb4(v38:BasicObject, v39:BasicObject, v40:Fixnum): + Jump bb4(v29, v30, v35) + bb4(v40:BasicObject, v41:BasicObject, v42:Fixnum): PatchPoint NoEPEscape(test) CheckInterrupts - Return v40 + Return v42 "); } @@ -1306,27 +1306,27 @@ pub mod hir_build_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:NilClass, v12:NilClass): v16:Fixnum[0] = Const Value(0) - v19:Fixnum[10] = Const Value(10) + v20:Fixnum[10] = Const Value(10) CheckInterrupts - Jump bb4(v10, v16, v19) - bb4(v25:BasicObject, v26:BasicObject, v27:BasicObject): + Jump bb4(v10, v16, v20) + bb4(v26:BasicObject, v27:BasicObject, v28:BasicObject): PatchPoint NoEPEscape(test) - v31:Fixnum[0] = Const Value(0) - v35:BasicObject = SendWithoutBlock v27, :>, v31 + v34:Fixnum[0] = Const Value(0) + v37:BasicObject = SendWithoutBlock v28, :>, v34 CheckInterrupts - v38:CBool = Test v35 - IfTrue v38, bb3(v25, v26, v27) - v40:NilClass = Const Value(nil) + v40:CBool = Test v37 + IfTrue v40, bb3(v26, v27, v28) + v43:NilClass = Const Value(nil) PatchPoint NoEPEscape(test) CheckInterrupts - Return v26 - bb3(v50:BasicObject, v51:BasicObject, v52:BasicObject): + Return v27 + bb3(v53:BasicObject, v54:BasicObject, v55:BasicObject): PatchPoint NoEPEscape(test) - v58:Fixnum[1] = Const Value(1) - v62:BasicObject = SendWithoutBlock v51, :+, v58 - v65:Fixnum[1] = Const Value(1) - v69:BasicObject = SendWithoutBlock v52, :-, v65 - Jump bb4(v50, v62, v69) + v62:Fixnum[1] = Const Value(1) + v65:BasicObject = SendWithoutBlock v54, :+, v62 + v70:Fixnum[1] = Const Value(1) + v73:BasicObject = SendWithoutBlock v55, :-, v70 + Jump bb4(v53, v65, v73) "); } @@ -1381,11 +1381,11 @@ pub mod hir_build_tests { bb2(v8:BasicObject, v9:NilClass): v13:TrueClass = Const Value(true) CheckInterrupts - v18:CBool[true] = Test v13 - IfFalse v18, bb3(v8, v13) - v22:Fixnum[3] = Const Value(3) + v19:CBool[true] = Test v13 + IfFalse v19, bb3(v8, v13) + v23:Fixnum[3] = Const Value(3) CheckInterrupts - Return v22 + Return v23 bb3(v28, v29): v33 = Const Value(4) CheckInterrupts @@ -1414,11 +1414,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:Fixnum[2] = Const Value(2) - v11:Fixnum[3] = Const Value(3) - v13:BasicObject = SendWithoutBlock v6, :bar, v10, v11 + v11:Fixnum[2] = Const Value(2) + v13:Fixnum[3] = Const Value(3) + v15:BasicObject = SendWithoutBlock v6, :bar, v11, v13 CheckInterrupts - Return v13 + Return v15 "); } @@ -1471,13 +1471,13 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v11:Fixnum[123] = Const Value(123) - v13:BasicObject = ObjToString v11 - v15:String = AnyToString v11, str: v13 - v17:StringExact = StringConcat v10, v15 - v19:Symbol = StringIntern v17 + v12:Fixnum[123] = Const Value(123) + v15:BasicObject = ObjToString v12 + v17:String = AnyToString v12, str: v15 + v19:StringExact = StringConcat v10, v17 + v21:Symbol = StringIntern v19 CheckInterrupts - Return v19 + Return v21 "); } @@ -1496,14 +1496,14 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v12:ArrayExact = ArrayDup v10 - v13:ArrayExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) - v15:ArrayExact = ArrayDup v13 - v16:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) - v18:StringExact = StringCopy v16 - v19:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) - v21:StringExact = StringCopy v19 + v11:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v12:ArrayExact = ArrayDup v11 + v14:ArrayExact[VALUE(0x1008)] = Const Value(VALUE(0x1008)) + v15:ArrayExact = ArrayDup v14 + v17:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) + v18:StringExact = StringCopy v17 + v20:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010)) + v21:StringExact = StringCopy v20 v23:BasicObject = SendWithoutBlock v6, :unknown_method, v12, v15, v18, v21 CheckInterrupts Return v23 @@ -1526,10 +1526,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:ArrayExact = ToArray v9 - v16:BasicObject = SendWithoutBlock v8, :foo, v14 + v15:ArrayExact = ToArray v9 + v17:BasicObject = SendWithoutBlock v8, :foo, v15 CheckInterrupts - Return v16 + Return v17 "); } @@ -1549,9 +1549,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:BasicObject = Send v8, 0x1000, :foo, v9 + v15:BasicObject = Send v8, 0x1000, :foo, v9 CheckInterrupts - Return v14 + Return v15 "); } @@ -1571,10 +1571,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Fixnum[1] = Const Value(1) - v15:BasicObject = SendWithoutBlock v8, :foo, v13 + v14:Fixnum[1] = Const Value(1) + v16:BasicObject = SendWithoutBlock v8, :foo, v14 CheckInterrupts - Return v15 + Return v16 "); } @@ -1594,9 +1594,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:BasicObject = SendWithoutBlock v8, :foo, v9 + v15:BasicObject = SendWithoutBlock v8, :foo, v9 CheckInterrupts - Return v14 + Return v15 "); } @@ -1659,10 +1659,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v10:NilClass = Const Value(nil) - v12:BasicObject = InvokeSuper v6, 0x1000, v10 + v11:NilClass = Const Value(nil) + v13:BasicObject = InvokeSuper v6, 0x1000, v11 CheckInterrupts - Return v12 + Return v13 "); } @@ -1724,17 +1724,17 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v13:Class[VMFrozenCore] = Const Value(VALUE(0x1000)) - v15:HashExact = NewHash + v14:Class[VMFrozenCore] = Const Value(VALUE(0x1000)) + v16:HashExact = NewHash PatchPoint NoEPEscape(test) - v19:BasicObject = SendWithoutBlock v13, :core#hash_merge_kwd, v15, v9 - v20:Class[VMFrozenCore] = Const Value(VALUE(0x1000)) - v21:StaticSymbol[:b] = Const Value(VALUE(0x1008)) - v22:Fixnum[1] = Const Value(1) - v24:BasicObject = SendWithoutBlock v20, :core#hash_merge_ptr, v19, v21, v22 - v26:BasicObject = SendWithoutBlock v8, :foo, v24 + v21:BasicObject = SendWithoutBlock v14, :core#hash_merge_kwd, v16, v9 + v23:Class[VMFrozenCore] = Const Value(VALUE(0x1000)) + v26:StaticSymbol[:b] = Const Value(VALUE(0x1008)) + v28:Fixnum[1] = Const Value(1) + v30:BasicObject = SendWithoutBlock v23, :core#hash_merge_ptr, v21, v26, v28 + v32:BasicObject = SendWithoutBlock v8, :foo, v30 CheckInterrupts - Return v26 + Return v32 "); } @@ -1754,12 +1754,12 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:ArrayExact): - v14:ArrayExact = ToNewArray v9 - v15:Fixnum[1] = Const Value(1) - ArrayPush v14, v15 - v19:BasicObject = SendWithoutBlock v8, :foo, v14 + v15:ArrayExact = ToNewArray v9 + v17:Fixnum[1] = Const Value(1) + ArrayPush v15, v17 + v21:BasicObject = SendWithoutBlock v8, :foo, v15 CheckInterrupts - Return v19 + Return v21 "); } @@ -1779,9 +1779,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v14:BasicObject = SendForward 0x1000, :foo, v9 + v15:BasicObject = SendForward 0x1000, :foo, v9 CheckInterrupts - Return v14 + Return v15 "); } @@ -1806,10 +1806,10 @@ pub mod hir_build_tests { v14:NilClass = Const Value(nil) Jump bb2(v9, v10, v11, v12, v13, v14) bb2(v16:BasicObject, v17:BasicObject, v18:ArrayExact, v19:BasicObject, v20:BasicObject, v21:NilClass): - v26:ArrayExact = ToArray v18 + v28:ArrayExact = ToArray v18 PatchPoint NoEPEscape(test) GuardBlockParamProxy l0 - v31:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) + v34:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) SideExit UnhandledYARVInsn(splatkw) "); } @@ -1832,19 +1832,19 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v11:BasicObject = GetConstantPath 0x1000 - v12:NilClass = Const Value(nil) - v14:CBool = IsMethodCFunc v11, :new - IfFalse v14, bb3(v6, v12, v11) - v16:HeapBasicObject = ObjectAlloc v11 - v18:BasicObject = SendWithoutBlock v16, :initialize + v13:NilClass = Const Value(nil) + v16:CBool = IsMethodCFunc v11, :new + IfFalse v16, bb3(v6, v13, v11) + v18:HeapBasicObject = ObjectAlloc v11 + v20:BasicObject = SendWithoutBlock v18, :initialize CheckInterrupts - Jump bb4(v6, v16, v18) - bb3(v22:BasicObject, v23:NilClass, v24:BasicObject): - v27:BasicObject = SendWithoutBlock v24, :new - Jump bb4(v22, v27, v23) - bb4(v29:BasicObject, v30:BasicObject, v31:BasicObject): + Jump bb4(v6, v18, v20) + bb3(v24:BasicObject, v25:NilClass, v26:BasicObject): + v29:BasicObject = SendWithoutBlock v26, :new + Jump bb4(v24, v29, v25) + bb4(v32:BasicObject, v33:BasicObject, v34:BasicObject): CheckInterrupts - Return v30 + Return v33 "); } @@ -1866,9 +1866,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_MAX) - v12:BasicObject = ArrayMax + v11:BasicObject = ArrayMax CheckInterrupts - Return v12 + Return v11 "); } @@ -1891,9 +1891,9 @@ pub mod hir_build_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_MAX) - v18:BasicObject = ArrayMax v11, v12 + v19:BasicObject = ArrayMax v11, v12 CheckInterrupts - Return v18 + Return v19 "); } @@ -1989,8 +1989,8 @@ pub mod hir_build_tests { Jump bb2(v8, v9, v10, v11, v12) bb2(v14:BasicObject, v15:BasicObject, v16:BasicObject, v17:NilClass, v18:NilClass): v25:BasicObject = SendWithoutBlock v15, :+, v16 - v28:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v30:StringExact = StringCopy v28 + v31:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v32:StringExact = StringCopy v31 SideExit UnknownNewarraySend(PACK) "); } @@ -2026,14 +2026,14 @@ pub mod hir_build_tests { bb2(v14:BasicObject, v15:BasicObject, v16:BasicObject, v17:NilClass, v18:NilClass): v25:BasicObject = SendWithoutBlock v15, :+, v16 PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, 33) - v30:BoolExact = ArrayInclude v15, v16 | v16 + v33:BoolExact = ArrayInclude v15, v16 | v16 PatchPoint NoEPEscape(test) - v35:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v37:ArrayExact = ArrayDup v35 - v39:BasicObject = SendWithoutBlock v14, :puts, v37 + v40:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) + v41:ArrayExact = ArrayDup v40 + v43:BasicObject = SendWithoutBlock v14, :puts, v41 PatchPoint NoEPEscape(test) CheckInterrupts - Return v30 + Return v33 "); } @@ -2110,8 +2110,8 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:ArrayExact = NewArray v11, v12 - v21:BasicObject = SendWithoutBlock v17, :length + v18:ArrayExact = NewArray v11, v12 + v21:BasicObject = SendWithoutBlock v18, :length CheckInterrupts Return v21 "); @@ -2135,8 +2135,8 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:ArrayExact = NewArray v11, v12 - v21:BasicObject = SendWithoutBlock v17, :size + v18:ArrayExact = NewArray v11, v12 + v21:BasicObject = SendWithoutBlock v18, :size CheckInterrupts Return v21 "); @@ -2160,9 +2160,9 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): PatchPoint SingleRactorMode - v12:BasicObject = GetIvar v6, :@foo + v11:BasicObject = GetIvar v6, :@foo CheckInterrupts - Return v12 + Return v11 "); } @@ -2238,9 +2238,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:BasicObject = GetClassVar :@@foo + v10:BasicObject = GetClassVar :@@foo CheckInterrupts - Return v11 + Return v10 "); } @@ -2312,9 +2312,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:BasicObject = GetGlobal :$foo + v10:BasicObject = GetGlobal :$foo CheckInterrupts - Return v11 + Return v10 "); } @@ -2360,8 +2360,8 @@ pub mod hir_build_tests { bb2(v8:BasicObject, v9:BasicObject): v13:Fixnum[1] = Const Value(1) v15:ArrayExact = NewArray v13 - v17:ArrayExact = ToArray v9 - ArrayExtend v15, v17 + v18:ArrayExact = ToArray v9 + ArrayExtend v15, v18 CheckInterrupts Return v15 "); @@ -2385,8 +2385,8 @@ pub mod hir_build_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): v14:ArrayExact = ToNewArray v9 - v15:Fixnum[1] = Const Value(1) - ArrayPush v14, v15 + v16:Fixnum[1] = Const Value(1) + ArrayPush v14, v16 CheckInterrupts Return v14 "); @@ -2410,12 +2410,12 @@ pub mod hir_build_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): v14:ArrayExact = ToNewArray v9 - v15:Fixnum[1] = Const Value(1) - v16:Fixnum[2] = Const Value(2) - v17:Fixnum[3] = Const Value(3) - ArrayPush v14, v15 + v16:Fixnum[1] = Const Value(1) + v18:Fixnum[2] = Const Value(2) + v20:Fixnum[3] = Const Value(3) ArrayPush v14, v16 - ArrayPush v14, v17 + ArrayPush v14, v18 + ArrayPush v14, v20 CheckInterrupts Return v14 "); @@ -2440,10 +2440,10 @@ pub mod hir_build_tests { Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): v16:NilClass = Const Value(nil) - v17:Fixnum[1] = Const Value(1) - v21:BasicObject = SendWithoutBlock v11, :[]=, v12, v17 + v20:Fixnum[1] = Const Value(1) + v24:BasicObject = SendWithoutBlock v11, :[]=, v12, v20 CheckInterrupts - Return v17 + Return v20 "); } @@ -2488,9 +2488,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v16:BasicObject = SendWithoutBlock v9, :empty? + v15:BasicObject = SendWithoutBlock v9, :empty? CheckInterrupts - Return v16 + Return v15 "); } @@ -2511,9 +2511,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v16:BasicObject = SendWithoutBlock v9, :succ + v15:BasicObject = SendWithoutBlock v9, :succ CheckInterrupts - Return v16 + Return v15 "); } @@ -2582,9 +2582,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): - v16:BasicObject = SendWithoutBlock v9, :! + v15:BasicObject = SendWithoutBlock v9, :! CheckInterrupts - Return v16 + Return v15 "); } @@ -2633,12 +2633,12 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Class[VMFrozenCore] = Const Value(VALUE(0x1000)) - v11:BasicObject = PutSpecialObject CBase - v12:StaticSymbol[:aliased] = Const Value(VALUE(0x1008)) - v13:StaticSymbol[:__callee__] = Const Value(VALUE(0x1010)) - v15:BasicObject = SendWithoutBlock v10, :core#set_method_alias, v11, v12, v13 + v12:BasicObject = PutSpecialObject CBase + v14:StaticSymbol[:aliased] = Const Value(VALUE(0x1008)) + v16:StaticSymbol[:__callee__] = Const Value(VALUE(0x1010)) + v18:BasicObject = SendWithoutBlock v10, :core#set_method_alias, v12, v14, v16 CheckInterrupts - Return v15 + Return v18 "); } @@ -2674,15 +2674,15 @@ pub mod hir_build_tests { Jump bb2(v7, v8, v9, v10) bb2(v12:BasicObject, v13:NilClass, v14:NilClass, v15:NilClass): PatchPoint SingleRactorMode - v21:BasicObject = GetIvar v12, :@a + v20:BasicObject = GetIvar v12, :@a PatchPoint SingleRactorMode - v24:BasicObject = GetIvar v12, :@b + v23:BasicObject = GetIvar v12, :@b PatchPoint SingleRactorMode - v27:BasicObject = GetIvar v12, :@c + v26:BasicObject = GetIvar v12, :@c PatchPoint NoEPEscape(reverse_odd) - v33:ArrayExact = NewArray v21, v24, v27 + v38:ArrayExact = NewArray v20, v23, v26 CheckInterrupts - Return v33 + Return v38 fn reverse_even@<compiled>:8: bb0(): @@ -2702,17 +2702,17 @@ pub mod hir_build_tests { Jump bb2(v8, v9, v10, v11, v12) bb2(v14:BasicObject, v15:NilClass, v16:NilClass, v17:NilClass, v18:NilClass): PatchPoint SingleRactorMode - v24:BasicObject = GetIvar v14, :@a + v23:BasicObject = GetIvar v14, :@a PatchPoint SingleRactorMode - v27:BasicObject = GetIvar v14, :@b + v26:BasicObject = GetIvar v14, :@b PatchPoint SingleRactorMode - v30:BasicObject = GetIvar v14, :@c + v29:BasicObject = GetIvar v14, :@c PatchPoint SingleRactorMode - v33:BasicObject = GetIvar v14, :@d + v32:BasicObject = GetIvar v14, :@d PatchPoint NoEPEscape(reverse_even) - v39:ArrayExact = NewArray v24, v27, v30, v33 + v46:ArrayExact = NewArray v23, v26, v29, v32 CheckInterrupts - Return v39 + Return v46 "); } @@ -2734,13 +2734,13 @@ pub mod hir_build_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): CheckInterrupts - v15:CBool = IsNil v9 - IfTrue v15, bb3(v8, v9, v9) - v18:BasicObject = SendWithoutBlock v9, :itself - Jump bb3(v8, v9, v18) - bb3(v20:BasicObject, v21:BasicObject, v22:BasicObject): + v16:CBool = IsNil v9 + IfTrue v16, bb3(v8, v9, v9) + v19:BasicObject = SendWithoutBlock v9, :itself + Jump bb3(v8, v9, v19) + bb3(v21:BasicObject, v22:BasicObject, v23:BasicObject): CheckInterrupts - Return v22 + Return v23 "); } @@ -2760,11 +2760,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v7, v8, v9, v10) bb2(v12:BasicObject, v13:BasicObject, v14:BasicObject, v15:BasicObject): - v20:Float = InvokeBuiltin rb_f_float, v12, v13, v14 - Jump bb3(v12, v13, v14, v15, v20) - bb3(v22:BasicObject, v23:BasicObject, v24:BasicObject, v25:BasicObject, v26:Float): + v19:Float = InvokeBuiltin rb_f_float, v12, v13, v14 + Jump bb3(v12, v13, v14, v15, v19) + bb3(v21:BasicObject, v22:BasicObject, v23:BasicObject, v24:BasicObject, v25:Float): CheckInterrupts - Return v26 + Return v25 "); } @@ -2781,11 +2781,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:HeapObject = InvokeBuiltin leaf _bi20, v6 - Jump bb3(v6, v11) - bb3(v13:BasicObject, v14:HeapObject): + v10:HeapObject = InvokeBuiltin leaf _bi20, v6 + Jump bb3(v6, v10) + bb3(v12:BasicObject, v13:HeapObject): CheckInterrupts - Return v14 + Return v13 "); } @@ -2811,22 +2811,22 @@ pub mod hir_build_tests { v14:NilClass = Const Value(nil) Jump bb2(v9, v10, v11, v12, v13, v14) bb2(v16:BasicObject, v17:BasicObject, v18:BasicObject, v19:BasicObject, v20:BasicObject, v21:NilClass): - v26:BasicObject = InvokeBuiltin dir_s_open, v16, v17, v18 + v25:BasicObject = InvokeBuiltin dir_s_open, v16, v17, v18 PatchPoint NoEPEscape(open) GuardBlockParamProxy l0 - v33:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) + v32:HeapObject[BlockParamProxy] = Const Value(VALUE(0x1000)) CheckInterrupts - v36:CBool[true] = Test v33 - IfFalse v36, bb3(v16, v17, v18, v19, v20, v26) + v35:CBool[true] = Test v32 + IfFalse v35, bb3(v16, v17, v18, v19, v20, v25) PatchPoint NoEPEscape(open) - v43:BasicObject = InvokeBlock, v26 - v47:BasicObject = InvokeBuiltin dir_s_close, v16, v26 + v42:BasicObject = InvokeBlock, v25 + v45:BasicObject = InvokeBuiltin dir_s_close, v16, v25 CheckInterrupts - Return v43 - bb3(v53, v54, v55, v56, v57, v58): + Return v42 + bb3(v51, v52, v53, v54, v55, v56): PatchPoint NoEPEscape(open) CheckInterrupts - Return v58 + Return v56 "); } @@ -2845,11 +2845,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:BasicObject = InvokeBuiltin gc_enable, v6 - Jump bb3(v6, v11) - bb3(v13:BasicObject, v14:BasicObject): + v10:BasicObject = InvokeBuiltin gc_enable, v6 + Jump bb3(v6, v10) + bb3(v12:BasicObject, v13:BasicObject): CheckInterrupts - Return v14 + Return v13 "); } @@ -2872,10 +2872,10 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v8, v9, v10, v11, v12) bb2(v14:BasicObject, v15:BasicObject, v16:BasicObject, v17:BasicObject, v18:BasicObject): - v22:FalseClass = Const Value(false) - v24:BasicObject = InvokeBuiltin gc_start_internal, v14, v15, v16, v17, v22 + v25:FalseClass = Const Value(false) + v27:BasicObject = InvokeBuiltin gc_start_internal, v14, v15, v16, v17, v25 CheckInterrupts - Return v24 + Return v27 "); } @@ -2893,11 +2893,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:StringExact = InvokeBuiltin leaf _bi28, v6 - Jump bb3(v6, v11) - bb3(v13:BasicObject, v14:StringExact): + v10:StringExact = InvokeBuiltin leaf _bi28, v6 + Jump bb3(v6, v10) + bb3(v12:BasicObject, v13:StringExact): CheckInterrupts - Return v14 + Return v13 "); } @@ -2915,11 +2915,11 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:StringExact = InvokeBuiltin leaf _bi12, v6 - Jump bb3(v6, v11) - bb3(v13:BasicObject, v14:StringExact): + v10:StringExact = InvokeBuiltin leaf _bi12, v6 + Jump bb3(v6, v10) + bb3(v12:BasicObject, v13:StringExact): CheckInterrupts - Return v14 + Return v13 "); } @@ -2941,19 +2941,19 @@ pub mod hir_build_tests { Jump bb2(v5, v6) bb2(v8:BasicObject, v9:BasicObject): v13:NilClass = Const Value(nil) - v14:Fixnum[0] = Const Value(0) - v15:Fixnum[1] = Const Value(1) - v17:BasicObject = SendWithoutBlock v9, :[], v14, v15 + v16:Fixnum[0] = Const Value(0) + v18:Fixnum[1] = Const Value(1) + v21:BasicObject = SendWithoutBlock v9, :[], v16, v18 CheckInterrupts - v20:CBool = Test v17 - IfTrue v20, bb3(v8, v9, v13, v9, v14, v15, v17) - v22:Fixnum[2] = Const Value(2) - v24:BasicObject = SendWithoutBlock v9, :[]=, v14, v15, v22 + v25:CBool = Test v21 + IfTrue v25, bb3(v8, v9, v13, v9, v16, v18, v21) + v29:Fixnum[2] = Const Value(2) + v32:BasicObject = SendWithoutBlock v9, :[]=, v16, v18, v29 CheckInterrupts - Return v22 - bb3(v30:BasicObject, v31:BasicObject, v32:NilClass, v33:BasicObject, v34:Fixnum[0], v35:Fixnum[1], v36:BasicObject): + Return v29 + bb3(v38:BasicObject, v39:BasicObject, v40:NilClass, v41:BasicObject, v42:Fixnum[0], v43:Fixnum[1], v44:BasicObject): CheckInterrupts - Return v36 + Return v44 "); } @@ -2974,12 +2974,12 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v11:Fixnum[1] = Const Value(1) - v13:BasicObject = ObjToString v11 - v15:String = AnyToString v11, str: v13 - v17:StringExact = StringConcat v10, v15 + v12:Fixnum[1] = Const Value(1) + v15:BasicObject = ObjToString v12 + v17:String = AnyToString v12, str: v15 + v19:StringExact = StringConcat v10, v17 CheckInterrupts - Return v17 + Return v19 "); } @@ -3000,17 +3000,17 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v12:BasicObject = ObjToString v10 - v14:String = AnyToString v10, str: v12 - v15:Fixnum[2] = Const Value(2) - v17:BasicObject = ObjToString v15 - v19:String = AnyToString v15, str: v17 - v20:Fixnum[3] = Const Value(3) - v22:BasicObject = ObjToString v20 - v24:String = AnyToString v20, str: v22 - v26:StringExact = StringConcat v14, v19, v24 + v13:BasicObject = ObjToString v10 + v15:String = AnyToString v10, str: v13 + v17:Fixnum[2] = Const Value(2) + v20:BasicObject = ObjToString v17 + v22:String = AnyToString v17, str: v20 + v24:Fixnum[3] = Const Value(3) + v27:BasicObject = ObjToString v24 + v29:String = AnyToString v24, str: v27 + v31:StringExact = StringConcat v15, v22, v29 CheckInterrupts - Return v26 + Return v31 "); } @@ -3031,12 +3031,12 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000)) - v11:NilClass = Const Value(nil) - v13:BasicObject = ObjToString v11 - v15:String = AnyToString v11, str: v13 - v17:StringExact = StringConcat v10, v15 + v12:NilClass = Const Value(nil) + v15:BasicObject = ObjToString v12 + v17:String = AnyToString v12, str: v15 + v19:StringExact = StringConcat v10, v17 CheckInterrupts - Return v17 + Return v19 "); } @@ -3057,17 +3057,17 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v12:BasicObject = ObjToString v10 - v14:String = AnyToString v10, str: v12 - v15:Fixnum[2] = Const Value(2) - v17:BasicObject = ObjToString v15 - v19:String = AnyToString v15, str: v17 - v20:Fixnum[3] = Const Value(3) - v22:BasicObject = ObjToString v20 - v24:String = AnyToString v20, str: v22 - v26:RegexpExact = ToRegexp v14, v19, v24 + v13:BasicObject = ObjToString v10 + v15:String = AnyToString v10, str: v13 + v17:Fixnum[2] = Const Value(2) + v20:BasicObject = ObjToString v17 + v22:String = AnyToString v17, str: v20 + v24:Fixnum[3] = Const Value(3) + v27:BasicObject = ObjToString v24 + v29:String = AnyToString v24, str: v27 + v31:RegexpExact = ToRegexp v15, v22, v29 CheckInterrupts - Return v26 + Return v31 "); } @@ -3088,14 +3088,14 @@ pub mod hir_build_tests { Jump bb2(v4) bb2(v6:BasicObject): v10:Fixnum[1] = Const Value(1) - v12:BasicObject = ObjToString v10 - v14:String = AnyToString v10, str: v12 - v15:Fixnum[2] = Const Value(2) - v17:BasicObject = ObjToString v15 - v19:String = AnyToString v15, str: v17 - v21:RegexpExact = ToRegexp v14, v19, MULTILINE|IGNORECASE|EXTENDED|NOENCODING + v13:BasicObject = ObjToString v10 + v15:String = AnyToString v10, str: v13 + v17:Fixnum[2] = Const Value(2) + v20:BasicObject = ObjToString v17 + v22:String = AnyToString v17, str: v20 + v24:RegexpExact = ToRegexp v15, v22, MULTILINE|IGNORECASE|EXTENDED|NOENCODING CheckInterrupts - Return v21 + Return v24 "); } @@ -3151,9 +3151,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v4) bb2(v6:BasicObject): - v11:BasicObject = InvokeBlock + v10:BasicObject = InvokeBlock CheckInterrupts - Return v11 + Return v10 "); } @@ -3176,9 +3176,9 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v17:BasicObject = InvokeBlock, v11, v12 + v18:BasicObject = InvokeBlock, v11, v12 CheckInterrupts - Return v17 + Return v18 "); } @@ -3205,13 +3205,13 @@ pub mod hir_build_tests { v10:NilClass = Const Value(nil) Jump bb2(v7, v8, v9, v10) bb2(v12:BasicObject, v13:BasicObject, v14:NilClass, v15:NilClass): - v20:ArrayExact = GuardType v13, ArrayExact - v21:CInt64 = ArrayLength v20 - v22:CInt64[2] = GuardBitEquals v21, CInt64(2) - v23:Fixnum[1] = Const Value(1) - v24:BasicObject = ArrayArefFixnum v20, v23 - v25:Fixnum[0] = Const Value(0) - v26:BasicObject = ArrayArefFixnum v20, v25 + v21:ArrayExact = GuardType v13, ArrayExact + v22:CInt64 = ArrayLength v21 + v23:CInt64[2] = GuardBitEquals v22, CInt64(2) + v24:Fixnum[1] = Const Value(1) + v25:BasicObject = ArrayArefFixnum v21, v24 + v26:Fixnum[0] = Const Value(0) + v27:BasicObject = ArrayArefFixnum v21, v26 PatchPoint NoEPEscape(test) CheckInterrupts Return v13 @@ -3292,20 +3292,20 @@ pub mod hir_build_tests { EntryPoint JIT(0) Jump bb2(v6, v7, v8) bb2(v10:BasicObject, v11:BasicObject, v12:BasicObject): - v14:BasicObject = GetLocal l0, EP@3 - v15:BoolExact = FixnumBitCheck v14, 0 + v15:BasicObject = GetLocal l0, EP@3 + v16:BoolExact = FixnumBitCheck v15, 0 CheckInterrupts - v18:CBool = Test v15 - IfTrue v18, bb3(v10, v11, v12) - v20:Fixnum[1] = Const Value(1) - v21:Fixnum[1] = Const Value(1) - v25:BasicObject = SendWithoutBlock v20, :+, v21 + v19:CBool = Test v16 + IfTrue v19, bb3(v10, v11, v12) + v22:Fixnum[1] = Const Value(1) + v24:Fixnum[1] = Const Value(1) + v27:BasicObject = SendWithoutBlock v22, :+, v24 PatchPoint NoEPEscape(test) - Jump bb3(v10, v25, v12) - bb3(v29:BasicObject, v30:BasicObject, v31:BasicObject): + Jump bb3(v10, v27, v12) + bb3(v32:BasicObject, v33:BasicObject, v34:BasicObject): PatchPoint NoEPEscape(test) CheckInterrupts - Return v30 + Return v33 "); } |
