Files
sdk/runtime/vm
Martin Kustermann cf8a6063f8 [VM] Improve AssertAssignable/InstanceOf by having a fast case for non-generic, instantiated types
When the type to test against is instantiated and has no type arguments
there is a high probability that we receive instances of that class or
subclasses at runtime.

This CL therefore extends the fast-path of AssertAssignable/InstanceOf
by checking whether the instance class id is within the cid ranges that
directly/indirectly implement/extend the type to test against.

Currently we have an almost depth-first preorder numbering of class ids
in AOT, but there are exceptions.  So each class can have a number of
cid-ranges as subclasses / classes which implement it's interface.

This seems to improve performance of dart-aot-v2
  * flutter stock build by 15+%
  * DeltaBlueClosures by 10+%

and reduces code size on
  * flutter gallery by -3%

Issue https://github.com/dart-lang/sdk/issues/31798

Change-Id: I07dd91589cc3fcd8c5952bdba339e2e2a459e08e
Reviewed-on: https://dart-review.googlesource.com/35620
Commit-Queue: Martin Kustermann <kustermann@google.com>
Reviewed-by: Régis Crelier <regis@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2018-01-25 07:13:42 +00:00
..
2017-11-23 00:07:56 +00:00
2018-01-10 01:37:49 +00:00
2017-12-15 01:38:42 +00:00
2017-12-15 01:38:42 +00:00
2017-12-06 22:45:31 +00:00
2017-10-30 22:02:20 +00:00
2017-11-23 00:07:56 +00:00
2017-11-23 00:07:56 +00:00
2017-11-23 00:07:56 +00:00
2017-10-25 21:57:08 +00:00
2017-10-25 21:57:08 +00:00
2017-10-25 21:57:08 +00:00
2017-10-30 22:02:20 +00:00