Skip to content

Instantly share code, notes, and snippets.

@dcharkes
Last active December 20, 2019 12:10
Show Gist options
  • Save dcharkes/07b126a5df16b0740aa2b572ce392b73 to your computer and use it in GitHub Desktop.
Save dcharkes/07b126a5df16b0740aa2b572ce392b73 to your computer and use it in GitHub Desktop.
*** BEGIN CFG
After TryOptimizePatterns
==== dart:core_Object_==
B0[graph]:0 {
v228 <- Constant(#null)
v229 <- Constant(#<optimized out>)
v238 <- Constant(#true) T{bool}
}
B51[function entry]:2 {
v230 <- Parameter(0)
v231 <- Parameter(1)
v232 <- Constant(#Instance of '_PutMode') T{_PutMode}
v234 <- Constant(#Instance of '_PutMode') T{_PutMode}
}
Return:12(v238)
*** END CFG
*** BEGIN CFG
After Inlining
==== package:objectbox/src/box.dart_Box_put
B0[graph]:0 {
v0 <- Constant(#null) T{Null?}
v1 <- Constant(#<optimized out>) T{_OneByteString}
v22 <- Constant(#2) T{_Smi}
v25 <- Constant(#true) T{bool}
v40 <- Constant(#0) T{_Smi}
v43 <- Constant(#3) T{_Smi}
v48 <- Constant(#mode) T{_OneByteString}
v49 <- Constant(#Instance of '_PutMode') T{_PutMode}
v70 <- Constant(#TypeArguments: (H1fd9dd31) [Type: class 'OBX_bytes']) T{TypeArguments}
v103 <- Constant(#4) T{_Smi}
v112 <- Constant(#1) T{_Smi}
v156 <- Constant(#Field <::._cachedBindings@497227197>: static) T{Field}
v180 <- Constant(#Instance of '_PutMode') T{_PutMode}
v181 <- Constant(#Instance of '_PutMode') T{_PutMode}
v193 <- Constant(#ObjectBoxException: ) T{_OneByteString}
v216 <- Constant(#false) T{bool}
}
B1[function entry]:2 {
v16 <- SpecialParameter(ArgDescriptor) T{_ImmutableList}
}
v18 <- LoadField(v16 . ArgumentsDescriptor.positional_count {final}) T{_Smi}
v20 <- LoadField(v16 . ArgumentsDescriptor.count {final}) T{_Smi}
v23 <- RelationalOp:6(<=, v22, v18) T{bool}
Branch if StrictCompare:8(===, v23, v25) goto (3, 4)
B3[target]:12
v32 <- RelationalOp:16(<=, v18, v22) T{bool}
Branch if StrictCompare:18(===, v32, v25) goto (5, 6)
B5[target]:22
v34 <- BinarySmiOp:30(- [tr], v20, v22) T{_Smi}
v36 <- LoadIndexedUnsafe(fp[v34 + 12]) T{*?}
v38 <- LoadIndexedUnsafe(fp[v34 + 8]) T{T?}
v41 <- BinarySmiOp:32(* [tr], v22, v40) T{_Smi}
v44 <- BinarySmiOp:34(+ [tr], v43, v41) T{_Smi}
v46 <- LoadIndexed(v16, v44) T{*?}
Branch if StrictCompare:36(===, v46, v48) goto (7, 8)
B7[target]:40
v104 <- BinarySmiOp:46(+ [tr], v103, v41) T{_Smi}
v106 <- LoadIndexed(v16, v104) T{*?}
v108 <- BinarySmiOp:48(- [tr], v20, v106) T{_Smi}
v110 <- LoadIndexedUnsafe(fp[v108 + 4]) T{_PutMode?}
v113 <- BinarySmiOp:50(+ [tr], v40, v112) T{_Smi}
goto:52 B9
B8[target]:42
goto:54 B9
B9[join]:44 pred(B7, B8) {
v50 <- phi(v113, v40) alive T{_Smi}
}
Branch if StrictCompare:56(===, v34, v50) goto (10, 11)
B10[target]:60
goto:68 B12
B12[join]:66 pred(B10)
CheckStackOverflow:70(stack=0, loop=0)
DebugStepCheck:72()
PushArgument(v36)
PushArgument(v38)
v52 <- InstanceCall:74( _entityReader@494374530<0>, v36, v38 IC[0: ] using unchecked entrypoint) T{*?}
v115 <- Redefinition(v36 ^ T{*}) T{*}
PushArgument(v52)
v54 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v117 <- CheckNull:78(v54, NoSuchMethodError) T{ModelEntity}
v56 <- LoadField(v117 T{ModelEntity} . idProperty) T{ModelProperty?}
v119 <- CheckNull:82(v56, NoSuchMethodError) T{ModelProperty}
v58 <- LoadField(v119 T{ModelProperty} . name) T{String?}
PushArgument(v58)
v60 <- InstanceCall:86( []<0>, v52, v58 IC[0: ]) T{*?}
v121 <- Redefinition(v52 ^ T{*}) T{*}
AssertAssignable:88(v60, int, '', instantiator_type_args(v0), function_type_args(v0)) T{int?}
Branch if StrictCompare:90(===, v60 T{int?}, v0, with number check) goto (15, 13)
B15[target]:106
goto:108 B14
B13[target]:102
v123 <- Redefinition(v60 T{int?} ^ T{int}) T{int}
v62 <- CheckedSmiComparison:94(==, v123, v40) T{bool}
AssertBoolean:96(v62)
Branch if StrictCompare:98(===, v62, v25) goto (16, 19)
B16[target]:110
goto:112 B14
B14[join]:104 pred(B15, B16)
v197 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v197, v0) goto (44, 45)
B44[target]:18
v201 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v201)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v201)
StoreStaticField(_cachedBindings@497227197, v201)
goto:26 B46
B45[target]:22
v203 <- Redefinition(v197 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B46
B46[join]:24 pred(B44, B45) {
v199 <- phi(v201, v203) alive T{_ObjectBoxBindings}
}
PushArgument(v199)
v87 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v87)
PushArgument(v40)
v89 <- InstanceCall:118( obx_box_id_for_put<0>, v199, v87, v40 IC[0: ]) T{*?}
v91 <- CheckedSmiComparison:120(==, v89, v40) T{bool}
AssertBoolean:122(v91)
Branch if StrictCompare:124(===, v91, v25) goto (17, 18)
B17[target]:128
v99 <- AllocateObject(ObjectBoxException) T{ObjectBoxException}
v101 <- StaticCall:130( lastObxErrorString<0> ) T{String?}
PushArgument(v193)
PushArgument(v101 T{String?})
v191 <- StaticCall:12( +<0> v193, v101 T{String?}, using unchecked entrypoint, result_type = T{??}) T{String?}
StoreInstanceField(v99 . message = v191)
StoreInstanceField(v99 . msg = v101 T{String?})
PushArgument(v99)
Throw:134()
B18[target]:136
PushArgument(v121 T{*})
v93 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v133 <- CheckNull:140(v93, NoSuchMethodError) T{ModelEntity}
v95 <- LoadField(v133 T{ModelEntity} . idProperty) T{ModelProperty?}
v135 <- CheckNull:144(v95, NoSuchMethodError) T{ModelProperty}
v97 <- LoadField(v135 T{ModelProperty} . name) T{String?}
PushArgument(v97)
PushArgument(v89)
InstanceCall:148( []=<0>, v121 T{*}, v97, v89 IC[0: ])
goto:154 B20
B19[target]:150
goto:156 B20
B20[join]:152 pred(B18, B19) {
v64 <- phi(v89, v123) alive T{*?}
}
v66 <- LoadField(v115 . _fbManager@494374530) T{OBXFlatbuffersManager?}
PushArgument(v66)
PushArgument(v121 T{*})
v125 <- CheckNull:160(v66, NoSuchMethodError) T{OBXFlatbuffersManager}
v68 <- StaticCall:162( marshal<0> v66, v121 T{*}, using unchecked entrypoint, result_type = T{Pointer?}) T{Pointer?}
goto:166 B21
B21[join try_idx 0]:164 pred(B20)
PushArgument(v70)
PushArgument(v68)
v71 <- StaticCall:170( StructPointer|get#ref<1> v70, v68) T{*?}
v144 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v144, v0) goto (27, 28)
B27[target try_idx 0]:18
v152 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v152)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v152)
StoreStaticField(_cachedBindings@497227197, v152)
goto:26 B29
B28[target try_idx 0]:22
v154 <- Redefinition(v144 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B29
B29[join try_idx 0]:24 pred(B27, B28) {
v146 <- phi(v0, v0) alive T{Null?}
v148 <- phi(v152, v154) alive T{_ObjectBoxBindings}
v150 <- phi(v144, v154) alive T{_ObjectBoxBindings?}
}
PushArgument(v148)
v75 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v75)
PushArgument(v64)
PushArgument(v71)
v127 <- CheckNull:176(v71, NoSuchMethodError) T{*}
v77 <- StaticCall:178( get:ptr<0> v71, result_type = T{Pointer?}) T{Pointer?}
PushArgument(v77)
PushArgument(v127 T{*})
CheckNull:180(v127 T{*}, NoSuchMethodError) T{*}
v79 <- StaticCall:182( get:length<0> v127 T{*}, result_type = T{int?}) T{int?}
PushArgument(v79)
Branch if StrictCompare:26(===, v25, v25) goto (32, 33)
B32[target try_idx 0]:30
goto:14 B38
B33[target try_idx 0]:32
Branch if StrictCompare:36(===, v216, v25) goto (34, 35)
B34[target try_idx 0]:40
goto:18 B38
B35[target try_idx 0]:42
Branch if StrictCompare:46(===, v216, v25) goto (36, 37)
B36[target try_idx 0]:50
goto:22 B38
B37[target try_idx 0]:52
goto:56 B38
B38[join try_idx 0]:185 pred(B32, B34, B36, B37) {
v178 <- phi(v112, v22, v43, v0) alive T{}
}
PushArgument(v178 T{_Smi?})
v83 <- InstanceCall:186( obx_box_put<0>, v148, v75, v64, v77, v79, v178 T{_Smi?} IC[0: ]) T{*?}
PushArgument(v83)
StaticCall:188( checkObx<0> v83)
goto:192 B23
B23[join]:190 pred(B38)
PushArgument(v68)
StaticCall:194( freeManaged<0> v68)
goto:196 B22
B22[join]:168 pred(B23)
DebugStepCheck:204()
Return:206(v64)
B11[target]:62
goto:64 B2
B6[target]:24
goto:28 B2
B4[target]:14
goto:26 B2
B2[join]:4 pred(B4, B6, B11)
TailCall(CallClosureNoSuchMethod(v16))
B24[target catch try_idx -1 catch_try_idx 0] {
v2 <- Parameter(0)
v3 <- Parameter(1)
v4 <- Parameter(2)
v5 <- Parameter(3)
v6 <- Parameter(4)
v7 <- Parameter(5)
v8 <- SpecialParameter(Exception) T{*}
v9 <- SpecialParameter(StackTrace) T{*?}
v10 <- Parameter(8)
v11 <- Parameter(9)
v12 <- Parameter(10)
v13 <- Parameter(11)
v14 <- Parameter(12) T{*?}
v15 <- Parameter(13)
}
PushArgument(v14)
StaticCall:200( freeManaged<0> v14)
PushArgument(v8)
PushArgument(v9)
ReThrow:202()
*** END CFG
*** BEGIN CFG
After TypePropagation
==== package:objectbox/src/box.dart_Box_put
B0[graph]:0 {
v0 <- Constant(#null) T{Null?}
v1 <- Constant(#<optimized out>) T{_OneByteString}
v22 <- Constant(#2) T{_Smi}
v25 <- Constant(#true) T{bool}
v40 <- Constant(#0) T{_Smi}
v43 <- Constant(#3) T{_Smi}
v48 <- Constant(#mode) T{_OneByteString}
v49 <- Constant(#Instance of '_PutMode') T{_PutMode}
v70 <- Constant(#TypeArguments: (H1fd9dd31) [Type: class 'OBX_bytes']) T{TypeArguments}
v103 <- Constant(#4) T{_Smi}
v112 <- Constant(#1) T{_Smi}
v156 <- Constant(#Field <::._cachedBindings@497227197>: static) T{Field}
v180 <- Constant(#Instance of '_PutMode') T{_PutMode}
v181 <- Constant(#Instance of '_PutMode') T{_PutMode}
v193 <- Constant(#ObjectBoxException: ) T{_OneByteString}
v216 <- Constant(#false) T{bool}
}
B1[function entry]:2 {
v16 <- SpecialParameter(ArgDescriptor) T{_ImmutableList}
}
v18 <- LoadField(v16 . ArgumentsDescriptor.positional_count {final}) T{_Smi}
v20 <- LoadField(v16 . ArgumentsDescriptor.count {final}) T{_Smi}
v23 <- RelationalOp:6(<=, v22, v18) T{bool}
Branch if StrictCompare:8(===, v23, v25) goto (3, 4)
B3[target]:12
v32 <- RelationalOp:16(<=, v18, v22) T{bool}
Branch if StrictCompare:18(===, v32, v25) goto (5, 6)
B5[target]:22
v34 <- BinarySmiOp:30(- [tr], v20, v22) T{_Smi}
v36 <- LoadIndexedUnsafe(fp[v34 + 12]) T{*?}
v38 <- LoadIndexedUnsafe(fp[v34 + 8]) T{T?}
v41 <- BinarySmiOp:32(* [tr], v22, v40) T{_Smi}
v44 <- BinarySmiOp:34(+ [tr], v43, v41) T{_Smi}
v46 <- LoadIndexed(v16, v44) T{*?}
Branch if StrictCompare:36(===, v46, v48) goto (7, 8)
B7[target]:40
v104 <- BinarySmiOp:46(+ [tr], v103, v41) T{_Smi}
v106 <- LoadIndexed(v16, v104) T{*?}
v108 <- BinarySmiOp:48(- [tr], v20, v106) T{_Smi}
v110 <- LoadIndexedUnsafe(fp[v108 + 4]) T{_PutMode?}
v113 <- BinarySmiOp:50(+ [tr], v40, v112) T{_Smi}
goto:52 B9
B8[target]:42
goto:54 B9
B9[join]:44 pred(B7, B8) {
v50 <- phi(v113, v40) alive T{_Smi}
}
Branch if StrictCompare:56(===, v34, v50) goto (10, 11)
B10[target]:60
goto:68 B12
B12[join]:66 pred(B10)
CheckStackOverflow:70(stack=0, loop=0)
DebugStepCheck:72()
PushArgument(v36)
PushArgument(v38)
v52 <- InstanceCall:74( _entityReader@494374530<0>, v36, v38 IC[0: ] using unchecked entrypoint) T{*?}
v115 <- Redefinition(v36 ^ T{*}) T{*}
PushArgument(v52)
v54 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v117 <- CheckNull:78(v54, NoSuchMethodError) T{ModelEntity}
v56 <- LoadField(v117 T{ModelEntity} . idProperty) T{ModelProperty?}
v119 <- CheckNull:82(v56, NoSuchMethodError) T{ModelProperty}
v58 <- LoadField(v119 T{ModelProperty} . name) T{String?}
PushArgument(v58)
v60 <- InstanceCall:86( []<0>, v52, v58 IC[0: ]) T{*?}
v121 <- Redefinition(v52 ^ T{*}) T{*}
AssertAssignable:88(v60, int, '', instantiator_type_args(v0), function_type_args(v0)) T{int?}
Branch if StrictCompare:90(===, v60 T{int?}, v0, with number check) goto (15, 13)
B15[target]:106
goto:108 B14
B13[target]:102
v123 <- Redefinition(v60 T{int?} ^ T{int}) T{int}
v62 <- CheckedSmiComparison:94(==, v123, v40) T{bool}
AssertBoolean:96(v62)
Branch if StrictCompare:98(===, v62, v25) goto (16, 19)
B16[target]:110
goto:112 B14
B14[join]:104 pred(B15, B16)
v197 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v197, v0) goto (44, 45)
B44[target]:18
v201 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v201)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v201)
StoreStaticField(_cachedBindings@497227197, v201)
goto:26 B46
B45[target]:22
v203 <- Redefinition(v197 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B46
B46[join]:24 pred(B44, B45) {
v199 <- phi(v201, v203) alive T{_ObjectBoxBindings}
}
PushArgument(v199)
v87 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v87)
PushArgument(v40)
v89 <- InstanceCall:118( obx_box_id_for_put<0>, v199, v87, v40 IC[0: ]) T{*?}
v91 <- CheckedSmiComparison:120(==, v89, v40) T{bool}
AssertBoolean:122(v91)
Branch if StrictCompare:124(===, v91, v25) goto (17, 18)
B17[target]:128
v99 <- AllocateObject(ObjectBoxException) T{ObjectBoxException}
v101 <- StaticCall:130( lastObxErrorString<0> ) T{String?}
PushArgument(v193)
PushArgument(v101 T{String?})
v191 <- StaticCall:12( +<0> v193, v101 T{String?}, using unchecked entrypoint, result_type = T{??}) T{String?}
StoreInstanceField(v99 . message = v191)
StoreInstanceField(v99 . msg = v101 T{String?})
PushArgument(v99)
Throw:134()
B18[target]:136
PushArgument(v121 T{*})
v93 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v133 <- CheckNull:140(v93, NoSuchMethodError) T{ModelEntity}
v95 <- LoadField(v133 T{ModelEntity} . idProperty) T{ModelProperty?}
v135 <- CheckNull:144(v95, NoSuchMethodError) T{ModelProperty}
v97 <- LoadField(v135 T{ModelProperty} . name) T{String?}
PushArgument(v97)
PushArgument(v89)
InstanceCall:148( []=<0>, v121 T{*}, v97, v89 IC[0: ])
goto:154 B20
B19[target]:150
goto:156 B20
B20[join]:152 pred(B18, B19) {
v64 <- phi(v89, v123) alive T{*?}
}
v66 <- LoadField(v115 . _fbManager@494374530) T{OBXFlatbuffersManager?}
PushArgument(v66)
PushArgument(v121 T{*})
v125 <- CheckNull:160(v66, NoSuchMethodError) T{OBXFlatbuffersManager}
v68 <- StaticCall:162( marshal<0> v66, v121 T{*}, using unchecked entrypoint, result_type = T{Pointer?}) T{Pointer?}
goto:166 B21
B21[join try_idx 0]:164 pred(B20)
PushArgument(v70)
PushArgument(v68)
v71 <- StaticCall:170( StructPointer|get#ref<1> v70, v68) T{*?}
v144 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v144, v0) goto (27, 28)
B27[target try_idx 0]:18
v152 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v152)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v152)
StoreStaticField(_cachedBindings@497227197, v152)
goto:26 B29
B28[target try_idx 0]:22
v154 <- Redefinition(v144 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B29
B29[join try_idx 0]:24 pred(B27, B28) {
v146 <- phi(v0, v0) alive T{Null?}
v148 <- phi(v152, v154) alive T{_ObjectBoxBindings}
v150 <- phi(v144, v154) alive T{_ObjectBoxBindings?}
}
PushArgument(v148)
v75 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v75)
PushArgument(v64)
PushArgument(v71)
v127 <- CheckNull:176(v71, NoSuchMethodError) T{*}
v77 <- StaticCall:178( get:ptr<0> v71, result_type = T{Pointer?}) T{Pointer?}
PushArgument(v77)
PushArgument(v127 T{*})
CheckNull:180(v127 T{*}, NoSuchMethodError) T{*}
v79 <- StaticCall:182( get:length<0> v127 T{*}, result_type = T{int?}) T{int?}
PushArgument(v79)
Branch if StrictCompare:26(===, v25, v25) goto (32, 33)
B32[target try_idx 0]:30
goto:14 B38
B33[target try_idx 0]:32
Branch if StrictCompare:36(===, v216, v25) goto (34, 35)
B34[target try_idx 0]:40
goto:18 B38
B35[target try_idx 0]:42
Branch if StrictCompare:46(===, v216, v25) goto (36, 37)
B36[target try_idx 0]:50
goto:22 B38
B37[target try_idx 0]:52
goto:56 B38
B38[join try_idx 0]:185 pred(B32, B34, B36, B37) {
v178 <- phi(v112, v22, v43, v0) alive T{_Smi?}
}
PushArgument(v178 T{_Smi?})
v83 <- InstanceCall:186( obx_box_put<0>, v148, v75, v64, v77, v79, v178 T{_Smi?} IC[0: ]) T{*?}
PushArgument(v83)
StaticCall:188( checkObx<0> v83)
goto:192 B23
B23[join]:190 pred(B38)
PushArgument(v68)
StaticCall:194( freeManaged<0> v68)
goto:196 B22
B22[join]:168 pred(B23)
DebugStepCheck:204()
Return:206(v64)
B11[target]:62
goto:64 B2
B6[target]:24
goto:28 B2
B4[target]:14
goto:26 B2
B2[join]:4 pred(B4, B6, B11)
TailCall(CallClosureNoSuchMethod(v16))
B24[target catch try_idx -1 catch_try_idx 0] {
v2 <- Parameter(0)
v3 <- Parameter(1)
v4 <- Parameter(2)
v5 <- Parameter(3)
v6 <- Parameter(4)
v7 <- Parameter(5)
v8 <- SpecialParameter(Exception) T{*}
v9 <- SpecialParameter(StackTrace) T{*?}
v10 <- Parameter(8)
v11 <- Parameter(9)
v12 <- Parameter(10)
v13 <- Parameter(11)
v14 <- Parameter(12) T{*?}
v15 <- Parameter(13)
}
PushArgument(v14)
StaticCall:200( freeManaged<0> v14)
PushArgument(v8)
PushArgument(v9)
ReThrow:202()
*** END CFG
*** BEGIN CFG
After ApplyClassIds
==== package:objectbox/src/box.dart_Box_put
B0[graph]:0 {
v0 <- Constant(#null) T{Null?}
v1 <- Constant(#<optimized out>) T{_OneByteString}
v22 <- Constant(#2) T{_Smi}
v25 <- Constant(#true) T{bool}
v40 <- Constant(#0) T{_Smi}
v43 <- Constant(#3) T{_Smi}
v48 <- Constant(#mode) T{_OneByteString}
v49 <- Constant(#Instance of '_PutMode') T{_PutMode}
v70 <- Constant(#TypeArguments: (H1fd9dd31) [Type: class 'OBX_bytes']) T{TypeArguments}
v103 <- Constant(#4) T{_Smi}
v112 <- Constant(#1) T{_Smi}
v156 <- Constant(#Field <::._cachedBindings@497227197>: static) T{Field}
v180 <- Constant(#Instance of '_PutMode') T{_PutMode}
v181 <- Constant(#Instance of '_PutMode') T{_PutMode}
v193 <- Constant(#ObjectBoxException: ) T{_OneByteString}
v216 <- Constant(#false) T{bool}
}
B1[function entry]:2 {
v16 <- SpecialParameter(ArgDescriptor) T{_ImmutableList}
}
v18 <- LoadField(v16 . ArgumentsDescriptor.positional_count {final}) T{_Smi}
v20 <- LoadField(v16 . ArgumentsDescriptor.count {final}) T{_Smi}
v23 <- RelationalOp:6(<=, v22, v18) T{bool}
Branch if StrictCompare:8(===, v23, v25) goto (3, 4)
B3[target]:12
v32 <- RelationalOp:16(<=, v18, v22) T{bool}
Branch if StrictCompare:18(===, v32, v25) goto (5, 6)
B5[target]:22
v34 <- BinarySmiOp:30(- [tr], v20, v22) T{_Smi}
v36 <- LoadIndexedUnsafe(fp[v34 + 12]) T{*?}
v38 <- LoadIndexedUnsafe(fp[v34 + 8]) T{T?}
v41 <- BinarySmiOp:32(* [tr], v22, v40) T{_Smi}
v44 <- BinarySmiOp:34(+ [tr], v43, v41) T{_Smi}
v46 <- LoadIndexed(v16, v44) T{*?}
Branch if StrictCompare:36(===, v46, v48) goto (7, 8)
B7[target]:40
v104 <- BinarySmiOp:46(+ [tr], v103, v41) T{_Smi}
v106 <- LoadIndexed(v16, v104) T{*?}
v108 <- BinarySmiOp:48(- [tr], v20, v106) T{_Smi}
v110 <- LoadIndexedUnsafe(fp[v108 + 4]) T{_PutMode?}
v113 <- BinarySmiOp:50(+ [tr], v40, v112) T{_Smi}
goto:52 B9
B8[target]:42
goto:54 B9
B9[join]:44 pred(B7, B8) {
v50 <- phi(v113, v40) alive T{_Smi}
}
Branch if StrictCompare:56(===, v34, v50) goto (10, 11)
B10[target]:60
goto:68 B12
B12[join]:66 pred(B10)
CheckStackOverflow:70(stack=0, loop=0)
DebugStepCheck:72()
PushArgument(v36)
PushArgument(v38)
v52 <- InstanceCall:74( _entityReader@494374530<0>, v36, v38 IC[0: ] using unchecked entrypoint) T{*?}
v115 <- Redefinition(v36 ^ T{*}) T{*}
PushArgument(v52)
v54 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v117 <- CheckNull:78(v54, NoSuchMethodError) T{ModelEntity}
v56 <- LoadField(v117 T{ModelEntity} . idProperty) T{ModelProperty?}
v119 <- CheckNull:82(v56, NoSuchMethodError) T{ModelProperty}
v58 <- LoadField(v119 T{ModelProperty} . name) T{String?}
PushArgument(v58)
v60 <- InstanceCall:86( []<0>, v52, v58 IC[0: ]) T{*?}
v121 <- Redefinition(v52 ^ T{*}) T{*}
AssertAssignable:88(v60, int, '', instantiator_type_args(v0), function_type_args(v0)) T{int?}
Branch if StrictCompare:90(===, v60 T{int?}, v0, with number check) goto (15, 13)
B15[target]:106
goto:108 B14
B13[target]:102
v123 <- Redefinition(v60 T{int?} ^ T{int}) T{int}
v62 <- CheckedSmiComparison:94(==, v123, v40) T{bool}
AssertBoolean:96(v62)
Branch if StrictCompare:98(===, v62, v25) goto (16, 19)
B16[target]:110
goto:112 B14
B14[join]:104 pred(B15, B16)
v197 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v197, v0) goto (44, 45)
B44[target]:18
v201 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v201)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v201)
StoreStaticField(_cachedBindings@497227197, v201)
goto:26 B46
B45[target]:22
v203 <- Redefinition(v197 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B46
B46[join]:24 pred(B44, B45) {
v199 <- phi(v201, v203) alive T{_ObjectBoxBindings}
}
PushArgument(v199)
v87 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v87)
PushArgument(v40)
v89 <- InstanceCall:118( obx_box_id_for_put<0>, v199, v87, v40 IC[0: ]) T{*?}
v91 <- CheckedSmiComparison:120(==, v89, v40) T{bool}
AssertBoolean:122(v91)
Branch if StrictCompare:124(===, v91, v25) goto (17, 18)
B17[target]:128
v99 <- AllocateObject(ObjectBoxException) T{ObjectBoxException}
v101 <- StaticCall:130( lastObxErrorString<0> ) T{String?}
PushArgument(v193)
PushArgument(v101 T{String?})
v191 <- StaticCall:12( +<0> v193, v101 T{String?}, using unchecked entrypoint, result_type = T{??}) T{String?}
StoreInstanceField(v99 . message = v191)
StoreInstanceField(v99 . msg = v101 T{String?})
PushArgument(v99)
Throw:134()
B18[target]:136
PushArgument(v121 T{*})
v93 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v133 <- CheckNull:140(v93, NoSuchMethodError) T{ModelEntity}
v95 <- LoadField(v133 T{ModelEntity} . idProperty) T{ModelProperty?}
v135 <- CheckNull:144(v95, NoSuchMethodError) T{ModelProperty}
v97 <- LoadField(v135 T{ModelProperty} . name) T{String?}
PushArgument(v97)
PushArgument(v89)
InstanceCall:148( []=<0>, v121 T{*}, v97, v89 IC[0: ])
goto:154 B20
B19[target]:150
goto:156 B20
B20[join]:152 pred(B18, B19) {
v64 <- phi(v89, v123) alive T{*?}
}
v66 <- LoadField(v115 . _fbManager@494374530) T{OBXFlatbuffersManager?}
PushArgument(v66)
PushArgument(v121 T{*})
v125 <- CheckNull:160(v66, NoSuchMethodError) T{OBXFlatbuffersManager}
v68 <- StaticCall:162( marshal<0> v66, v121 T{*}, using unchecked entrypoint, result_type = T{Pointer?}) T{Pointer?}
goto:166 B21
B21[join try_idx 0]:164 pred(B20)
PushArgument(v70)
PushArgument(v68)
v71 <- StaticCall:170( StructPointer|get#ref<1> v70, v68) T{*?}
v144 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v144, v0) goto (27, 28)
B27[target try_idx 0]:18
v152 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v152)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v152)
StoreStaticField(_cachedBindings@497227197, v152)
goto:26 B29
B28[target try_idx 0]:22
v154 <- Redefinition(v144 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B29
B29[join try_idx 0]:24 pred(B27, B28) {
v146 <- phi(v0, v0) alive T{Null?}
v148 <- phi(v152, v154) alive T{_ObjectBoxBindings}
v150 <- phi(v144, v154) alive T{_ObjectBoxBindings?}
}
PushArgument(v148)
v75 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v75)
PushArgument(v64)
PushArgument(v71)
v127 <- CheckNull:176(v71, NoSuchMethodError) T{*}
v77 <- StaticCall:178( get:ptr<0> v71, result_type = T{Pointer?}) T{Pointer?}
PushArgument(v77)
PushArgument(v127 T{*})
CheckNull:180(v127 T{*}, NoSuchMethodError) T{*}
v79 <- StaticCall:182( get:length<0> v127 T{*}, result_type = T{int?}) T{int?}
PushArgument(v79)
Branch if StrictCompare:26(===, v25, v25) goto (32, 33)
B32[target try_idx 0]:30
goto:14 B38
B33[target try_idx 0]:32
Branch if StrictCompare:36(===, v216, v25) goto (34, 35)
B34[target try_idx 0]:40
goto:18 B38
B35[target try_idx 0]:42
Branch if StrictCompare:46(===, v216, v25) goto (36, 37)
B36[target try_idx 0]:50
goto:22 B38
B37[target try_idx 0]:52
goto:56 B38
B38[join try_idx 0]:185 pred(B32, B34, B36, B37) {
v178 <- phi(v112, v22, v43, v0) alive T{_Smi?}
}
PushArgument(v178 T{_Smi?})
v83 <- InstanceCall:186( obx_box_put<0>, v148, v75, v64, v77, v79, v178 T{_Smi?} IC[0: ]) T{*?}
PushArgument(v83)
StaticCall:188( checkObx<0> v83)
goto:192 B23
B23[join]:190 pred(B38)
PushArgument(v68)
StaticCall:194( freeManaged<0> v68)
goto:196 B22
B22[join]:168 pred(B23)
DebugStepCheck:204()
Return:206(v64)
B11[target]:62
goto:64 B2
B6[target]:24
goto:28 B2
B4[target]:14
goto:26 B2
B2[join]:4 pred(B4, B6, B11)
TailCall(CallClosureNoSuchMethod(v16))
B24[target catch try_idx -1 catch_try_idx 0] {
v2 <- Parameter(0)
v3 <- Parameter(1)
v4 <- Parameter(2)
v5 <- Parameter(3)
v6 <- Parameter(4)
v7 <- Parameter(5)
v8 <- SpecialParameter(Exception) T{*}
v9 <- SpecialParameter(StackTrace) T{*?}
v10 <- Parameter(8)
v11 <- Parameter(9)
v12 <- Parameter(10)
v13 <- Parameter(11)
v14 <- Parameter(12) T{*?}
v15 <- Parameter(13)
}
PushArgument(v14)
StaticCall:200( freeManaged<0> v14)
PushArgument(v8)
PushArgument(v9)
ReThrow:202()
*** END CFG
*** BEGIN CFG
After TypePropagation
==== package:objectbox/src/box.dart_Box_put
B0[graph]:0 {
v0 <- Constant(#null) T{Null?}
v1 <- Constant(#<optimized out>) T{_OneByteString}
v22 <- Constant(#2) T{_Smi}
v25 <- Constant(#true) T{bool}
v40 <- Constant(#0) T{_Smi}
v43 <- Constant(#3) T{_Smi}
v48 <- Constant(#mode) T{_OneByteString}
v49 <- Constant(#Instance of '_PutMode') T{_PutMode}
v70 <- Constant(#TypeArguments: (H1fd9dd31) [Type: class 'OBX_bytes']) T{TypeArguments}
v103 <- Constant(#4) T{_Smi}
v112 <- Constant(#1) T{_Smi}
v156 <- Constant(#Field <::._cachedBindings@497227197>: static) T{Field}
v180 <- Constant(#Instance of '_PutMode') T{_PutMode}
v181 <- Constant(#Instance of '_PutMode') T{_PutMode}
v193 <- Constant(#ObjectBoxException: ) T{_OneByteString}
v216 <- Constant(#false) T{bool}
}
B1[function entry]:2 {
v16 <- SpecialParameter(ArgDescriptor) T{_ImmutableList}
}
v18 <- LoadField(v16 . ArgumentsDescriptor.positional_count {final}) T{_Smi}
v20 <- LoadField(v16 . ArgumentsDescriptor.count {final}) T{_Smi}
v23 <- RelationalOp:6(<=, v22, v18) T{bool}
Branch if StrictCompare:8(===, v23, v25) goto (3, 4)
B3[target]:12
v32 <- RelationalOp:16(<=, v18, v22) T{bool}
Branch if StrictCompare:18(===, v32, v25) goto (5, 6)
B5[target]:22
v34 <- BinarySmiOp:30(- [tr], v20, v22) T{_Smi}
v36 <- LoadIndexedUnsafe(fp[v34 + 12]) T{*?}
v38 <- LoadIndexedUnsafe(fp[v34 + 8]) T{T?}
v41 <- BinarySmiOp:32(* [tr], v22, v40) T{_Smi}
v44 <- BinarySmiOp:34(+ [tr], v43, v41) T{_Smi}
v46 <- LoadIndexed(v16, v44) T{*?}
Branch if StrictCompare:36(===, v46, v48) goto (7, 8)
B7[target]:40
v104 <- BinarySmiOp:46(+ [tr], v103, v41) T{_Smi}
v106 <- LoadIndexed(v16, v104) T{*?}
v108 <- BinarySmiOp:48(- [tr], v20, v106) T{_Smi}
v110 <- LoadIndexedUnsafe(fp[v108 + 4]) T{_PutMode?}
v113 <- BinarySmiOp:50(+ [tr], v40, v112) T{_Smi}
goto:52 B9
B8[target]:42
goto:54 B9
B9[join]:44 pred(B7, B8) {
v50 <- phi(v113, v40) alive T{_Smi}
}
Branch if StrictCompare:56(===, v34, v50) goto (10, 11)
B10[target]:60
goto:68 B12
B12[join]:66 pred(B10)
CheckStackOverflow:70(stack=0, loop=0)
DebugStepCheck:72()
PushArgument(v36)
PushArgument(v38)
v52 <- InstanceCall:74( _entityReader@494374530<0>, v36, v38 IC[0: ] using unchecked entrypoint) T{*?}
v115 <- Redefinition(v36 ^ T{*}) T{*}
PushArgument(v52)
v54 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v117 <- CheckNull:78(v54, NoSuchMethodError) T{ModelEntity}
v56 <- LoadField(v117 T{ModelEntity} . idProperty) T{ModelProperty?}
v119 <- CheckNull:82(v56, NoSuchMethodError) T{ModelProperty}
v58 <- LoadField(v119 T{ModelProperty} . name) T{String?}
PushArgument(v58)
v60 <- InstanceCall:86( []<0>, v52, v58 IC[0: ]) T{*?}
v121 <- Redefinition(v52 ^ T{*}) T{*}
AssertAssignable:88(v60, int, '', instantiator_type_args(v0), function_type_args(v0)) T{int?}
Branch if StrictCompare:90(===, v60 T{int?}, v0, with number check) goto (15, 13)
B15[target]:106
goto:108 B14
B13[target]:102
v123 <- Redefinition(v60 T{int?} ^ T{int}) T{int}
v62 <- CheckedSmiComparison:94(==, v123, v40) T{bool}
AssertBoolean:96(v62)
Branch if StrictCompare:98(===, v62, v25) goto (16, 19)
B16[target]:110
goto:112 B14
B14[join]:104 pred(B15, B16)
v197 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v197, v0) goto (44, 45)
B44[target]:18
v201 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v201)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v201)
StoreStaticField(_cachedBindings@497227197, v201)
goto:26 B46
B45[target]:22
v203 <- Redefinition(v197 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B46
B46[join]:24 pred(B44, B45) {
v199 <- phi(v201, v203) alive T{_ObjectBoxBindings}
}
PushArgument(v199)
v87 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v87)
PushArgument(v40)
v89 <- InstanceCall:118( obx_box_id_for_put<0>, v199, v87, v40 IC[0: ]) T{*?}
v91 <- CheckedSmiComparison:120(==, v89, v40) T{bool}
AssertBoolean:122(v91)
Branch if StrictCompare:124(===, v91, v25) goto (17, 18)
B17[target]:128
v99 <- AllocateObject(ObjectBoxException) T{ObjectBoxException}
v101 <- StaticCall:130( lastObxErrorString<0> ) T{String?}
PushArgument(v193)
PushArgument(v101 T{String?})
v191 <- StaticCall:12( +<0> v193, v101 T{String?}, using unchecked entrypoint, result_type = T{??}) T{String?}
StoreInstanceField(v99 . message = v191)
StoreInstanceField(v99 . msg = v101 T{String?})
PushArgument(v99)
Throw:134()
B18[target]:136
PushArgument(v121 T{*})
v93 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v133 <- CheckNull:140(v93, NoSuchMethodError) T{ModelEntity}
v95 <- LoadField(v133 T{ModelEntity} . idProperty) T{ModelProperty?}
v135 <- CheckNull:144(v95, NoSuchMethodError) T{ModelProperty}
v97 <- LoadField(v135 T{ModelProperty} . name) T{String?}
PushArgument(v97)
PushArgument(v89)
InstanceCall:148( []=<0>, v121 T{*}, v97, v89 IC[0: ])
goto:154 B20
B19[target]:150
goto:156 B20
B20[join]:152 pred(B18, B19) {
v64 <- phi(v89, v123) alive T{*?}
}
v66 <- LoadField(v115 . _fbManager@494374530) T{OBXFlatbuffersManager?}
PushArgument(v66)
PushArgument(v121 T{*})
v125 <- CheckNull:160(v66, NoSuchMethodError) T{OBXFlatbuffersManager}
v68 <- StaticCall:162( marshal<0> v66, v121 T{*}, using unchecked entrypoint, result_type = T{Pointer?}) T{Pointer?}
goto:166 B21
B21[join try_idx 0]:164 pred(B20)
PushArgument(v70)
PushArgument(v68)
v71 <- StaticCall:170( StructPointer|get#ref<1> v70, v68) T{*?}
v144 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v144, v0) goto (27, 28)
B27[target try_idx 0]:18
v152 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v152)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v152)
StoreStaticField(_cachedBindings@497227197, v152)
goto:26 B29
B28[target try_idx 0]:22
v154 <- Redefinition(v144 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B29
B29[join try_idx 0]:24 pred(B27, B28) {
v146 <- phi(v0, v0) alive T{Null?}
v148 <- phi(v152, v154) alive T{_ObjectBoxBindings}
v150 <- phi(v144, v154) alive T{_ObjectBoxBindings?}
}
PushArgument(v148)
v75 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v75)
PushArgument(v64)
PushArgument(v71)
v127 <- CheckNull:176(v71, NoSuchMethodError) T{*}
v77 <- StaticCall:178( get:ptr<0> v71, result_type = T{Pointer?}) T{Pointer?}
PushArgument(v77)
PushArgument(v127 T{*})
CheckNull:180(v127 T{*}, NoSuchMethodError) T{*}
v79 <- StaticCall:182( get:length<0> v127 T{*}, result_type = T{int?}) T{int?}
PushArgument(v79)
Branch if StrictCompare:26(===, v25, v25) goto (32, 33)
B32[target try_idx 0]:30
goto:14 B38
B33[target try_idx 0]:32
Branch if StrictCompare:36(===, v216, v25) goto (34, 35)
B34[target try_idx 0]:40
goto:18 B38
B35[target try_idx 0]:42
Branch if StrictCompare:46(===, v216, v25) goto (36, 37)
B36[target try_idx 0]:50
goto:22 B38
B37[target try_idx 0]:52
goto:56 B38
B38[join try_idx 0]:185 pred(B32, B34, B36, B37) {
v178 <- phi(v112, v22, v43, v0) alive T{_Smi?}
}
PushArgument(v178 T{_Smi?})
v83 <- InstanceCall:186( obx_box_put<0>, v148, v75, v64, v77, v79, v178 T{_Smi?} IC[0: ]) T{*?}
PushArgument(v83)
StaticCall:188( checkObx<0> v83)
goto:192 B23
B23[join]:190 pred(B38)
PushArgument(v68)
StaticCall:194( freeManaged<0> v68)
goto:196 B22
B22[join]:168 pred(B23)
DebugStepCheck:204()
Return:206(v64)
B11[target]:62
goto:64 B2
B6[target]:24
goto:28 B2
B4[target]:14
goto:26 B2
B2[join]:4 pred(B4, B6, B11)
TailCall(CallClosureNoSuchMethod(v16))
B24[target catch try_idx -1 catch_try_idx 0] {
v2 <- Parameter(0)
v3 <- Parameter(1)
v4 <- Parameter(2)
v5 <- Parameter(3)
v6 <- Parameter(4)
v7 <- Parameter(5)
v8 <- SpecialParameter(Exception) T{*}
v9 <- SpecialParameter(StackTrace) T{*?}
v10 <- Parameter(8)
v11 <- Parameter(9)
v12 <- Parameter(10)
v13 <- Parameter(11)
v14 <- Parameter(12) T{*?}
v15 <- Parameter(13)
}
PushArgument(v14)
StaticCall:200( freeManaged<0> v14)
PushArgument(v8)
PushArgument(v9)
ReThrow:202()
*** END CFG
*** BEGIN CFG
After ApplyICData
==== package:objectbox/src/box.dart_Box_put
B0[graph]:0 {
v0 <- Constant(#null) T{Null?}
v1 <- Constant(#<optimized out>) T{_OneByteString}
v22 <- Constant(#2) T{_Smi}
v25 <- Constant(#true) T{bool}
v40 <- Constant(#0) T{_Smi}
v43 <- Constant(#3) T{_Smi}
v48 <- Constant(#mode) T{_OneByteString}
v49 <- Constant(#Instance of '_PutMode') T{_PutMode}
v70 <- Constant(#TypeArguments: (H1fd9dd31) [Type: class 'OBX_bytes']) T{TypeArguments}
v103 <- Constant(#4) T{_Smi}
v112 <- Constant(#1) T{_Smi}
v156 <- Constant(#Field <::._cachedBindings@497227197>: static) T{Field}
v180 <- Constant(#Instance of '_PutMode') T{_PutMode}
v181 <- Constant(#Instance of '_PutMode') T{_PutMode}
v193 <- Constant(#ObjectBoxException: ) T{_OneByteString}
v216 <- Constant(#false) T{bool}
}
B1[function entry]:2 {
v16 <- SpecialParameter(ArgDescriptor) T{_ImmutableList}
}
v18 <- LoadField(v16 . ArgumentsDescriptor.positional_count {final}) T{_Smi}
v20 <- LoadField(v16 . ArgumentsDescriptor.count {final}) T{_Smi}
v23 <- RelationalOp:6(<=, v22, v18) T{bool}
Branch if StrictCompare:8(===, v23, v25) goto (3, 4)
B3[target]:12
v32 <- RelationalOp:16(<=, v18, v22) T{bool}
Branch if StrictCompare:18(===, v32, v25) goto (5, 6)
B5[target]:22
v34 <- BinarySmiOp:30(- [tr], v20, v22) T{_Smi}
v36 <- LoadIndexedUnsafe(fp[v34 + 12]) T{*?}
v38 <- LoadIndexedUnsafe(fp[v34 + 8]) T{T?}
v41 <- BinarySmiOp:32(* [tr], v22, v40) T{_Smi}
v44 <- BinarySmiOp:34(+ [tr], v43, v41) T{_Smi}
v46 <- LoadIndexed(v16, v44) T{*?}
Branch if StrictCompare:36(===, v46, v48) goto (7, 8)
B7[target]:40
v104 <- BinarySmiOp:46(+ [tr], v103, v41) T{_Smi}
v106 <- LoadIndexed(v16, v104) T{*?}
v108 <- BinarySmiOp:48(- [tr], v20, v106) T{_Smi}
v110 <- LoadIndexedUnsafe(fp[v108 + 4]) T{_PutMode?}
v113 <- BinarySmiOp:50(+ [tr], v40, v112) T{_Smi}
goto:52 B9
B8[target]:42
goto:54 B9
B9[join]:44 pred(B7, B8) {
v50 <- phi(v113, v40) alive T{_Smi}
}
Branch if StrictCompare:56(===, v34, v50) goto (10, 11)
B10[target]:60
goto:68 B12
B12[join]:66 pred(B10)
CheckStackOverflow:70(stack=0, loop=0)
DebugStepCheck:72()
PushArgument(v36)
PushArgument(v38)
v52 <- InstanceCall:74( _entityReader@494374530<0>, v36, v38 IC[0: ] using unchecked entrypoint) T{*?}
v115 <- Redefinition(v36 ^ T{*}) T{*}
PushArgument(v52)
v54 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v117 <- CheckNull:78(v54, NoSuchMethodError) T{ModelEntity}
v56 <- LoadField(v117 T{ModelEntity} . idProperty) T{ModelProperty?}
v119 <- CheckNull:82(v56, NoSuchMethodError) T{ModelProperty}
v58 <- LoadField(v119 T{ModelProperty} . name) T{String?}
PushArgument(v58)
v60 <- InstanceCall:86( []<0>, v52, v58 IC[0: ]) T{*?}
v121 <- Redefinition(v52 ^ T{*}) T{*}
AssertAssignable:88(v60, int, '', instantiator_type_args(v0), function_type_args(v0)) T{int?}
Branch if StrictCompare:90(===, v60 T{int?}, v0, with number check) goto (15, 13)
B15[target]:106
goto:108 B14
B13[target]:102
v123 <- Redefinition(v60 T{int?} ^ T{int}) T{int}
v62 <- CheckedSmiComparison:94(==, v123, v40) T{bool}
AssertBoolean:96(v62)
Branch if StrictCompare:98(===, v62, v25) goto (16, 19)
B16[target]:110
goto:112 B14
B14[join]:104 pred(B15, B16)
v197 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v197, v0) goto (44, 45)
B44[target]:18
v201 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v201)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v201)
StoreStaticField(_cachedBindings@497227197, v201)
goto:26 B46
B45[target]:22
v203 <- Redefinition(v197 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B46
B46[join]:24 pred(B44, B45) {
v199 <- phi(v201, v203) alive T{_ObjectBoxBindings}
}
v87 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v199)
v239 <- StaticCall:218( get:obx_box_id_for_put<0> v199) T{(Pointer<Void>, int) => int?}
PushArgument(v239) T{*?}
PushArgument(v87) T{*?}
PushArgument(v40) T{*?}
v89 <- InstanceCall:220( call<0>, v239, v87, v40 IC[0: ]) T{*?}
v91 <- CheckedSmiComparison:120(==, v89 T{*?}, v40) T{bool}
AssertBoolean:122(v91)
Branch if StrictCompare:124(===, v91, v25) goto (17, 18)
B17[target]:128
v99 <- AllocateObject(ObjectBoxException) T{ObjectBoxException}
v101 <- StaticCall:130( lastObxErrorString<0> ) T{String?}
PushArgument(v193)
PushArgument(v101 T{String?})
v191 <- StaticCall:12( +<0> v193, v101 T{String?}, using unchecked entrypoint, result_type = T{??}) T{String?}
StoreInstanceField(v99 . message = v191)
StoreInstanceField(v99 . msg = v101 T{String?})
PushArgument(v99)
Throw:134()
B18[target]:136
PushArgument(v121 T{*})
v93 <- LoadField(v115 . _modelEntity@494374530) T{ModelEntity?}
v133 <- CheckNull:140(v93, NoSuchMethodError) T{ModelEntity}
v95 <- LoadField(v133 T{ModelEntity} . idProperty) T{ModelProperty?}
v135 <- CheckNull:144(v95, NoSuchMethodError) T{ModelProperty}
v97 <- LoadField(v135 T{ModelProperty} . name) T{String?}
PushArgument(v97)
PushArgument(v89 T{*?})
InstanceCall:148( []=<0>, v121 T{*}, v97, v89 T{*?} IC[0: ])
goto:154 B20
B19[target]:150
goto:156 B20
B20[join]:152 pred(B18, B19) {
v64 <- phi(v89 T{*?}, v123) alive T{*?}
}
v66 <- LoadField(v115 . _fbManager@494374530) T{OBXFlatbuffersManager?}
PushArgument(v66)
PushArgument(v121 T{*})
v125 <- CheckNull:160(v66, NoSuchMethodError) T{OBXFlatbuffersManager}
v68 <- StaticCall:162( marshal<0> v66, v121 T{*}, using unchecked entrypoint, result_type = T{Pointer?}) T{Pointer?}
goto:166 B21
B21[join try_idx 0]:164 pred(B20)
PushArgument(v70)
PushArgument(v68)
v71 <- StaticCall:170( StructPointer|get#ref<1> v70, v68) T{*?}
v144 <- LoadStaticField(v156) T{_ObjectBoxBindings?}
Branch if StrictCompare:14(===, v144, v0) goto (27, 28)
B27[target try_idx 0]:18
v152 <- AllocateObject(_ObjectBoxBindings) T{_ObjectBoxBindings}
PushArgument(v152)
StaticCall:20( _ObjectBoxBindings@497227197.<0> v152)
StoreStaticField(_cachedBindings@497227197, v152)
goto:26 B29
B28[target try_idx 0]:22
v154 <- Redefinition(v144 ^ T{_ObjectBoxBindings}) T{_ObjectBoxBindings}
goto:28 B29
B29[join try_idx 0]:24 pred(B27, B28) {
v146 <- phi(v0, v0) alive T{Null?}
v148 <- phi(v152, v154) alive T{_ObjectBoxBindings}
v150 <- phi(v144, v154) alive T{_ObjectBoxBindings?}
}
v75 <- LoadField(v115 . _cBox@494374530) T{Pointer?}
PushArgument(v71)
v127 <- CheckNull:176(v71, NoSuchMethodError) T{*}
v77 <- StaticCall:178( get:ptr<0> v71, result_type = T{Pointer?}) T{Pointer?}
PushArgument(v127 T{*})
CheckNull:180(v127 T{*}, NoSuchMethodError) T{*}
v79 <- StaticCall:182( get:length<0> v127 T{*}, result_type = T{int?}) T{int?}
Branch if StrictCompare:26(===, v25, v25) goto (32, 33)
B32[target try_idx 0]:30
goto:14 B38
B33[target try_idx 0]:32
Branch if StrictCompare:36(===, v216, v25) goto (34, 35)
B34[target try_idx 0]:40
goto:18 B38
B35[target try_idx 0]:42
Branch if StrictCompare:46(===, v216, v25) goto (36, 37)
B36[target try_idx 0]:50
goto:22 B38
B37[target try_idx 0]:52
goto:56 B38
B38[join try_idx 0]:185 pred(B32, B34, B36, B37) {
v178 <- phi(v112, v22, v43, v0) alive T{_Smi?}
}
PushArgument(v148)
v242 <- StaticCall:222( get:obx_box_put<0> v148) T{(Pointer<Void>, int, Pointer<Uint8>, int, int) => int?}
PushArgument(v242) T{*?}
PushArgument(v75) T{*?}
PushArgument(v64) T{*?}
PushArgument(v77) T{*?}
PushArgument(v79) T{*?}
PushArgument(v178 T{_Smi?}) T{*?}
v83 <- InstanceCall:224( call<0>, v242, v75, v64, v77, v79, v178 T{_Smi?} IC[0: ]) T{*?}
PushArgument(v83 T{*?})
StaticCall:188( checkObx<0> v83 T{*?})
goto:192 B23
B23[join]:190 pred(B38)
PushArgument(v68)
StaticCall:194( freeManaged<0> v68)
goto:196 B22
B22[join]:168 pred(B23)
DebugStepCheck:204()
Return:206(v64)
B11[target]:62
goto:64 B2
B6[target]:24
goto:28 B2
B4[target]:14
goto:26 B2
B2[join]:4 pred(B4, B6, B11)
TailCall(CallClosureNoSuchMethod(v16))
B24[target catch try_idx -1 catch_try_idx 0] {
v2 <- Parameter(0)
v3 <- Parameter(1)
v4 <- Parameter(2)
v5 <- Parameter(3)
v6 <- Parameter(4)
v7 <- Parameter(5)
v8 <- SpecialParameter(Exception) T{*}
v9 <- SpecialParameter(StackTrace) T{*?}
v10 <- Parameter(8)
v11 <- Parameter(9)
v12 <- Parameter(10)
v13 <- Parameter(11)
v14 <- Parameter(12) T{*?}
v15 <- Parameter(13)
}
PushArgument(v14)
StaticCall:200( freeManaged<0> v14)
PushArgument(v8)
PushArgument(v9)
ReThrow:202()
*** END CFG
../../runtime/vm/compiler/backend/flow_graph_checker.cc: 368: error: expected: DefDominatesUse(def, instruction)
version=2.8.0-edge.4774141425f3e8999417b688962b29ae21277c10 (Fri Dec 20 10:14:10 2019 +0000) on "linux_simarm"
thread=159293, isolate=isolate(0x11ff0c0)
pc 0x00a8285c fp 0xffb95898 dart::Profiler::DumpStackTrace(void*)
pc 0x00fc7444 fp 0xffb958b8 Dart_DumpNativeStackTrace
pc 0x00843dbb fp 0xffb958e8 dart::Assert::Fail(char const*, ...)
pc 0x00bc4d2f fp 0xffb95928 dart::FlowGraphChecker::VisitDefUse(dart::Definition*, dart::Value*, dart::Value*, bool)
pc 0x00bc496b fp 0xffb95958 dart::FlowGraphChecker::VisitDefinition(dart::Definition*)
pc 0x00bc44ec fp 0xffb959b8 dart::FlowGraphChecker::VisitInstruction(dart::Instruction*)
pc 0x00bc40b3 fp 0xffb95a08 dart::FlowGraphChecker::VisitInstructions(dart::BlockEntryInstr*)
pc 0x00bc3b92 fp 0xffb95a68 dart::FlowGraphChecker::VisitBlocks()
pc 0x00bc55f0 fp 0xffb95a98 dart::FlowGraphChecker::Check(char const*)
pc 0x00ca5094 fp 0xffb95b08 dart::CompilerPass::Run(dart::CompilerPassState*) const
pc 0x00ca5497 fp 0xffb95b28 dart::CompilerPass::RunPipeline(dart::CompilerPass::PipelineMode, dart::CompilerPassState*)
pc 0x00b66f4c fp 0xffb95ea8 dart::PrecompileParsedFunctionHelper::Compile(dart::CompilationPipeline*)
pc 0x00b69381 fp 0xffb96038 /usr/local/google/home/dacoharkes/master/sdk/out/DebugAndroidARM/clang_x86/gen_snapshot+0x769381
pc 0x00b640ed fp 0xffb960a8 dart::Precompiler::CompileFunction(dart::Precompiler*, dart::Thread*, dart::Zone*, dart::Function const&)
pc 0x00b62a46 fp 0xffb960f8 dart::Precompiler::ProcessFunction(dart::Function const&)
pc 0x00b5e842 fp 0xffb96118 dart::Precompiler::Iterate()
pc 0x00b5b968 fp 0xffb96228 dart::Precompiler::DoCompileAll()
pc 0x00b5b263 fp 0xffb96478 dart::Precompiler::CompileAll()
pc 0x00fc530c fp 0xffb964f8 Dart_Precompile
pc 0x0081901b fp 0xffb96608 dart::bin::main(int, char**)
pc 0x00819f24 fp 0xffb96638 main
-- End of DumpStackTrace
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment