-
Manos Koukoutos authored
We introduce a typing phase into the Turbofan compilation pipeline for wasm-gc. It has two functionalities: (1) to type nodes that were not typed during code generation (mainly phi nodes) and (2) to narrow types as much as possible. The following nodes are handled, which should be enough for our purposes: TypeGuard, WasmTypeCast, AssertNotNull, Phi, LoadFromObject, and LoadImmutableFromObject. Loop phi types are computed by first assigning the type of the non-recursive input, and updating once we have the type of the recursive inputs, and repeating this process to a fixed point. Drive-by: Remove the narrowing of function signatures during wasm inlining, as it created some issues and should not be needed after this series of changes. Bug: v8:7748 Change-Id: I8a72488d5c221c4ae8257fc5abf6f0368cf10e96 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3678208 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Maya Lekova <mslekova@chromium.org> Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/main@{#80912}
aee0ec97