Martin Kustermann
b8b0cad67a
[dart2wasm] Make most void functions have no return values
...
This gives around 0.2% improvement in compressed e main module.
In Dart a function with `void` return type can actually return values
that callers can observe. But most of the time this doesn't happen, most
times those functions return `null` values and callers don't observe
them.
Let's use inferred return value information to see if a function is
guaranteed to only return `null`. If so we make the wasm function
signature not return any values. Callers will then synthesize a `null`
which may immediatly be dropped or (in rare cases) actually be used.
This leads to less less instructions in the callee (as a callee doesn't
need to push the null onto the stack) and the caller (as the caller
doesn't have to drop it from the stack).
Change-Id: I3ed1be7592798ad0c697c5bc3ab2c4b64c156f03
Reviewed-on: https://dart-review.googlesource.com/c/sdk/+/497620
Commit-Queue: Martin Kustermann <kustermann@google.com >
Reviewed-by: Srujan Gaddam <srujzs@google.com >
2026-04-28 00:20:02 -07:00
..
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2026-03-20 09:09:46 -07:00
2026-01-28 15:33:35 -08:00
2025-05-02 20:17:11 -07:00
2026-04-28 00:20:02 -07:00
2025-05-02 20:17:11 -07:00
2024-07-30 03:13:58 +00:00
2024-12-13 11:10:26 -08:00
2024-12-13 14:09:46 -08:00
2024-10-11 16:53:52 +00:00
2024-07-30 03:13:58 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-10-09 08:38:48 +00:00
2025-05-02 20:17:11 -07:00
2024-10-09 08:38:48 +00:00
2025-09-22 14:25:22 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-09-10 15:29:28 +00:00
2025-06-20 20:11:25 -07:00
2024-07-10 01:39:58 +00:00
2024-07-10 01:39:58 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-24 12:06:22 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2023-10-25 15:37:50 +00:00
2023-10-25 15:37:50 +00:00
2024-10-11 16:53:52 +00:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2024-01-23 01:26:09 +00:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2026-02-17 08:28:57 -08:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2026-02-09 05:40:11 -08:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-06-12 21:28:23 +00:00
2024-06-12 21:28:23 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2024-01-23 01:26:09 +00:00
2025-08-22 20:48:35 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-05-02 20:17:11 -07:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2025-06-20 20:11:25 -07:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2026-02-17 08:28:57 -08:00
2025-05-02 20:17:11 -07:00
2025-06-13 16:16:13 -07:00
2025-06-13 16:16:13 -07:00
2025-05-02 20:17:11 -07:00
2024-01-23 01:26:09 +00:00
2024-11-19 00:59:10 +00:00
2024-12-16 10:01:23 -08:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2024-11-19 00:59:10 +00:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-05-02 20:17:11 -07:00
2025-06-20 20:11:25 -07:00
2024-11-19 00:59:10 +00:00
2026-02-06 11:00:10 -08:00