Files
sdk/runtime/vm
Alexander Aprelev 0914835773 [vm/inliner] Tweak inlining heuristic, improve List.of inlining.
Builds on top of https://dart-review.googlesource.com/c/sdk/+/228660, introduces vm:vm:always-consider-inlining that tell inliner not to give up inlining of a function.

HashMap constructor got prefer-inline pragma to accommodate shift in inlining away from where it used to be inlined due to large size of inlined HashMap, greater than FLAG_inline_getters_setters_smaller_than heuristic.

Notable performance changes:

JIT (x64)
===
ListCopy.List.of.fixed.100 27.37%
ListCopy.List.of.fixed.2 16.31%

AOT (x64)
===
Empty  -9.978%
InstantiateTypeArgs.Instantiate1  -8.262%
...
ListCopy.List.of.fixed.2 13.73%
ListCopy.spread.num.2 15.51%
ListCopy.List.of.2 15.08%
MapCopy.Map.String.of.Map.100 55.62%
MapCopy.Map.Thing.of.Map.100 56.06%

flutter release
===
flutter_gallery_apk_size (Pixel 2)
-0.0074% (1.0 noise)41809568.00 41812676.00


Addresses https://github.com/dart-lang/sdk/issues/49408

TEST=Inliner_always_consider_inlining, Inliner_List_of_inlined
Change-Id: I7f8fc7cb0ac4a69310c108cf519518c384dc0164
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/253740
Reviewed-by: Alexander Markov <alexmarkov@google.com>
Commit-Queue: Alexander Aprelev <aam@google.com>
2022-08-15 21:14:36 +00:00
..
2022-07-20 18:08:27 +00:00
2021-07-13 01:55:45 +00:00
2021-07-13 01:55:45 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-07-29 18:11:01 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-03-25 10:29:30 +00:00
2022-06-10 15:48:54 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-07-12 19:35:22 +00:00
2021-07-09 13:48:25 +00:00
2021-11-16 16:23:36 +00:00
2022-01-21 21:24:20 +00:00
2022-01-21 21:24:20 +00:00
2022-07-06 12:48:16 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2022-05-24 09:10:51 +00:00
2022-03-25 10:29:30 +00:00
2022-03-25 10:29:30 +00:00
2022-03-26 09:41:21 +00:00
2022-01-20 00:57:57 +00:00
2022-07-12 19:35:22 +00:00
2022-01-20 00:57:57 +00:00
2022-06-15 11:08:28 +00:00
2022-07-20 18:08:27 +00:00
2022-01-20 00:57:57 +00:00
2022-07-29 18:11:01 +00:00
2022-07-29 18:11:01 +00:00
2022-07-29 18:11:01 +00:00
2022-04-25 23:12:53 +00:00
2022-01-20 00:57:57 +00:00
2022-07-29 18:11:01 +00:00
2021-10-14 00:10:12 +00:00