Last active
December 20, 2019 12:10
-
-
Save dcharkes/07b126a5df16b0740aa2b572ce392b73 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
*** 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