f955b82a92
This CL adds support for unboxing of return values of getters and therefore completes the work on unboxing support for normal members (closures are still missing). As with existing unboxing support for methods and setters, we utilize TFA information to proof a getter will always return non-nullable int/double. We then make such a getter return unboxed int/double. If there are dynamic calls to the getter a dyn:get:* forwarder will be created which performs boxing of the return value. Overall this reduces RX by eliminating BoxInt64 instructions. It sometimes increases metadata due to more dyn:get:* function objects. => On our main size benchmark targets show no significant change. Issue https://github.com/dart-lang/sdk/issues/40876 Change-Id: If7450ef7e5e3fc9c2e0eaa6b86ffa817699a7e17 Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/154329 Commit-Queue: Martin Kustermann <kustermann@google.com> Reviewed-by: Alexander Markov <alexmarkov@google.com> Reviewed-by: Tess Strickland <sstrickl@google.com>