Ilya Yanok
3e2d3bc77f
Revert "[vm] Avoid expanding/flattening type arguments vectors in Type objects"
...
This reverts commit 135443706b .
Reason for revert: breaks many targets in G3, see b/278841863
Original change's description:
> [vm] Avoid expanding/flattening type arguments vectors in Type objects
>
> Previously, vectors of type arguments were expanded to include type
> arguments corresponding to superclasses both in the instances of
> generic classes and in Type objects (after type finalization).
> As a result, Type objects after finalization could be recursive and
> need to use extra TypeRef objects to break loops. The finalization of
> types was very complex and sometimes slow.
>
> This change simplifies the representation of Type objects: now they
> always have short type argument vectors, corresponding only to
> the type parameters of their own classes (both before and after
> finalization). Vectors of type arguments in the instances of generic
> classes are still expanded/flattened.
>
> This greatly simplifies type finalization, makes Type objects
> non-recursive and removes the need to create and handle excessive
> TypeRefs for type arguments corresponding to superclasses,
> as those type arguments are no longer included into types.
> The only remaining use of TypeRefs is for bounds of type parameters.
>
> In order to expand/flatten type arguments, new methods Type::GetInstanceTypeArguments / Class::GetInstanceTypeArguments
> are introduced. They build canonical declaration type arguments
> once (for each class), and then instantiate them as needed.
>
> There are also simple helper methods to shrink type arguments (TypeArguments::FromInstanceTypeArguments) and expand type arguments without filling type arguments corresponding to superclasses (TypeArguments::ToInstantiatorTypeArguments).
>
> Time of edge case 'regress_51960_test' 15min -> 300ms.
>
> TEST=ci, runtime/tests/vm/dart/regress_51960_test.dart
>
> Fixes https://github.com/dart-lang/sdk/issues/52022
> Fixes https://github.com/dart-lang/sdk/issues/51960
>
> Change-Id: I75b466b74698a33c0bb5e1dcbd29542e413812a1
> Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/295060
> Reviewed-by: Ryan Macnak <rmacnak@google.com >
> Commit-Queue: Alexander Markov <alexmarkov@google.com >
Change-Id: If0b2077305620593b8f03ebf6c135375c4086b1a
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/296182
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com >
Reviewed-by: Alexander Thomas <athom@google.com >
Commit-Queue: Ilya Yanok <yanok@google.com >
2023-04-19 10:51:37 +00:00
..
2023-04-19 10:51:37 +00:00
2023-01-18 21:08:38 +00:00
2023-04-19 09:36:41 +00:00
2023-04-17 15:58:28 +00:00
2023-04-18 19:39:05 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-03-30 19:27:17 +00:00
2022-03-03 00:58:49 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2021-03-19 15:29:57 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-03-06 22:06:59 +00:00
2023-03-06 22:06:59 +00:00
2023-04-10 18:15:12 +00:00
2023-04-03 12:25:55 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-18 19:39:05 +00:00
2023-02-06 21:49:07 +00:00
2023-02-06 21:49:07 +00:00
2023-04-19 10:51:37 +00:00
2023-04-19 10:51:37 +00:00
2023-02-09 00:23:22 +00:00
2023-04-19 08:47:31 +00:00
2023-04-12 22:18:54 +00:00
2022-10-14 14:09:44 +00:00
2022-10-14 14:09:44 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2021-09-10 22:21:36 +00:00
2023-04-12 22:18:54 +00:00
2021-09-10 22:21:36 +00:00
2023-04-10 18:15:12 +00:00
2021-09-10 22:21:36 +00:00
2023-04-12 22:18:54 +00:00
2022-01-20 00:57:57 +00:00
2023-04-10 18:15:12 +00:00
2021-09-10 22:21:36 +00:00
2023-04-10 18:15:12 +00:00
2023-01-20 12:37:49 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2022-02-22 21:48:14 +00:00
2023-04-12 22:18:54 +00:00
2022-02-22 21:48:14 +00:00
2023-04-12 22:18:54 +00:00
2022-06-08 19:41:52 +00:00
2022-06-08 22:57:03 +00:00
2023-04-12 22:18:54 +00:00
2022-06-23 15:58:15 +00:00
2023-04-13 19:29:47 +00:00
2022-06-08 22:57:03 +00:00
2023-04-12 22:18:54 +00:00
2022-06-08 22:57:03 +00:00
2023-04-10 18:15:12 +00:00
2023-02-27 22:26:36 +00:00
2023-04-10 18:15:12 +00:00
2021-12-16 21:33:49 +00:00
2023-04-10 18:15:12 +00:00
2021-12-16 21:33:49 +00:00
2023-04-10 18:15:12 +00:00
2022-01-20 00:57:57 +00:00
2022-01-20 00:57:57 +00:00
2023-04-10 18:15:12 +00:00
2021-12-16 21:33:49 +00:00
2022-01-20 00:57:57 +00:00
2023-04-10 18:15:12 +00:00
2022-11-14 15:42:52 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 21:38:57 +00:00
2022-01-20 00:57:57 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2021-07-29 16:55:55 +00:00
2021-10-14 00:10:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-18 18:31:15 +00:00
2023-04-18 18:31:15 +00:00
2023-04-18 02:38:48 +00:00
2023-04-10 18:15:12 +00:00
2021-04-26 07:52:47 +00:00
2021-07-08 14:22:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2021-03-19 20:24:48 +00:00
2021-03-19 20:24:48 +00:00
2021-03-19 20:24:48 +00:00
2022-01-20 00:57:57 +00:00
2021-03-19 20:24:48 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2022-09-12 12:33:57 +00:00
2022-09-12 12:33:57 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2022-10-06 10:33:09 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-01-24 18:00:25 +00:00
2023-04-12 16:36:20 +00:00
2023-04-12 16:36:20 +00:00
2023-04-19 08:47:31 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-01-27 19:03:18 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-03-29 18:11:49 +00:00
2023-04-11 17:36:33 +00:00
2023-04-18 19:39:05 +00:00
2023-02-06 22:19:55 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2022-01-21 02:02:00 +00:00
2023-04-12 22:18:54 +00:00
2022-12-01 10:15:58 +00:00
2022-12-29 10:18:02 +00:00
2023-04-10 18:15:12 +00:00
2022-05-11 19:52:45 +00:00
2023-04-12 22:18:54 +00:00
2022-05-11 19:52:45 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2022-01-20 00:57:57 +00:00
2023-04-13 19:29:47 +00:00
2023-04-12 22:18:54 +00:00
2023-03-06 22:06:59 +00:00
2023-04-12 22:18:54 +00:00
2022-05-11 19:52:45 +00:00
2022-05-11 19:52:45 +00:00
2023-04-10 18:15:12 +00:00
2023-04-11 17:36:33 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 09:36:41 +00:00
2023-04-17 15:58:28 +00:00
2023-04-17 15:58:28 +00:00
2023-04-17 15:58:28 +00:00
2023-04-17 15:58:28 +00:00
2023-04-17 15:58:28 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2022-11-11 01:59:28 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-19 08:47:31 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2022-05-11 19:31:04 +00:00
2021-09-30 13:19:42 +00:00
2023-04-10 18:15:12 +00:00
2021-09-16 17:18:37 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2022-08-19 18:10:15 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-03-29 19:58:33 +00:00
2023-04-10 18:15:12 +00:00
2023-03-29 19:58:33 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 09:36:41 +00:00
2023-02-13 18:24:32 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2021-09-02 14:14:35 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-11 17:36:33 +00:00
2023-02-23 03:11:08 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2022-01-20 00:57:57 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 10:51:37 +00:00
2023-04-19 10:51:37 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2022-03-10 23:48:05 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2021-03-31 20:51:32 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-03-03 19:05:28 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2022-06-02 23:39:45 +00:00
2022-06-02 23:39:45 +00:00
2022-09-27 21:34:05 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2022-08-19 18:10:15 +00:00
2023-04-10 18:15:12 +00:00
2021-07-02 19:06:45 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 08:47:31 +00:00
2021-08-24 16:49:23 +00:00
2023-04-10 18:15:12 +00:00
2022-11-22 18:05:24 +00:00
2023-03-22 12:25:47 +00:00
2022-12-01 14:38:44 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2021-09-02 19:22:16 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2022-12-29 10:18:02 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2021-12-16 10:39:49 +00:00
2021-12-16 10:39:49 +00:00
2023-04-12 22:18:54 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2022-11-17 02:28:37 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2023-04-12 22:18:54 +00:00
2022-03-22 19:45:03 +00:00
2021-05-11 11:15:53 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2021-07-16 20:50:58 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 10:51:37 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2021-08-16 11:11:04 +00:00
2023-04-10 18:15:12 +00:00
2023-01-06 07:48:22 +00:00
2021-08-16 11:11:04 +00:00
2021-08-16 11:11:04 +00:00
2023-04-13 19:29:47 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-13 19:29:47 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2022-07-29 18:11:01 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-01-18 23:34:12 +00:00
2023-04-10 18:15:12 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2022-12-07 22:46:22 +00:00
2022-03-22 19:45:03 +00:00
2022-03-22 19:45:03 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 08:47:31 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2021-11-02 17:42:52 +00:00
2021-08-16 11:11:04 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-02-21 19:07:57 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-03-06 22:06:59 +00:00
2023-01-09 15:48:57 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 09:36:41 +00:00
2023-04-19 09:36:41 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-18 19:39:05 +00:00
2023-04-18 19:39:05 +00:00
2021-10-05 16:32:40 +00:00
2021-10-05 16:32:40 +00:00
2021-12-15 23:12:19 +00:00
2023-02-20 14:57:57 +00:00
2022-08-03 10:32:46 +00:00
2023-04-12 22:18:54 +00:00
2023-04-14 03:09:39 +00:00
2023-04-19 10:51:37 +00:00
2023-04-17 16:26:35 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2023-04-18 02:38:48 +00:00
2023-04-18 02:38:48 +00:00
2023-04-18 02:38:48 +00:00
2023-04-10 18:15:12 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00
2021-12-15 22:22:36 +00:00
2021-09-02 21:46:35 +00:00
2022-08-05 11:53:37 +00:00
2022-09-27 21:34:05 +00:00
2022-12-01 01:35:26 +00:00
2023-04-10 18:15:12 +00:00
2022-12-15 00:52:58 +00:00
2023-04-10 18:15:12 +00:00
2023-03-06 22:06:59 +00:00
2023-04-10 21:38:57 +00:00
2023-04-10 18:15:12 +00:00
2022-09-10 15:12:35 +00:00
2023-04-11 17:36:33 +00:00
2023-04-18 19:39:05 +00:00
2023-04-12 22:18:54 +00:00
2023-04-10 18:15:12 +00:00
2023-04-12 22:18:54 +00:00