summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMax Bernstein <ruby@bernsteinbear.com>2025-08-21 16:55:16 -0400
committerMax Bernstein <tekknolagi@gmail.com>2025-08-22 10:34:11 -0700
commitb6f0cd51fcbcec8b05f9f793448f047adec809ad (patch)
tree35a02c1c8c1be8eb39e797587a498a436dfe6e63
parentbcd9c87d15c34e93e5c6dfa5dcc82fde2d10ddb5 (diff)
ZJIT: Update tests
-rw-r--r--zjit/src/hir.rs830
1 files changed, 553 insertions, 277 deletions
diff --git a/zjit/src/hir.rs b/zjit/src/hir.rs
index f68d85a42d..1fdca5a688 100644
--- a/zjit/src/hir.rs
+++ b/zjit/src/hir.rs
@@ -3942,6 +3942,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v2:Fixnum[123] = Const Value(123)
+ CheckInterrupts
Return v2
"#]]);
}
@@ -3953,6 +3954,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v3:ArrayExact = NewArray
+ CheckInterrupts
Return v3
"#]]);
}
@@ -3964,6 +3966,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject, v1:BasicObject):
v4:ArrayExact = NewArray v1
+ CheckInterrupts
Return v4
"#]]);
}
@@ -3975,6 +3978,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:ArrayExact = NewArray v1, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -3987,6 +3991,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[10] = Const Value(10)
v5:RangeExact = NewRange v1 NewRangeInclusive v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -3998,6 +4003,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:RangeExact = NewRange v1 NewRangeInclusive v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4010,6 +4016,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[10] = Const Value(10)
v5:RangeExact = NewRange v1 NewRangeExclusive v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4021,6 +4028,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:RangeExact = NewRange v1 NewRangeExclusive v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4033,6 +4041,7 @@ mod tests {
bb0(v0:BasicObject):
v2:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:ArrayExact = ArrayDup v2
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4045,6 +4054,7 @@ mod tests {
bb0(v0:BasicObject):
v2:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:HashExact = HashDup v2
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4056,6 +4066,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v3:HashExact = NewHash
+ CheckInterrupts
Return v3
"#]]);
}
@@ -4069,6 +4080,7 @@ mod tests {
v4:StaticSymbol[:a] = Const Value(VALUE(0x1000))
v5:StaticSymbol[:b] = Const Value(VALUE(0x1008))
v7:HashExact = NewHash v4: v1, v5: v2
+ CheckInterrupts
Return v7
"#]]);
}
@@ -4081,6 +4093,7 @@ mod tests {
bb0(v0:BasicObject):
v2:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:StringExact = StringCopy v2
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4092,6 +4105,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v2:Bignum[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4103,6 +4117,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v2:Flonum[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4114,6 +4129,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v2:HeapFloat[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4125,6 +4141,7 @@ mod tests {
fn test@<compiled>:1:
bb0(v0:BasicObject):
v2:StaticSymbol[:foo] = Const Value(VALUE(0x1000))
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4138,6 +4155,7 @@ mod tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
v5:BasicObject = SendWithoutBlock v2, :+, v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4152,6 +4170,7 @@ mod tests {
bb0(v0:BasicObject):
v3:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:BasicObject = SendWithoutBlock v3, :freeze
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4166,6 +4185,7 @@ mod tests {
bb0(v0:BasicObject):
v3:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:BasicObject = SendWithoutBlock v3, :freeze
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4180,6 +4200,7 @@ mod tests {
bb0(v0:BasicObject):
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:BasicObject = SendWithoutBlock v3, :freeze
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4194,6 +4215,7 @@ mod tests {
bb0(v0:BasicObject):
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:BasicObject = SendWithoutBlock v3, :-@
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4211,6 +4233,7 @@ mod tests {
bb0(v0:BasicObject):
v1:NilClass = Const Value(nil)
v3:Fixnum[1] = Const Value(1)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -4250,6 +4273,7 @@ mod tests {
v10:BasicObject = GetLocal l3, EP@5
v12:BasicObject = SendWithoutBlock v9, :+, v10
SetLocal l3, EP@5, v12
+ CheckInterrupts
Return v12
"#]]
);
@@ -4264,6 +4288,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = DefinedIvar v0, :@foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -4282,6 +4307,7 @@ mod tests {
v7:NilClass = Const Value(nil)
v9:StringExact|NilClass = Defined global-variable, v7
v11:ArrayExact = NewArray v4, v6, v9
+ CheckInterrupts
Return v11
"#]]);
}
@@ -4300,13 +4326,16 @@ mod tests {
assert_method_hir_with_opcode("test", YARVINSN_leave, expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject):
- v3:CBool = Test v1
- IfFalse v3, bb1(v0, v1)
- v5:Fixnum[3] = Const Value(3)
- Return v5
- bb1(v7:BasicObject, v8:BasicObject):
- v10:Fixnum[4] = Const Value(4)
- Return v10
+ CheckInterrupts
+ v5:CBool = Test v1
+ IfFalse v5, bb1(v0, v1)
+ v7:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v7
+ bb1(v11:BasicObject, v12:BasicObject):
+ v14:Fixnum[4] = Const Value(4)
+ CheckInterrupts
+ Return v14
"#]]);
}
@@ -4326,15 +4355,18 @@ mod tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject):
v2:NilClass = Const Value(nil)
- v4:CBool = Test v1
- IfFalse v4, bb1(v0, v1, v2)
- v6:Fixnum[3] = Const Value(3)
- Jump bb2(v0, v1, v6)
- bb1(v8:BasicObject, v9:BasicObject, v10:NilClass):
- v12:Fixnum[4] = Const Value(4)
- Jump bb2(v8, v9, v12)
- bb2(v14:BasicObject, v15:BasicObject, v16:Fixnum):
- Return v16
+ CheckInterrupts
+ v6:CBool = Test v1
+ IfFalse v6, bb1(v0, v1, v2)
+ v8:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Jump bb2(v0, v1, v8)
+ bb1(v12:BasicObject, v13:BasicObject, v14:NilClass):
+ v16:Fixnum[4] = Const Value(4)
+ Jump bb2(v12, v13, v16)
+ bb2(v18:BasicObject, v19:BasicObject, v20:Fixnum):
+ CheckInterrupts
+ Return v20
"#]]);
}
@@ -4348,6 +4380,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :+, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4362,6 +4395,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :-, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4376,6 +4410,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :*, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4390,6 +4425,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :/, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4404,6 +4440,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :%, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4418,6 +4455,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :==, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4432,6 +4470,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :!=, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4446,6 +4485,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :<, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4460,6 +4500,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :<=, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4474,6 +4515,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :>, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4499,20 +4541,23 @@ mod tests {
v2:NilClass = Const Value(nil)
v4:Fixnum[0] = Const Value(0)
v5:Fixnum[10] = Const Value(10)
+ CheckInterrupts
Jump bb2(v0, v4, v5)
- bb2(v7:BasicObject, v8:BasicObject, v9:BasicObject):
- v11:Fixnum[0] = Const Value(0)
- v13:BasicObject = SendWithoutBlock v9, :>, v11
- v14:CBool = Test v13
- IfTrue v14, bb1(v7, v8, v9)
- v16:NilClass = Const Value(nil)
- Return v8
- bb1(v18:BasicObject, v19:BasicObject, v20:BasicObject):
- v22:Fixnum[1] = Const Value(1)
- v24:BasicObject = SendWithoutBlock v19, :+, v22
- v25:Fixnum[1] = Const Value(1)
- v27:BasicObject = SendWithoutBlock v20, :-, v25
- Jump bb2(v18, v24, v27)
+ bb2(v9:BasicObject, v10:BasicObject, v11:BasicObject):
+ v13:Fixnum[0] = Const Value(0)
+ v15:BasicObject = SendWithoutBlock v11, :>, v13
+ CheckInterrupts
+ v18:CBool = Test v15
+ IfTrue v18, bb1(v9, v10, v11)
+ v20:NilClass = Const Value(nil)
+ CheckInterrupts
+ Return v10
+ bb1(v24:BasicObject, v25:BasicObject, v26:BasicObject):
+ v28:Fixnum[1] = Const Value(1)
+ v30:BasicObject = SendWithoutBlock v25, :+, v28
+ v31:Fixnum[1] = Const Value(1)
+ v33:BasicObject = SendWithoutBlock v26, :-, v31
+ Jump bb2(v24, v30, v33)
"#]]);
}
@@ -4526,6 +4571,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :>=, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4547,13 +4593,16 @@ mod tests {
bb0(v0:BasicObject):
v1:NilClass = Const Value(nil)
v3:TrueClass = Const Value(true)
- v4:CBool[true] = Test v3
- IfFalse v4, bb1(v0, v3)
- v6:Fixnum[3] = Const Value(3)
- Return v6
- bb1(v8, v9):
- v11 = Const Value(4)
- Return v11
+ CheckInterrupts
+ v6:CBool[true] = Test v3
+ IfFalse v6, bb1(v0, v3)
+ v8:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v8
+ bb1(v12, v13):
+ v15 = Const Value(4)
+ CheckInterrupts
+ Return v15
"#]]);
}
@@ -4573,6 +4622,7 @@ mod tests {
v2:Fixnum[2] = Const Value(2)
v3:Fixnum[3] = Const Value(3)
v5:BasicObject = SendWithoutBlock v0, :bar, v2, v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -4591,6 +4641,7 @@ mod tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject):
v4:BasicObject = Send v1, 0x1000, :each
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4611,6 +4662,7 @@ mod tests {
v7:String = AnyToString v3, str: v5
v9:StringExact = StringConcat v2, v7
v11:Symbol = StringIntern v9
+ CheckInterrupts
Return v11
"#]]);
}
@@ -4632,6 +4684,7 @@ mod tests {
v11:StringExact[VALUE(0x1010)] = Const Value(VALUE(0x1010))
v13:StringExact = StringCopy v11
v15:BasicObject = SendWithoutBlock v0, :unknown_method, v4, v7, v10, v13
+ CheckInterrupts
Return v15
"#]]);
}
@@ -4781,12 +4834,14 @@ mod tests {
bb0(v0:BasicObject):
v3:BasicObject = GetConstantPath 0x1000
v4:NilClass = Const Value(nil)
+ CheckInterrupts
Jump bb1(v0, v4, v3)
- bb1(v6:BasicObject, v7:NilClass, v8:BasicObject):
- v11:BasicObject = SendWithoutBlock v8, :new
- Jump bb2(v6, v11, v7)
- bb2(v13:BasicObject, v14:BasicObject, v15:NilClass):
- Return v14
+ bb1(v8:BasicObject, v9:NilClass, v10:BasicObject):
+ v13:BasicObject = SendWithoutBlock v10, :new
+ Jump bb2(v8, v13, v9)
+ bb2(v15:BasicObject, v16:BasicObject, v17:NilClass):
+ CheckInterrupts
+ Return v16
"#]]);
}
@@ -4801,6 +4856,7 @@ mod tests {
bb0(v0:BasicObject):
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_MAX)
v4:BasicObject = ArrayMax
+ CheckInterrupts
Return v4
"#]]);
}
@@ -4815,6 +4871,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_MAX)
v6:BasicObject = ArrayMax v1, v2
+ CheckInterrupts
Return v6
"#]]);
}
@@ -4913,6 +4970,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:ArrayExact = NewArray v1, v2
v7:BasicObject = SendWithoutBlock v5, :length
+ CheckInterrupts
Return v7
"#]]);
}
@@ -4927,6 +4985,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:ArrayExact = NewArray v1, v2
v7:BasicObject = SendWithoutBlock v5, :size
+ CheckInterrupts
Return v7
"#]]);
}
@@ -4941,6 +5000,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = GetIvar v0, :@foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -4956,6 +5016,7 @@ mod tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
SetIvar v0, :@foo, v2
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4971,6 +5032,7 @@ mod tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
SetGlobal :$foo, v2
+ CheckInterrupts
Return v2
"#]]);
}
@@ -4985,6 +5047,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = GetGlobal :$foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -4998,6 +5061,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
v4:ArrayExact = ToNewArray v1
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5014,6 +5078,7 @@ mod tests {
v5:ArrayExact = NewArray v3
v7:ArrayExact = ToArray v1
ArrayExtend v5, v7
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5029,6 +5094,7 @@ mod tests {
v4:ArrayExact = ToNewArray v1
v5:Fixnum[1] = Const Value(1)
ArrayPush v4, v5
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5048,6 +5114,7 @@ mod tests {
ArrayPush v4, v5
ArrayPush v4, v6
ArrayPush v4, v7
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5063,6 +5130,7 @@ mod tests {
v4:NilClass = Const Value(nil)
v5:Fixnum[1] = Const Value(1)
v7:BasicObject = SendWithoutBlock v1, :[]=, v2, v5
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5076,6 +5144,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :[], v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5090,6 +5159,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v5:BasicObject = SendWithoutBlock v1, :[], v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5103,6 +5173,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
v4:BasicObject = SendWithoutBlock v1, :empty?
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5116,6 +5187,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
v4:BasicObject = SendWithoutBlock v1, :succ
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5129,6 +5201,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :&, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5142,6 +5215,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :|, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5155,6 +5229,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
v4:BasicObject = SendWithoutBlock v1, :!
+ CheckInterrupts
Return v4
"#]]);
}
@@ -5168,6 +5243,7 @@ mod tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :=~, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -5189,6 +5265,7 @@ mod tests {
v4:StaticSymbol[:aliased] = Const Value(VALUE(0x1008))
v5:StaticSymbol[:__callee__] = Const Value(VALUE(0x1010))
v7:BasicObject = SendWithoutBlock v2, :core#set_method_alias, v3, v4, v5
+ CheckInterrupts
Return v7
"#]]);
}
@@ -5216,6 +5293,7 @@ mod tests {
v8:BasicObject = GetIvar v0, :@b
v10:BasicObject = GetIvar v0, :@c
v12:ArrayExact = NewArray v6, v8, v10
+ CheckInterrupts
Return v12
"#]]);
assert_method_hir_with_opcode("reverse_even", YARVINSN_opt_reverse, expect![[r#"
@@ -5230,6 +5308,7 @@ mod tests {
v11:BasicObject = GetIvar v0, :@c
v13:BasicObject = GetIvar v0, :@d
v15:ArrayExact = NewArray v7, v9, v11, v13
+ CheckInterrupts
Return v15
"#]]);
}
@@ -5242,12 +5321,14 @@ mod tests {
assert_method_hir_with_opcode("test", YARVINSN_branchnil, expect![[r#"
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
- v3:CBool = IsNil v1
- IfTrue v3, bb1(v0, v1, v1)
- v6:BasicObject = SendWithoutBlock v1, :itself
- Jump bb1(v0, v1, v6)
- bb1(v8:BasicObject, v9:BasicObject, v10:BasicObject):
- Return v10
+ CheckInterrupts
+ v5:CBool = IsNil v1
+ IfTrue v5, bb1(v0, v1, v1)
+ v8:BasicObject = SendWithoutBlock v1, :itself
+ Jump bb1(v0, v1, v8)
+ bb1(v10:BasicObject, v11:BasicObject, v12:BasicObject):
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -5259,6 +5340,7 @@ mod tests {
v6:Float = InvokeBuiltin rb_f_float, v0, v1, v2
Jump bb1(v0, v1, v2, v3, v6)
bb1(v8:BasicObject, v9:BasicObject, v10:BasicObject, v11:BasicObject, v12:Float):
+ CheckInterrupts
Return v12
"#]]);
}
@@ -5271,6 +5353,7 @@ mod tests {
v3:Class = InvokeBuiltin _bi20, v0
Jump bb1(v0, v3)
bb1(v5:BasicObject, v6:Class):
+ CheckInterrupts
Return v6
"#]]);
}
@@ -5301,6 +5384,7 @@ mod tests {
v3:BasicObject = InvokeBuiltin gc_enable, v0
Jump bb1(v0, v3)
bb1(v5:BasicObject, v6:BasicObject):
+ CheckInterrupts
Return v6
"#]]);
}
@@ -5315,6 +5399,7 @@ mod tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject, v3:BasicObject, v4:BasicObject):
v6:FalseClass = Const Value(false)
v8:BasicObject = InvokeBuiltin gc_start_internal, v0, v1, v2, v3, v6
+ CheckInterrupts
Return v8
"#]]);
}
@@ -5331,13 +5416,16 @@ mod tests {
v4:Fixnum[0] = Const Value(0)
v5:Fixnum[1] = Const Value(1)
v7:BasicObject = SendWithoutBlock v1, :[], v4, v5
- v8:CBool = Test v7
- IfTrue v8, bb1(v0, v1, v3, v1, v4, v5, v7)
- v10:Fixnum[2] = Const Value(2)
- v12:BasicObject = SendWithoutBlock v1, :[]=, v4, v5, v10
- Return v10
- bb1(v14:BasicObject, v15:BasicObject, v16:NilClass, v17:BasicObject, v18:Fixnum[0], v19:Fixnum[1], v20:BasicObject):
- Return v20
+ CheckInterrupts
+ v10:CBool = Test v7
+ IfTrue v10, bb1(v0, v1, v3, v1, v4, v5, v7)
+ v12:Fixnum[2] = Const Value(2)
+ v14:BasicObject = SendWithoutBlock v1, :[]=, v4, v5, v12
+ CheckInterrupts
+ Return v12
+ bb1(v18:BasicObject, v19:BasicObject, v20:NilClass, v21:BasicObject, v22:Fixnum[0], v23:Fixnum[1], v24:BasicObject):
+ CheckInterrupts
+ Return v24
"#]]);
}
@@ -5354,6 +5442,7 @@ mod tests {
v5:BasicObject = ObjToString v3
v7:String = AnyToString v3, str: v5
v9:StringExact = StringConcat v2, v7
+ CheckInterrupts
Return v9
"#]]);
}
@@ -5376,6 +5465,7 @@ mod tests {
v14:BasicObject = ObjToString v12
v16:String = AnyToString v12, str: v14
v18:StringExact = StringConcat v6, v11, v16
+ CheckInterrupts
Return v18
"#]]);
}
@@ -5393,6 +5483,7 @@ mod tests {
v5:BasicObject = ObjToString v3
v7:String = AnyToString v3, str: v5
v9:StringExact = StringConcat v2, v7
+ CheckInterrupts
Return v9
"#]]);
}
@@ -5415,6 +5506,7 @@ mod tests {
v14:BasicObject = ObjToString v12
v16:String = AnyToString v12, str: v14
v18:RegexpExact = ToRegexp v6, v11, v16
+ CheckInterrupts
Return v18
"#]]);
}
@@ -5434,6 +5526,7 @@ mod tests {
v9:BasicObject = ObjToString v7
v11:String = AnyToString v7, str: v9
v13:RegexpExact = ToRegexp v6, v11, MULTILINE|IGNORECASE|EXTENDED|NOENCODING
+ CheckInterrupts
Return v13
"#]]);
}
@@ -5488,11 +5581,12 @@ mod graphviz_tests {
mode=hier; overlap=false; splines=true;
bb0 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v7">PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v8">v8:Fixnum = GuardType v1, Fixnum&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v9">v9:Fixnum = GuardType v2, Fixnum&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v10">v10:Fixnum = FixnumOr v8, v9&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v6">Return v10&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v9">PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29)&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v10">v10:Fixnum = GuardType v1, Fixnum&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v11">v11:Fixnum = GuardType v2, Fixnum&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v12">v12:Fixnum = FixnumOr v10, v11&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v7">CheckInterrupts&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v8">Return v12&nbsp;</TD></TR>
</TABLE>>];
}
"#]]);
@@ -5518,16 +5612,19 @@ mod graphviz_tests {
mode=hier; overlap=false; splines=true;
bb0 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb0(v0:BasicObject, v1:BasicObject)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v3">v3:CBool = Test v1&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v4">IfFalse v3, bb1(v0, v1)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v5">v5:Fixnum[3] = Const Value(3)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v6">Return v5&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v4">CheckInterrupts&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v5">v5:CBool = Test v1&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v6">IfFalse v5, bb1(v0, v1)&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v7">v7:Fixnum[3] = Const Value(3)&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v9">CheckInterrupts&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v10">Return v7&nbsp;</TD></TR>
</TABLE>>];
- bb0:v4 -> bb1:params;
+ bb0:v6 -> bb1:params;
bb1 [label=<<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb1(v7:BasicObject, v8:BasicObject)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v10">v10:Fixnum[4] = Const Value(4)&nbsp;</TD></TR>
- <TR><TD ALIGN="left" PORT="v11">Return v10&nbsp;</TD></TR>
+ <TR><TD ALIGN="LEFT" PORT="params" BGCOLOR="gray">bb1(v11:BasicObject, v12:BasicObject)&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v14">v14:Fixnum[4] = Const Value(4)&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v16">CheckInterrupts&nbsp;</TD></TR>
+ <TR><TD ALIGN="left" PORT="v17">Return v14&nbsp;</TD></TR>
</TABLE>>];
}
"#]]);
@@ -5565,8 +5662,11 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
- v6:Fixnum[3] = Const Value(3)
- Return v6
+ v3:TrueClass = Const Value(true)
+ CheckInterrupts
+ v8:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v8
"#]]);
}
@@ -5585,8 +5685,11 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
- v11:Fixnum[4] = Const Value(4)
- Return v11
+ v3:FalseClass = Const Value(false)
+ CheckInterrupts
+ v15:Fixnum[4] = Const Value(4)
+ CheckInterrupts
+ Return v15
"#]]);
}
@@ -5603,11 +5706,12 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v14:Fixnum[3] = Const Value(3)
+ v16:Fixnum[3] = Const Value(3)
v6:Fixnum[3] = Const Value(3)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v15:Fixnum[6] = Const Value(6)
- Return v15
+ v17:Fixnum[6] = Const Value(6)
+ CheckInterrupts
+ Return v17
"#]]);
}
@@ -5624,11 +5728,12 @@ mod opt_tests {
v2:Fixnum[5] = Const Value(5)
v3:Fixnum[3] = Const Value(3)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS)
- v14:Fixnum[2] = Const Value(2)
+ v16:Fixnum[2] = Const Value(2)
v6:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS)
- v15:Fixnum[1] = Const Value(1)
- Return v15
+ v17:Fixnum[1] = Const Value(1)
+ CheckInterrupts
+ Return v17
"#]]);
}
@@ -5645,8 +5750,9 @@ mod opt_tests {
v2:Fixnum[0] = Const Value(0)
v3:Fixnum[1073741825] = Const Value(1073741825)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS)
- v9:Fixnum[-1073741825] = Const Value(-1073741825)
- Return v9
+ v11:Fixnum[-1073741825] = Const Value(-1073741825)
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -5663,8 +5769,9 @@ mod opt_tests {
v2:Fixnum[6] = Const Value(6)
v3:Fixnum[7] = Const Value(7)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT)
- v9:Fixnum[42] = Const Value(42)
- Return v9
+ v11:Fixnum[42] = Const Value(42)
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -5681,15 +5788,16 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[0] = Const Value(0)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT)
- v13:Fixnum = GuardType v1, Fixnum
- v20:Fixnum[0] = Const Value(0)
+ v15:Fixnum = GuardType v1, Fixnum
+ v22:Fixnum[0] = Const Value(0)
v6:Fixnum[0] = Const Value(0)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT)
- v16:Fixnum = GuardType v1, Fixnum
- v21:Fixnum[0] = Const Value(0)
+ v18:Fixnum = GuardType v1, Fixnum
+ v23:Fixnum[0] = Const Value(0)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v22:Fixnum[0] = Const Value(0)
- Return v22
+ v24:Fixnum[0] = Const Value(0)
+ CheckInterrupts
+ Return v24
"#]]);
}
@@ -5710,8 +5818,11 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT)
- v8:Fixnum[3] = Const Value(3)
- Return v8
+ v22:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -5732,11 +5843,16 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE)
- v8:Fixnum[2] = Const Value(2)
- v9:Fixnum[2] = Const Value(2)
+ v32:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[2] = Const Value(2)
+ v11:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE)
- v14:Fixnum[3] = Const Value(3)
- Return v14
+ v34:TrueClass = Const Value(true)
+ CheckInterrupts
+ v18:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v18
"#]]);
}
@@ -5757,8 +5873,11 @@ mod opt_tests {
v2:Fixnum[2] = Const Value(2)
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GT)
- v8:Fixnum[3] = Const Value(3)
- Return v8
+ v22:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -5779,11 +5898,16 @@ mod opt_tests {
v2:Fixnum[2] = Const Value(2)
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE)
- v8:Fixnum[2] = Const Value(2)
- v9:Fixnum[2] = Const Value(2)
+ v32:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[2] = Const Value(2)
+ v11:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE)
- v14:Fixnum[3] = Const Value(3)
- Return v14
+ v34:TrueClass = Const Value(true)
+ CheckInterrupts
+ v18:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v18
"#]]);
}
@@ -5804,8 +5928,11 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
- v12:Fixnum[4] = Const Value(4)
- Return v12
+ v22:FalseClass = Const Value(false)
+ CheckInterrupts
+ v16:Fixnum[4] = Const Value(4)
+ CheckInterrupts
+ Return v16
"#]]);
}
@@ -5826,8 +5953,11 @@ mod opt_tests {
v2:Fixnum[2] = Const Value(2)
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
- v8:Fixnum[3] = Const Value(3)
- Return v8
+ v22:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -5849,8 +5979,11 @@ mod opt_tests {
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ)
- v8:Fixnum[3] = Const Value(3)
- Return v8
+ v23:TrueClass = Const Value(true)
+ CheckInterrupts
+ v10:Fixnum[3] = Const Value(3)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -5872,8 +6005,11 @@ mod opt_tests {
v3:Fixnum[2] = Const Value(2)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ)
- v12:Fixnum[4] = Const Value(4)
- Return v12
+ v23:FalseClass = Const Value(false)
+ CheckInterrupts
+ v16:Fixnum[4] = Const Value(4)
+ CheckInterrupts
+ Return v16
"#]]);
}
@@ -5890,9 +6026,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = FixnumAdd v8, v3
- Return v9
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = FixnumAdd v10, v3
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -5909,28 +6046,33 @@ mod opt_tests {
assert_optimized_method_hir("rest", expect![[r#"
fn rest@<compiled>:2:
bb0(v0:BasicObject, v1:ArrayExact):
+ CheckInterrupts
Return v1
"#]]);
// extra hidden param for the set of specified keywords
assert_optimized_method_hir("kw", expect![[r#"
fn kw@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
+ CheckInterrupts
Return v1
"#]]);
assert_optimized_method_hir("kw_rest", expect![[r#"
fn kw_rest@<compiled>:4:
bb0(v0:BasicObject, v1:BasicObject):
+ CheckInterrupts
Return v1
"#]]);
assert_optimized_method_hir("block", expect![[r#"
fn block@<compiled>:6:
bb0(v0:BasicObject, v1:BasicObject):
v3:NilClass = Const Value(nil)
+ CheckInterrupts
Return v3
"#]]);
assert_optimized_method_hir("post", expect![[r#"
fn post@<compiled>:5:
bb0(v0:BasicObject, v1:ArrayExact, v2:BasicObject):
+ CheckInterrupts
Return v2
"#]]);
}
@@ -5949,9 +6091,10 @@ mod opt_tests {
fn test@<compiled>:5:
bb0(v0:BasicObject):
PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010)
- v6:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v7:BasicObject = SendWithoutBlockDirect v6, :foo (0x1038)
- Return v7
+ v8:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v9:BasicObject = SendWithoutBlockDirect v8, :foo (0x1038)
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -5970,6 +6113,7 @@ mod opt_tests {
fn test@<compiled>:5:
bb0(v0:BasicObject):
v3:BasicObject = SendWithoutBlock v0, :foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -5989,9 +6133,10 @@ mod opt_tests {
fn test@<compiled>:6:
bb0(v0:BasicObject):
PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010)
- v6:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v7:BasicObject = SendWithoutBlockDirect v6, :foo (0x1038)
- Return v7
+ v8:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v9:BasicObject = SendWithoutBlockDirect v8, :foo (0x1038)
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -6008,9 +6153,10 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:Fixnum[3] = Const Value(3)
PatchPoint MethodRedefined(Object@0x1000, Integer@0x1008, cme:0x1010)
- v7:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v8:BasicObject = SendWithoutBlockDirect v7, :Integer (0x1038), v2
- Return v8
+ v9:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v10:BasicObject = SendWithoutBlockDirect v9, :Integer (0x1038), v2
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -6030,9 +6176,10 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[2] = Const Value(2)
PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010)
- v8:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v9:BasicObject = SendWithoutBlockDirect v8, :foo (0x1038), v2, v3
- Return v9
+ v10:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v11:BasicObject = SendWithoutBlockDirect v10, :foo (0x1038), v2, v3
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -6053,12 +6200,13 @@ mod opt_tests {
fn test@<compiled>:7:
bb0(v0:BasicObject):
PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010)
- v8:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v9:BasicObject = SendWithoutBlockDirect v8, :foo (0x1038)
+ v10:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v11:BasicObject = SendWithoutBlockDirect v10, :foo (0x1038)
PatchPoint MethodRedefined(Object@0x1000, bar@0x1040, cme:0x1048)
- v11:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v12:BasicObject = SendWithoutBlockDirect v11, :bar (0x1038)
- Return v12
+ v13:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v14:BasicObject = SendWithoutBlockDirect v13, :bar (0x1038)
+ CheckInterrupts
+ Return v14
"#]]);
}
@@ -6077,6 +6225,7 @@ mod opt_tests {
fn test@<compiled>:7:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:BasicObject = SendWithoutBlock v1, :+, v2
+ CheckInterrupts
Return v5
"#]]);
}
@@ -6091,10 +6240,11 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = GuardType v2, Fixnum
- v10:Fixnum = FixnumAdd v8, v9
- Return v10
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = GuardType v2, Fixnum
+ v12:Fixnum = FixnumAdd v10, v11
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -6109,9 +6259,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = FixnumAdd v8, v3
- Return v9
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = FixnumAdd v10, v3
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -6126,9 +6277,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = FixnumAdd v3, v8
- Return v9
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = FixnumAdd v3, v10
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -6142,10 +6294,11 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = GuardType v2, Fixnum
- v10:BoolExact = FixnumLt v8, v9
- Return v10
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = GuardType v2, Fixnum
+ v12:BoolExact = FixnumLt v10, v11
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -6160,9 +6313,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT)
- v8:Fixnum = GuardType v1, Fixnum
- v9:BoolExact = FixnumLt v8, v3
- Return v9
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:BoolExact = FixnumLt v10, v3
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -6177,9 +6331,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT)
- v8:Fixnum = GuardType v1, Fixnum
- v9:BoolExact = FixnumLt v3, v8
- Return v9
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:BoolExact = FixnumLt v3, v10
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -6195,7 +6350,10 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v1:NilClass = Const Value(nil)
+ v4:ArrayExact = NewArray
v5:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v5
"#]]);
}
@@ -6212,7 +6370,9 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v3:RangeExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v4
"#]]);
}
@@ -6236,6 +6396,7 @@ mod opt_tests {
v8:StringExact = StringCopy v6
v10:RangeExact = NewRange v4 NewRangeInclusive v8
v11:Fixnum[0] = Const Value(0)
+ CheckInterrupts
Return v11
"#]]);
}
@@ -6252,7 +6413,10 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject):
+ v2:NilClass = Const Value(nil)
+ v5:ArrayExact = NewArray v1
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6268,7 +6432,10 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v1:NilClass = Const Value(nil)
+ v4:HashExact = NewHash
v5:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v5
"#]]);
}
@@ -6289,6 +6456,7 @@ mod opt_tests {
v6:StaticSymbol[:b] = Const Value(VALUE(0x1008))
v8:HashExact = NewHash v5: v1, v6: v2
v9:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v9
"#]]);
}
@@ -6305,7 +6473,11 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v1:NilClass = Const Value(nil)
+ v3:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ v5:ArrayExact = ArrayDup v3
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6321,7 +6493,11 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v1:NilClass = Const Value(nil)
+ v3:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ v5:HashExact = HashDup v3
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6339,6 +6515,7 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject):
v3:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -6355,7 +6532,11 @@ mod opt_tests {
assert_optimized_method_hir("test", expect![[r#"
fn test@<compiled>:3:
bb0(v0:BasicObject):
+ v1:NilClass = Const Value(nil)
+ v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ v5:StringExact = StringCopy v3
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6373,9 +6554,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_PLUS)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6393,9 +6575,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MINUS)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6413,9 +6596,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MULT)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6433,10 +6617,11 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_DIV)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
- v11:Fixnum = FixnumDiv v9, v10
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
+ v13:Fixnum = FixnumDiv v11, v12
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6454,10 +6639,11 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_MOD)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
- v11:Fixnum = FixnumMod v9, v10
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
+ v13:Fixnum = FixnumMod v11, v12
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6475,9 +6661,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LT)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6495,9 +6682,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_LE)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6515,9 +6703,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GT)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6535,9 +6724,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_GE)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6555,9 +6745,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
- v9:Fixnum = GuardType v1, Fixnum
- v10:Fixnum = GuardType v2, Fixnum
+ v11:Fixnum = GuardType v1, Fixnum
+ v12:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6576,9 +6767,10 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_EQ)
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, BOP_NEQ)
- v10:Fixnum = GuardType v1, Fixnum
- v11:Fixnum = GuardType v2, Fixnum
+ v12:Fixnum = GuardType v1, Fixnum
+ v13:Fixnum = GuardType v2, Fixnum
v6:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v6
"#]]);
}
@@ -6596,6 +6788,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:BasicObject = GetConstantPath 0x1000
v4:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v4
"#]]);
}
@@ -6611,9 +6804,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(Integer@0x1000, itself@0x1008, cme:0x1010)
- v7:Fixnum = GuardType v1, Fixnum
- v8:BasicObject = CCall itself@0x1038, v7
- Return v8
+ v9:Fixnum = GuardType v1, Fixnum
+ v10:BasicObject = CCall itself@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -6627,8 +6821,9 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:ArrayExact = NewArray
PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010)
- v8:BasicObject = CCall itself@0x1038, v3
- Return v8
+ v10:BasicObject = CCall itself@0x1038, v3
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -6646,7 +6841,9 @@ mod opt_tests {
v1:NilClass = Const Value(nil)
v4:ArrayExact = NewArray
PatchPoint MethodRedefined(Array@0x1000, itself@0x1008, cme:0x1010)
+ v12:BasicObject = CCall itself@0x1038, v4
v7:Fixnum[1] = Const Value(1)
+ CheckInterrupts
Return v7
"#]]);
}
@@ -6667,9 +6864,11 @@ mod opt_tests {
v1:NilClass = Const Value(nil)
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, M)
- v11:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v13:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint MethodRedefined(Module@0x1010, name@0x1018, cme:0x1020)
+ v15:StringExact|NilClass = CCall name@0x1048, v13
v7:Fixnum[1] = Const Value(1)
+ CheckInterrupts
Return v7
"#]]);
}
@@ -6688,7 +6887,9 @@ mod opt_tests {
v1:NilClass = Const Value(nil)
v4:ArrayExact = NewArray
PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010)
+ v12:Fixnum = CCall length@0x1038, v4
v7:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v7
"#]]);
}
@@ -6705,8 +6906,9 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, C)
- v7:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
- Return v7
+ v9:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -6721,17 +6923,18 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, String)
- v15:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v17:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1010, Class)
- v18:Class[VALUE(0x1018)] = Const Value(VALUE(0x1018))
+ v20:Class[VALUE(0x1018)] = Const Value(VALUE(0x1018))
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1020, Module)
- v21:Class[VALUE(0x1028)] = Const Value(VALUE(0x1028))
+ v23:Class[VALUE(0x1028)] = Const Value(VALUE(0x1028))
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1030, BasicObject)
- v24:Class[VALUE(0x1038)] = Const Value(VALUE(0x1038))
- v11:ArrayExact = NewArray v15, v18, v21, v24
+ v26:Class[VALUE(0x1038)] = Const Value(VALUE(0x1038))
+ v11:ArrayExact = NewArray v17, v20, v23, v26
+ CheckInterrupts
Return v11
"#]]);
}
@@ -6747,11 +6950,12 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, Enumerable)
- v11:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v13:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1010, Kernel)
- v14:ModuleExact[VALUE(0x1018)] = Const Value(VALUE(0x1018))
- v7:ArrayExact = NewArray v11, v14
+ v16:ModuleExact[VALUE(0x1018)] = Const Value(VALUE(0x1018))
+ v7:ArrayExact = NewArray v13, v16
+ CheckInterrupts
Return v7
"#]]);
}
@@ -6769,8 +6973,9 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, MY_MODULE)
- v7:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
- Return v7
+ v9:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -6788,7 +6993,9 @@ mod opt_tests {
v1:NilClass = Const Value(nil)
v4:ArrayExact = NewArray
PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010)
+ v12:Fixnum = CCall size@0x1038, v4
v7:Fixnum[5] = Const Value(5)
+ CheckInterrupts
Return v7
"#]]);
}
@@ -6807,6 +7014,7 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
v3:Fixnum[0] = Const Value(0)
v5:BasicObject = SendWithoutBlock v2, :itself, v3
+ CheckInterrupts
Return v5
"#]]);
}
@@ -6821,8 +7029,9 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject):
v3:Fixnum[1] = Const Value(1)
PatchPoint MethodRedefined(Integer@0x1000, zero?@0x1008, cme:0x1010)
- v8:BasicObject = SendWithoutBlockDirect v3, :zero? (0x1038)
- Return v8
+ v10:BasicObject = SendWithoutBlockDirect v3, :zero? (0x1038)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -6841,8 +7050,9 @@ mod opt_tests {
v4:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v6:ArrayExact = ArrayDup v4
PatchPoint MethodRedefined(Array@0x1008, first@0x1010, cme:0x1018)
- v11:BasicObject = SendWithoutBlockDirect v6, :first (0x1040)
- Return v11
+ v13:BasicObject = SendWithoutBlockDirect v6, :first (0x1040)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -6859,10 +7069,11 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, M)
- v9:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v11:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint MethodRedefined(Module@0x1010, class@0x1018, cme:0x1020)
- v11:BasicObject = SendWithoutBlockDirect v9, :class (0x1048)
- Return v11
+ v13:BasicObject = SendWithoutBlockDirect v11, :class (0x1048)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -6885,9 +7096,10 @@ mod opt_tests {
fn test@<compiled>:8:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010)
- v7:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
- v8:BasicObject = SendWithoutBlockDirect v7, :foo (0x1038)
- Return v8
+ v9:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
+ v10:BasicObject = SendWithoutBlockDirect v9, :foo (0x1038)
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -6904,6 +7116,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
v4:BasicObject = SendWithoutBlock v0, :foo, v2
+ CheckInterrupts
Return v4
"#]]);
}
@@ -6920,6 +7133,7 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject):
v3:BasicObject = Send v0, 0x1000, :foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -6937,6 +7151,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
v4:BasicObject = SendWithoutBlock v0, :foo, v2
+ CheckInterrupts
Return v4
"#]]);
}
@@ -6986,8 +7201,9 @@ mod opt_tests {
v2:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:StringExact = StringCopy v2
PatchPoint MethodRedefined(String@0x1008, bytesize@0x1010, cme:0x1018)
- v9:Fixnum = CCall bytesize@0x1040, v4
- Return v9
+ v11:Fixnum = CCall bytesize@0x1040, v4
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -7000,6 +7216,7 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = GetConstantPath 0x1000
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7015,6 +7232,7 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = GetConstantPath 0x1000
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7030,8 +7248,9 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, Kernel)
- v7:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
- Return v7
+ v9:ModuleExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7052,8 +7271,9 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, Foo::Bar::C)
- v7:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
- Return v7
+ v9:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7069,10 +7289,12 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, C)
- v20:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v24:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
v4:NilClass = Const Value(nil)
- v11:BasicObject = SendWithoutBlock v20, :new
- Return v11
+ CheckInterrupts
+ v13:BasicObject = SendWithoutBlock v24, :new
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7092,11 +7314,13 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, C)
- v22:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v26:Class[VALUE(0x1008)] = Const Value(VALUE(0x1008))
v4:NilClass = Const Value(nil)
v5:Fixnum[1] = Const Value(1)
- v13:BasicObject = SendWithoutBlock v22, :new, v5
- Return v13
+ CheckInterrupts
+ v15:BasicObject = SendWithoutBlock v26, :new, v5
+ CheckInterrupts
+ Return v15
"#]]);
}
@@ -7110,8 +7334,9 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:ArrayExact = NewArray v1, v2
PatchPoint MethodRedefined(Array@0x1000, length@0x1008, cme:0x1010)
- v10:Fixnum = CCall length@0x1038, v5
- Return v10
+ v12:Fixnum = CCall length@0x1038, v5
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -7125,8 +7350,9 @@ mod opt_tests {
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
v5:ArrayExact = NewArray v1, v2
PatchPoint MethodRedefined(Array@0x1000, size@0x1008, cme:0x1010)
- v10:Fixnum = CCall size@0x1038, v5
- Return v10
+ v12:Fixnum = CCall size@0x1038, v5
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -7139,6 +7365,7 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v3:BasicObject = GetIvar v0, :@foo
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7153,6 +7380,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
SetIvar v0, :@foo, v2
+ CheckInterrupts
Return v2
"#]]);
}
@@ -7167,6 +7395,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7184,6 +7413,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:BasicObject = SendWithoutBlock v3, :freeze
+ CheckInterrupts
Return v4
"#]]);
}
@@ -7199,6 +7429,7 @@ mod opt_tests {
v3:HashExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE)
PatchPoint BOPRedefined(HASH_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7214,6 +7445,7 @@ mod opt_tests {
v3:HashExact = NewHash
v5:BasicObject = SendWithoutBlock v3, :dup
v7:BasicObject = SendWithoutBlock v5, :freeze
+ CheckInterrupts
Return v7
"#]]);
}
@@ -7229,6 +7461,7 @@ mod opt_tests {
v3:HashExact = NewHash
v4:NilClass = Const Value(nil)
v6:BasicObject = SendWithoutBlock v3, :freeze, v4
+ CheckInterrupts
Return v6
"#]]);
}
@@ -7243,6 +7476,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7258,6 +7492,7 @@ mod opt_tests {
v3:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7273,6 +7508,7 @@ mod opt_tests {
v3:ArrayExact = NewArray
v5:BasicObject = SendWithoutBlock v3, :dup
v7:BasicObject = SendWithoutBlock v5, :freeze
+ CheckInterrupts
Return v7
"#]]);
}
@@ -7288,6 +7524,7 @@ mod opt_tests {
v3:ArrayExact = NewArray
v4:NilClass = Const Value(nil)
v6:BasicObject = SendWithoutBlock v3, :freeze, v4
+ CheckInterrupts
Return v6
"#]]);
}
@@ -7302,6 +7539,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7317,6 +7555,7 @@ mod opt_tests {
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE)
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7333,6 +7572,7 @@ mod opt_tests {
v4:StringExact = StringCopy v2
v6:BasicObject = SendWithoutBlock v4, :dup
v8:BasicObject = SendWithoutBlock v6, :freeze
+ CheckInterrupts
Return v8
"#]]);
}
@@ -7349,6 +7589,7 @@ mod opt_tests {
v4:StringExact = StringCopy v2
v5:NilClass = Const Value(nil)
v7:BasicObject = SendWithoutBlock v4, :freeze, v5
+ CheckInterrupts
Return v7
"#]]);
}
@@ -7363,6 +7604,7 @@ mod opt_tests {
bb0(v0:BasicObject):
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7378,6 +7620,7 @@ mod opt_tests {
v3:StringExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_FREEZE)
PatchPoint BOPRedefined(STRING_REDEFINED_OP_FLAG, BOP_UMINUS)
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7394,6 +7637,7 @@ mod opt_tests {
v4:StringExact = StringCopy v2
v6:BasicObject = SendWithoutBlock v4, :dup
v8:BasicObject = SendWithoutBlock v6, :-@
+ CheckInterrupts
Return v8
"#]]);
}
@@ -7410,6 +7654,7 @@ mod opt_tests {
v3:StringExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
v5:StringExact = StringCopy v3
v11:StringExact = StringConcat v2, v5
+ CheckInterrupts
Return v11
"#]]);
}
@@ -7427,6 +7672,7 @@ mod opt_tests {
v5:BasicObject = ObjToString v3
v7:String = AnyToString v3, str: v5
v9:StringExact = StringConcat v2, v7
+ CheckInterrupts
Return v9
"#]]);
}
@@ -7444,6 +7690,8 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject):
v3:NilClass = Const Value(nil)
+ CheckInterrupts
+ CheckInterrupts
Return v3
"#]]);
}
@@ -7461,9 +7709,11 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject):
v3:Fixnum[1] = Const Value(1)
+ CheckInterrupts
PatchPoint MethodRedefined(Integer@0x1000, itself@0x1008, cme:0x1010)
- v15:BasicObject = CCall itself@0x1038, v3
- Return v15
+ v19:BasicObject = CCall itself@0x1038, v3
+ CheckInterrupts
+ Return v19
"#]]);
}
@@ -7479,8 +7729,9 @@ mod opt_tests {
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
v5:Fixnum[1] = Const Value(1)
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_AREF)
- v11:Fixnum[5] = Const Value(5)
- Return v11
+ v13:Fixnum[5] = Const Value(5)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7496,8 +7747,9 @@ mod opt_tests {
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
v5:Fixnum[-3] = Const Value(-3)
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_AREF)
- v11:Fixnum[4] = Const Value(4)
- Return v11
+ v13:Fixnum[4] = Const Value(4)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7513,8 +7765,9 @@ mod opt_tests {
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
v5:Fixnum[-10] = Const Value(-10)
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_AREF)
- v11:NilClass = Const Value(nil)
- Return v11
+ v13:NilClass = Const Value(nil)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7530,8 +7783,9 @@ mod opt_tests {
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
v5:Fixnum[10] = Const Value(10)
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_AREF)
- v11:NilClass = Const Value(nil)
- Return v11
+ v13:NilClass = Const Value(nil)
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7550,6 +7804,7 @@ mod opt_tests {
PatchPoint BOPRedefined(ARRAY_REDEFINED_OP_FLAG, BOP_FREEZE)
v5:Fixnum[10] = Const Value(10)
v7:BasicObject = SendWithoutBlock v3, :[], v5
+ CheckInterrupts
Return v7
"#]]);
}
@@ -7568,8 +7823,9 @@ mod opt_tests {
v2:ArrayExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
v4:ArrayExact = ArrayDup v2
PatchPoint MethodRedefined(Array@0x1008, max@0x1010, cme:0x1018)
- v9:BasicObject = SendWithoutBlockDirect v4, :max (0x1040)
- Return v9
+ v11:BasicObject = SendWithoutBlockDirect v4, :max (0x1040)
+ CheckInterrupts
+ Return v11
"#]]);
}
@@ -7588,8 +7844,9 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, MY_SET)
- v7:SetExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
- Return v7
+ v9:SetExact[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7602,6 +7859,7 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject):
v2:RegexpExact[VALUE(0x1000)] = Const Value(VALUE(0x1000))
+ CheckInterrupts
Return v2
"#]]);
}
@@ -7616,8 +7874,9 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:NilClass = Const Value(nil)
PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010)
- v7:TrueClass = CCall nil?@0x1038, v2
- Return v7
+ v9:TrueClass = CCall nil?@0x1038, v2
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7635,6 +7894,7 @@ mod opt_tests {
v2:NilClass = Const Value(nil)
PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010)
v5:Fixnum[1] = Const Value(1)
+ CheckInterrupts
Return v5
"#]]);
}
@@ -7649,8 +7909,9 @@ mod opt_tests {
bb0(v0:BasicObject):
v2:Fixnum[1] = Const Value(1)
PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010)
- v7:FalseClass = CCall nil?@0x1038, v2
- Return v7
+ v9:FalseClass = CCall nil?@0x1038, v2
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7668,6 +7929,7 @@ mod opt_tests {
v2:Fixnum[1] = Const Value(1)
PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010)
v5:Fixnum[2] = Const Value(2)
+ CheckInterrupts
Return v5
"#]]);
}
@@ -7683,9 +7945,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(NilClass@0x1000, nil?@0x1008, cme:0x1010)
- v7:NilClass = GuardType v1, NilClass
- v8:TrueClass = CCall nil?@0x1038, v7
- Return v8
+ v9:NilClass = GuardType v1, NilClass
+ v10:TrueClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7700,9 +7963,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(FalseClass@0x1000, nil?@0x1008, cme:0x1010)
- v7:FalseClass = GuardType v1, FalseClass
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:FalseClass = GuardType v1, FalseClass
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7717,9 +7981,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(TrueClass@0x1000, nil?@0x1008, cme:0x1010)
- v7:TrueClass = GuardType v1, TrueClass
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:TrueClass = GuardType v1, TrueClass
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7734,9 +7999,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(Symbol@0x1000, nil?@0x1008, cme:0x1010)
- v7:StaticSymbol = GuardType v1, StaticSymbol
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:StaticSymbol = GuardType v1, StaticSymbol
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7751,9 +8017,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(Integer@0x1000, nil?@0x1008, cme:0x1010)
- v7:Fixnum = GuardType v1, Fixnum
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:Fixnum = GuardType v1, Fixnum
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7768,9 +8035,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(Float@0x1000, nil?@0x1008, cme:0x1010)
- v7:Flonum = GuardType v1, Flonum
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:Flonum = GuardType v1, Flonum
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7785,9 +8053,10 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(String@0x1000, nil?@0x1008, cme:0x1010)
- v7:StringExact = GuardType v1, StringExact
- v8:FalseClass = CCall nil?@0x1038, v7
- Return v8
+ v9:StringExact = GuardType v1, StringExact
+ v10:FalseClass = CCall nil?@0x1038, v9
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7802,10 +8071,11 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 28)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = GuardType v2, Fixnum
- v10:Fixnum = FixnumAnd v8, v9
- Return v10
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = GuardType v2, Fixnum
+ v12:Fixnum = FixnumAnd v10, v11
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -7820,10 +8090,11 @@ mod opt_tests {
fn test@<compiled>:2:
bb0(v0:BasicObject, v1:BasicObject, v2:BasicObject):
PatchPoint BOPRedefined(INTEGER_REDEFINED_OP_FLAG, 29)
- v8:Fixnum = GuardType v1, Fixnum
- v9:Fixnum = GuardType v2, Fixnum
- v10:Fixnum = FixnumOr v8, v9
- Return v10
+ v10:Fixnum = GuardType v1, Fixnum
+ v11:Fixnum = GuardType v2, Fixnum
+ v12:Fixnum = FixnumOr v10, v11
+ CheckInterrupts
+ Return v12
"#]]);
}
@@ -7840,9 +8111,10 @@ mod opt_tests {
fn test@<compiled>:3:
bb0(v0:BasicObject):
PatchPoint MethodRedefined(Object@0x1000, foo@0x1008, cme:0x1010)
- v6:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
- v7:BasicObject = SendWithoutBlockDirect v6, :foo (0x1038)
- Return v7
+ v8:HeapObject[class_exact*:Object@VALUE(0x1000)] = GuardType v0, HeapObject[class_exact*:Object@VALUE(0x1000)]
+ v9:BasicObject = SendWithoutBlockDirect v8, :foo (0x1038)
+ CheckInterrupts
+ Return v9
"#]]);
}
@@ -7863,10 +8135,11 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, O)
- v9:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v11:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint MethodRedefined(C@0x1010, foo@0x1018, cme:0x1020)
- v11:BasicObject = GetIvar v9, :@foo
- Return v11
+ v13:BasicObject = GetIvar v11, :@foo
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7887,10 +8160,11 @@ mod opt_tests {
bb0(v0:BasicObject):
PatchPoint SingleRactorMode
PatchPoint StableConstantNames(0x1000, O)
- v9:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
+ v11:BasicObject[VALUE(0x1008)] = Const Value(VALUE(0x1008))
PatchPoint MethodRedefined(C@0x1010, foo@0x1018, cme:0x1020)
- v11:BasicObject = GetIvar v9, :@foo
- Return v11
+ v13:BasicObject = GetIvar v11, :@foo
+ CheckInterrupts
+ Return v13
"#]]);
}
@@ -7909,9 +8183,10 @@ mod opt_tests {
fn test@<compiled>:6:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010)
- v7:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
- v8:BasicObject = GetIvar v7, :@foo
- Return v8
+ v9:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
+ v10:BasicObject = GetIvar v9, :@foo
+ CheckInterrupts
+ Return v10
"#]]);
}
@@ -7930,9 +8205,10 @@ mod opt_tests {
fn test@<compiled>:6:
bb0(v0:BasicObject, v1:BasicObject):
PatchPoint MethodRedefined(C@0x1000, foo@0x1008, cme:0x1010)
- v7:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
- v8:BasicObject = GetIvar v7, :@foo
- Return v8
+ v9:HeapObject[class_exact:C] = GuardType v1, HeapObject[class_exact:C]
+ v10:BasicObject = GetIvar v9, :@foo
+ CheckInterrupts
+ Return v10
"#]]);
}
}