Vyacheslav Egorov
7aeb94423f
Revert "[vm] Detect and expand calls through getters in AOT call specializer."
...
This reverts commit eea2c168f9 .
Reason for revert: standalone_2/io/test_runner_test times out
python tools/test.py -m release -c precompiler -r dart_precompiled -a simarm64 --use-blobs standalone_2/io/test_runner_test
Original change's description:
> [vm] Detect and expand calls through getters in AOT call specializer.
>
> If we know that receiver is a subclass of a certain type and that this
> type has accessor get:m then call o.m(...) is guaranteed to be an
> invocation through a getter. Such invocations are executed most
> efficiently when expanded into o.get:m().call(...).
>
> Source based pipeline handles this case (at least for invocations on
> `this`) directly in the parser, but Kernel based graph builder does not
> have this sort of special case.
>
> Instead of teaching Kernel flow graph builder to specially handle
> invocations on `this` we teach AOT call specializer to specially handle
> all invocations where receiver is known to be a subclass of certain
> class. Such optimization is more generic and handles things that
> previously were not handled by the optimization.
>
> AOT compiler also has heuristics for injecting field dispatchers into
> classes but these heuristics only handle fields of function type and
> don't work for fields like `Function f` or `var f`.
>
> Improves ParserCombinators benchmark by 4x.
>
> Bug:
> Change-Id: I365d4fb2140577d02aefbf16fcf6be1bd12413a6
> Reviewed-on: https://dart-review.googlesource.com/29840
> Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
> Reviewed-by: Alexander Markov <alexmarkov@google.com >
> Reviewed-by: Martin Kustermann <kustermann@google.com >
TBR=vegorov@google.com ,kustermann@google.com ,alexmarkov@google.com
Change-Id: I2b891b1674dd07fa43d6414428438c41e3332391
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/30400
Reviewed-by: Vyacheslav Egorov <vegorov@google.com >
Commit-Queue: Vyacheslav Egorov <vegorov@google.com >
2017-12-18 22:21:07 +00:00
..
2017-12-18 22:21:07 +00:00
2017-08-16 15:14:27 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 13:13:26 +02:00
2017-06-20 16:49:10 +02:00
2017-07-13 08:08:37 -07:00
2017-09-28 19:43:32 +00:00
2017-09-28 19:43:32 +00:00
2017-10-25 11:09:29 +00:00
2017-08-14 11:10:29 -07:00
2017-08-14 11:10:29 -07:00
2017-08-14 11:10:29 -07:00
2017-08-14 11:10:29 -07:00
2017-07-13 08:08:37 -07:00
2017-08-14 12:33:57 -07:00
2017-08-14 11:10:29 -07:00
2017-08-07 15:54:49 -07:00
2017-10-20 21:15:03 +00:00
2017-10-20 21:15:03 +00:00
2017-10-31 15:46:43 +00:00
2017-07-13 08:08:37 -07:00
2017-07-17 12:20:17 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-11-27 18:25:31 +00:00
2017-12-08 21:51:40 +00:00
2017-12-08 21:51:40 +00:00
2017-11-09 19:05:15 +00:00
2017-07-13 08:08:37 -07:00
2017-12-07 00:19:27 +00:00
2017-10-31 19:19:25 +00:00
2017-09-25 18:33:07 +00:00
2017-09-25 18:33:07 +00:00
2017-12-12 01:11:53 +00:00
2017-11-23 00:07:56 +00:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-28 19:43:32 +00:00
2017-07-13 08:08:37 -07:00
2017-09-28 19:43:32 +00:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-09-28 19:43:32 +00:00
2017-09-04 15:15:18 +00:00
2017-09-28 19:43:32 +00:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-08-25 18:07:03 -07:00
2017-07-13 08:08:37 -07:00
2017-11-30 22:59:51 +00:00
2017-11-21 23:38:05 +00:00
2017-09-12 19:25:43 +00:00
2017-12-13 16:04:34 +00:00
2017-12-12 14:14:45 +00:00
2017-12-12 14:14:45 +00:00
2017-12-12 14:14:45 +00:00
2017-09-15 14:54:18 +00:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-19 18:09:19 -07:00
2017-12-06 22:45:31 +00:00
2017-12-14 14:10:45 +00:00
2017-07-13 08:08:37 -07:00
2017-08-25 11:51:23 +02:00
2017-07-13 08:08:37 -07:00
2017-09-25 18:33:07 +00:00
2017-09-04 15:15:18 +00:00
2017-12-14 14:10:45 +00:00
2017-12-14 14:10:45 +00:00
2017-12-07 00:54:35 +00:00
2017-09-01 13:26:29 -07:00
2017-11-23 00:07:56 +00:00
2017-10-04 20:19:22 +00:00
2017-10-04 20:19:22 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-09-21 16:07:02 +00:00
2017-10-04 20:19:22 +00:00
2017-11-10 22:35:48 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-07-13 08:08:37 -07:00
2017-10-30 22:02:20 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-15 01:38:42 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-10-30 22:02:20 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-15 01:38:42 +00:00
2017-12-15 01:38:42 +00:00
2017-09-25 18:33:07 +00:00
2017-08-22 11:19:54 -07:00
2017-12-06 22:45:31 +00:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-10-05 23:58:26 +00:00
2017-12-06 22:45:31 +00:00
2017-12-06 22:45:31 +00:00
2017-11-11 00:19:18 +00:00
2017-11-11 00:19:18 +00:00
2017-09-04 15:15:18 +00:00
2017-12-08 20:42:51 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-12-08 20:42:51 +00:00
2017-07-13 08:08:37 -07:00
2017-12-08 20:42:51 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-12-08 20:42:51 +00:00
2017-07-13 08:08:37 -07:00
2017-06-22 08:49:22 -07:00
2017-10-18 01:11:00 +00:00
2017-11-30 22:59:51 +00:00
2017-10-25 21:57:08 +00:00
2017-11-03 18:10:53 +00:00
2017-12-08 18:07:31 +00:00
2017-12-06 22:45:31 +00:00
2017-07-13 08:08:37 -07:00
2017-11-03 18:31:50 +00:00
2017-11-03 18:31:50 +00:00
2017-09-19 23:29:55 +00:00
2017-11-03 18:31:50 +00:00
2017-11-03 18:31:50 +00:00
2017-11-16 11:08:02 +00:00
2017-12-14 14:51:45 +00:00
2017-11-17 17:45:03 +00:00
2017-08-17 09:49:48 -07:00
2017-12-13 20:48:14 +00:00
2017-12-13 20:48:14 +00:00
2017-12-01 18:00:16 +00:00
2017-12-01 05:16:48 +00:00
2017-11-09 22:20:02 +00:00
2017-07-13 08:08:37 -07:00
2017-08-14 08:38:52 -07:00
2017-08-14 08:38:52 -07:00
2017-08-14 08:38:52 -07:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-12-02 06:19:33 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-10-18 21:15:49 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 13:13:26 +02:00
2017-09-04 13:13:26 +02:00
2017-07-13 08:08:37 -07:00
2017-10-30 22:02:20 +00:00
2017-07-13 08:08:37 -07:00
2017-12-14 14:10:45 +00:00
2017-12-14 14:10:45 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-08-14 17:02:30 -07:00
2017-08-14 17:02:30 -07:00
2017-07-13 08:08:37 -07:00
2017-12-01 22:47:06 +00:00
2017-12-07 17:49:39 +00:00
2017-10-19 07:13:06 +00:00
2017-09-04 15:15:18 +00:00
2017-07-13 09:55:35 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-10-05 16:56:16 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-08-07 17:51:25 -07:00
2017-08-30 09:50:57 -07:00
2017-07-27 13:24:48 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-08 20:42:51 +00:00
2017-12-08 20:42:51 +00:00
2017-10-24 12:55:25 +00:00
2017-11-23 00:07:56 +00:00
2017-12-13 16:04:34 +00:00
2017-09-04 15:15:18 +00:00
2017-12-15 23:56:33 +00:00
2017-12-08 20:42:51 +00:00
2017-11-09 16:58:38 +00:00
2017-11-09 16:58:38 +00:00
2017-11-09 16:58:38 +00:00
2017-11-21 17:13:39 +00:00
2017-07-13 08:08:37 -07:00
2017-11-22 19:27:54 +00:00
2017-07-13 08:08:37 -07:00
2017-11-22 19:27:54 +00:00
2017-09-15 20:28:49 +00:00
2017-11-22 19:27:54 +00:00
2017-07-13 08:08:37 -07:00
2017-11-22 19:27:54 +00:00
2017-07-13 08:08:37 -07:00
2017-11-22 19:27:54 +00:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-12-08 18:07:31 +00:00
2017-11-09 16:58:38 +00:00
2017-08-14 17:02:30 -07:00
2017-07-13 08:08:37 -07:00
2017-12-15 01:38:42 +00:00
2017-12-15 01:38:42 +00:00
2017-12-13 16:04:34 +00:00
2017-12-13 16:04:34 +00:00
2017-12-13 16:04:34 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-22 20:47:47 +00:00
2017-07-13 08:08:37 -07:00
2017-08-09 11:20:58 -07:00
2017-12-08 18:07:31 +00:00
2017-09-26 22:01:42 +00:00
2017-12-06 22:24:25 +00:00
2017-11-14 23:06:05 +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-12-12 01:11:53 +00:00
2017-12-15 01:38:42 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-11-14 18:13:04 +00:00
2017-09-28 19:43:32 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-10-18 01:11:00 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-09-04 15:15:18 +00:00
2017-12-01 14:55:56 +00:00
2017-09-04 15:15:18 +00:00
2017-12-13 16:04:34 +00:00
2017-09-04 13:13:26 +02:00
2017-08-07 17:51:25 -07:00
2017-08-07 17:51:25 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 13:46:17 -07:00
2017-12-15 01:38:42 +00:00
2017-09-25 18:33:07 +00:00
2017-07-13 08:08:37 -07:00
2017-12-13 16:04:34 +00:00
2017-12-13 16:04:34 +00:00
2017-08-30 17:09:36 -07:00
2017-07-13 18:18:51 -07:00
2017-11-18 00:31:35 +00:00
2017-10-04 20:19:22 +00:00
2017-11-30 22:55:56 +00:00
2017-08-14 17:02:30 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-10-18 21:15:49 +00:00
2017-12-08 18:07:31 +00:00
2017-10-18 21:15:49 +00:00
2017-12-13 16:04:34 +00:00
2017-12-13 16:04:34 +00:00
2017-06-22 08:49:22 -07:00
2017-07-13 08:08:37 -07:00
2017-11-20 18:54:56 +00:00
2017-06-24 13:41:39 +02:00
2017-11-02 00:57:42 +00:00
2017-11-23 00:07:56 +00:00
2017-10-26 16:50:30 +00:00
2017-11-10 22:35:48 +00:00
2017-10-12 03:47:15 +00:00
2017-10-12 03:47:15 +00:00
2017-10-12 03:47:15 +00:00
2017-10-12 03:47:15 +00:00
2017-09-04 15:15:18 +00:00
2017-10-12 03:47:15 +00:00
2017-10-25 21:57:08 +00:00
2017-10-25 21:57:08 +00:00
2017-07-13 08:08:37 -07:00
2017-10-25 21:57:08 +00:00
2017-10-25 21:57:08 +00:00
2017-07-26 13:15:08 -07:00
2017-12-18 22:21:07 +00:00
2017-07-26 13:15:08 -07:00
2017-12-18 22:21:07 +00:00
2017-12-13 16:04:34 +00:00
2017-07-26 13:15:08 -07:00
2017-12-18 22:21:07 +00:00
2017-07-26 13:15:08 -07:00
2017-12-18 22:21:07 +00:00
2017-12-06 01:29:06 +00:00
2017-12-13 16:04:34 +00:00
2017-11-30 22:59:51 +00:00
2017-12-14 14:10:45 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-10-09 22:26:01 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-01 22:30:15 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-12-08 18:07:31 +00:00
2017-07-13 08:08:37 -07:00
2017-10-05 00:56:43 +00:00
2017-08-07 17:51:25 -07:00
2017-12-08 18:07:31 +00:00
2017-12-15 01:38:42 +00:00
2017-08-25 18:07:03 -07:00
2017-07-13 08:08:37 -07:00
2017-09-19 23:29:55 +00:00
2017-09-19 23:29:55 +00:00
2017-09-19 23:29:55 +00:00
2017-09-19 23:29:55 +00:00
2017-07-21 08:06:36 -07:00
2017-09-19 23:29:55 +00:00
2017-10-30 22:02:20 +00:00
2017-09-26 22:01:42 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-11-09 23:29:52 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-10-23 10:43:59 +00:00
2017-10-23 10:43:59 +00:00
2017-07-13 08:08:37 -07:00
2017-11-22 12:04:18 +00:00
2017-11-22 12:04:18 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-11-03 17:39:16 +00:00
2017-07-13 08:08:37 -07:00
2017-08-28 17:00:39 -07:00
2017-07-13 08:08:37 -07:00
2017-11-23 00:07:56 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-10-30 22:02:20 +00:00
2017-07-13 08:08:37 -07:00
2017-11-08 20:17:51 +00:00
2017-09-25 10:21:42 +00:00
2017-11-22 01:37:37 +00:00
2017-11-22 01:37:37 +00:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00
2017-07-13 08:08:37 -07:00