Stephen Adams
b3502f17cb
[dart2js] Reduce redundant phis with refinements
...
Redundant phi elimination removes phis that join the same value.
However, this does not work when one or more of the inputs has a refinement (HTypeKnown). This change adds redundant phi elimination when the phi inputs have refinements.
The need for this optimization shows up when static js_interop needs a dispatch on type for conversion:
```
final JSAny? jsValue;
if (value is String) {
jsValue = value.toJS;
} else if (value is bool) {
jsValue = value.toJS;
...
```
(The `.toJS` calls become no-ops since, for dart2js, we are already in JavaScript, and so leave an otherwise pointless if-then-else chain).
Change-Id: If1a94856592163a81ac36c686cee04232c16d197
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/403950
Reviewed-by: Nate Biggs <natebiggs@google.com >
Commit-Queue: Stephen Adams <sra@google.com >
2025-01-16 11:16:31 -08:00
..
2025-01-16 11:16:31 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00
2024-10-11 16:53:52 +00:00
2024-12-13 11:24:50 -08:00
2024-12-13 11:24:50 -08:00