Files
sdk/runtime/vm
Martin Kustermann e2faac751e [vm/aot] Fully enable deduplication of instructions in bare mode
Currently the switchable calls require there to be a unique PC -> Code
-> Function mapping to re-construct the arguments descriptor which was
lost when transitioning from unlinked to monormophic.
=> This prevents instruction deuplication in bare mode for those
   functions, because the PC -> Function mapping is amgiguous (the
   frames don't have a Code object on the stack we can use)

This CL preserves the (name, args-descriptor) per switchable call site when we
go from unlinked to monomorphic state by remembering it in a map. When
transitioning out of monomorphic we can use this map to re-construct the
name and arguments descriptor (and delete the map entry).

Flutter gallery release size impact:

  * arm64: total -2.33 % (-3.62% RX)
  * arm:   total -1.72 % (-2.65% RX)

From local testing it seems like running flutter gallery in profile mode
and connecting via observatory the memory consumed by UnlinkedCall
instances seems minimal.

Change-Id: I55902e6f11c9941493c610ed18f26bc5fc3dcf59
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/121421
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
Reviewed-by: Ryan Macnak <rmacnak@google.com>
Commit-Queue: Martin Kustermann <kustermann@google.com>
2019-10-22 11:13:14 +00:00
..
2019-08-08 00:47:55 +00:00
2019-10-07 18:13:06 +00:00
2019-10-17 16:51:32 +00:00
2018-11-01 16:37:22 +00:00
2018-08-20 22:47:31 +00:00
2019-01-25 16:45:13 +00:00
2019-06-03 14:36:04 +00:00
2019-06-03 14:36:04 +00:00
2019-05-06 21:01:39 +00:00
2019-10-17 16:51:32 +00:00
2018-12-10 23:15:27 +00:00
2018-12-10 23:15:27 +00:00
2019-07-10 22:20:10 +00:00
2019-10-17 16:51:32 +00:00
2019-10-17 16:51:32 +00:00