You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
[vm,corelib] Change static type of _Hash*Base._data to match runtime type
VM uses _List<dynamic> for _HashVMBase._data, _HashVMImmutableBase._data
and _uninitializedData at run time.
Core library declares _data as List<Object?> and sometimes sets
it to List<Object?>.
This discrepancy between runtime type and static type sometimes
causes performance regressions, because speculative exactness guard
checks if runtime type arguments are exactly the same as type
arguments of a static type, and deoptimization is triggered
if they don't match.
Since https://dart-review.googlesource.com/c/sdk/+/440064,
VM evaluates type arguments of _HashVMBase._data and
_HashVMImmutableBase._data as <dynamic> at compile time, so
exactness guard against _data fails more often, which considerably
affects performance in JIT mode.
This change aligns runtime and static types of _data, making
sure exactness guard against _data is always successful.
TEST=ci, golem
Change-Id: Ia842b57a372305001b5210ca59206992611c5fa7
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/440681
Reviewed-by: Ryan Macnak <[email protected]>
Commit-Queue: Alexander Markov <[email protected]>
0 commit comments