@@ -2941,15 +2941,18 @@ mod hir_opt_tests {
29412941 Jump bb2(v5, v6)
29422942 bb2(v8:BasicObject, v9:NilClass):
29432943 v13:Fixnum[1] = Const Value(1)
2944+ v15:CPtr = GetEP 0
2945+ v17:CInt64 = LoadField v15, :_env_data_index_flags@0x1000
2946+ v18:CInt64 = GuardNoBitsSet v17, CUInt64(8)
29442947 SetLocal :a, l0, EP@3, v13
2945- PatchPoint NoSingletonClass(Object@0x1000 )
2946- PatchPoint MethodRedefined(Object@0x1000 , foo@0x1008 , cme:0x1010 )
2947- v31 :HeapObject[class_exact*:Object@VALUE(0x1000 )] = GuardType v8, HeapObject[class_exact*:Object@VALUE(0x1000 )]
2948+ PatchPoint NoSingletonClass(Object@0x1008 )
2949+ PatchPoint MethodRedefined(Object@0x1008 , foo@0x1010 , cme:0x1018 )
2950+ v35 :HeapObject[class_exact*:Object@VALUE(0x1008 )] = GuardType v8, HeapObject[class_exact*:Object@VALUE(0x1008 )]
29482951 IncrCounter inline_iseq_optimized_send_count
2949- v20:BasicObject = GetLocal :a, l0, EP@3
29502952 v24:BasicObject = GetLocal :a, l0, EP@3
2953+ v28:BasicObject = GetLocal :a, l0, EP@3
29512954 CheckInterrupts
2952- Return v24
2955+ Return v28
29532956 " ) ;
29542957 }
29552958
@@ -3430,15 +3433,18 @@ mod hir_opt_tests {
34303433 Jump bb2(v6, v7, v8)
34313434 bb2(v10:BasicObject, v11:BasicObject, v12:NilClass):
34323435 v16:ArrayExact = NewArray
3436+ v18:CPtr = GetEP 0
3437+ v20:CInt64 = LoadField v18, :_env_data_index_flags@0x1000
3438+ v21:CInt64 = GuardNoBitsSet v20, CUInt64(8)
34333439 SetLocal :a, l0, EP@3, v16
3434- v22 :TrueClass = Const Value(true)
3440+ v26 :TrueClass = Const Value(true)
34353441 IncrCounter complex_arg_pass_caller_kwarg
3436- v24:BasicObject = Send v11, 0x1000, :each_line, v22 # SendFallbackReason: Complex argument passing
3437- v25:BasicObject = GetLocal :s, l0, EP@4
3438- v26:BasicObject = GetLocal :a, l0, EP@3
3442+ v28:BasicObject = Send v11, 0x1008, :each_line, v26 # SendFallbackReason: Complex argument passing
3443+ v29:BasicObject = GetLocal :s, l0, EP@4
34393444 v30:BasicObject = GetLocal :a, l0, EP@3
3445+ v34:BasicObject = GetLocal :a, l0, EP@3
34403446 CheckInterrupts
3441- Return v30
3447+ Return v34
34423448 " ) ;
34433449 }
34443450
@@ -6538,20 +6544,23 @@ mod hir_opt_tests {
65386544 Jump bb2(v5, v6)
65396545 bb2(v8:BasicObject, v9:NilClass):
65406546 v13:ArrayExact = NewArray
6547+ v15:CPtr = GetEP 0
6548+ v17:CInt64 = LoadField v15, :_env_data_index_flags@0x1000
6549+ v18:CInt64 = GuardNoBitsSet v17, CUInt64(8)
65416550 SetLocal :result, l0, EP@3, v13
65426551 PatchPoint SingleRactorMode
6543- PatchPoint StableConstantNames(0x1000 , A)
6544- v36 :ArrayExact[VALUE(0x1008 )] = Const Value(VALUE(0x1008 ))
6552+ PatchPoint StableConstantNames(0x1008 , A)
6553+ v40 :ArrayExact[VALUE(0x1010 )] = Const Value(VALUE(0x1010 ))
65456554 PatchPoint SingleRactorMode
6546- PatchPoint StableConstantNames(0x1010, B)
6547- v39:ArrayExact[VALUE(0x1018)] = Const Value(VALUE(0x1018))
6548- PatchPoint NoSingletonClass(Array@0x1020)
6549- PatchPoint MethodRedefined(Array@0x1020, zip@0x1028, cme:0x1030)
6550- v43:BasicObject = CCallVariadic v36, :zip@0x1058, v39
6551- v25:BasicObject = GetLocal :result, l0, EP@3
6555+ PatchPoint StableConstantNames(0x1018, B)
6556+ v43:ArrayExact[VALUE(0x1020)] = Const Value(VALUE(0x1020))
6557+ PatchPoint NoSingletonClass(Array@0x1028)
6558+ PatchPoint MethodRedefined(Array@0x1028, zip@0x1030, cme:0x1038)
6559+ v47:BasicObject = CCallVariadic v40, :zip@0x1060, v43
65526560 v29:BasicObject = GetLocal :result, l0, EP@3
6561+ v33:BasicObject = GetLocal :result, l0, EP@3
65536562 CheckInterrupts
6554- Return v29
6563+ Return v33
65556564 " ) ;
65566565 }
65576566
@@ -10577,25 +10586,28 @@ mod hir_opt_tests {
1057710586 Jump bb2(v8, v9, v10, v11, v12)
1057810587 bb2(v14:BasicObject, v15:BasicObject, v16:BasicObject, v17:BasicObject, v18:NilClass):
1057910588 CheckInterrupts
10589+ v30:CPtr = GetEP 0
10590+ v32:CInt64 = LoadField v30, :_env_data_index_flags@0x1000
10591+ v33:CInt64 = GuardNoBitsSet v32, CUInt64(8)
1058010592 SetLocal :formatted, l0, EP@3, v15
1058110593 PatchPoint SingleRactorMode
10582- v57 :HeapBasicObject = GuardType v14, HeapBasicObject
10583- v58 :CShape = LoadField v57 , :_shape_id@0x1000
10584- v59 :CShape[0x1001 ] = GuardBitEquals v58 , CShape(0x1001 )
10585- StoreField v57 , :@formatted@0x1002 , v15
10586- WriteBarrier v57 , v15
10587- v62 :CShape[0x1003 ] = Const CShape(0x1003 )
10588- StoreField v57 , :_shape_id@0x1000, v62
10589- v46 :Class[VMFrozenCore] = Const Value(VALUE(0x1008))
10594+ v61 :HeapBasicObject = GuardType v14, HeapBasicObject
10595+ v62 :CShape = LoadField v61 , :_shape_id@0x1001
10596+ v63 :CShape[0x1002 ] = GuardBitEquals v62 , CShape(0x1002 )
10597+ StoreField v61 , :@formatted@0x1003 , v15
10598+ WriteBarrier v61 , v15
10599+ v66 :CShape[0x1004 ] = Const CShape(0x1004 )
10600+ StoreField v61 , :_shape_id@0x1001, v66
10601+ v50 :Class[VMFrozenCore] = Const Value(VALUE(0x1008))
1059010602 PatchPoint NoSingletonClass(Class@0x1010)
1059110603 PatchPoint MethodRedefined(Class@0x1010, lambda@0x1018, cme:0x1020)
10592- v67 :BasicObject = CCallWithFrame v46 , :RubyVM::FrozenCore.lambda@0x1048, block=0x1050
10593- v49 :BasicObject = GetLocal :a, l0, EP@6
10594- v50 :BasicObject = GetLocal :_b, l0, EP@5
10595- v51 :BasicObject = GetLocal :_c, l0, EP@4
10596- v52 :BasicObject = GetLocal :formatted, l0, EP@3
10604+ v71 :BasicObject = CCallWithFrame v50 , :RubyVM::FrozenCore.lambda@0x1048, block=0x1050
10605+ v53 :BasicObject = GetLocal :a, l0, EP@6
10606+ v54 :BasicObject = GetLocal :_b, l0, EP@5
10607+ v55 :BasicObject = GetLocal :_c, l0, EP@4
10608+ v56 :BasicObject = GetLocal :formatted, l0, EP@3
1059710609 CheckInterrupts
10598- Return v67
10610+ Return v71
1059910611 " ) ;
1060010612 }
1060110613
@@ -11594,14 +11606,17 @@ mod hir_opt_tests {
1159411606 bb2(v10:BasicObject, v11:BasicObject, v12:NilClass):
1159511607 PatchPoint NoSingletonClass(B@0x1000)
1159611608 PatchPoint MethodRedefined(B@0x1000, proc@0x1008, cme:0x1010)
11597- v35 :HeapObject[class_exact:B] = GuardType v10, HeapObject[class_exact:B]
11598- v36 :BasicObject = CCallWithFrame v35 , :Kernel#proc@0x1038, block=0x1040
11609+ v39 :HeapObject[class_exact:B] = GuardType v10, HeapObject[class_exact:B]
11610+ v40 :BasicObject = CCallWithFrame v39 , :Kernel#proc@0x1038, block=0x1040
1159911611 v18:BasicObject = GetLocal :blk, l0, EP@4
11600- SetLocal :other_block, l0, EP@3, v36
11601- v25:BasicObject = GetLocal :other_block, l0, EP@3
11602- v27:BasicObject = InvokeSuper v10, 0x1048, v25 # SendFallbackReason: super: complex argument passing to `super` call
11612+ v21:CPtr = GetEP 0
11613+ v23:CInt64 = LoadField v21, :_env_data_index_flags@0x1048
11614+ v24:CInt64 = GuardNoBitsSet v23, CUInt64(8)
11615+ SetLocal :other_block, l0, EP@3, v40
11616+ v29:BasicObject = GetLocal :other_block, l0, EP@3
11617+ v31:BasicObject = InvokeSuper v10, 0x1050, v29 # SendFallbackReason: super: complex argument passing to `super` call
1160311618 CheckInterrupts
11604- Return v27
11619+ Return v31
1160511620 " ) ;
1160611621 }
1160711622
0 commit comments