dart-sdk/pkg/frontend_server
Alexander Markov 467c98b846 [vm/aot/tfa] Re-implement protobuf-aware tree shaker inside TFA
This change introduces handling of protobufs while doing type flow
analysis. Metadata in protobuf message classes is updated dynamically
according to the set of called accessors, invalidating and rebuilding
TFA summaries as needed.

Previously, protobuf-aware tree shaker required the 2nd run of TFA
in order to do the actual tree-shaking after protobuf messages are
pruned. This significantly increases compilation time.

AOT compilation time of a large app (--from-dill): 274s -> 152s

New tree shaker is available in kernel compilers under the flag
--protobuf-tree-shaker-v2.

Issue https://github.com/dart-lang/sdk/issues/42442
Fixes https://github.com/dart-lang/sdk/issues/40785

Change-Id: I4347896737b9b0f7407b845e614dda9ba7621921
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/152100
Commit-Queue: Alexander Markov <alexmarkov@google.com>
Reviewed-by: Clement Skau <cskau@google.com>
Reviewed-by: Vyacheslav Egorov <vegorov@google.com>
2020-06-23 21:17:03 +00:00
..
bin [frontend_server] Make module names debugger-friendly 2020-03-05 07:39:33 +00:00
lib [vm/aot/tfa] Re-implement protobuf-aware tree shaker inside TFA 2020-06-23 21:17:03 +00:00
test Added module information to metadata and use by frontend_sever 2020-06-20 00:40:35 +00:00
LICENSE [flutter] split frontend_server from vm package 2019-10-08 05:32:59 +00:00
pubspec.yaml Clean up no-publish comments in pubspecs 2020-06-23 10:34:09 +00:00