[Webkit-unassigned] [Bug 253298] New: Fix control flow with multiple exits on single-pass BBQ JIT

bugzilla-daemon at webkit.org bugzilla-daemon at webkit.org
Thu Mar 2 23:06:30 PST 2023


https://bugs.webkit.org/show_bug.cgi?id=253298

            Bug ID: 253298
           Summary: Fix control flow with multiple exits on single-pass
                    BBQ JIT
           Product: WebKit
           Version: WebKit Nightly Build
          Hardware: Unspecified
                OS: Unspecified
            Status: NEW
          Severity: Normal
          Priority: P2
         Component: WebAssembly
          Assignee: webkit-unassigned at lists.webkit.org
          Reporter: d_degazio at apple.com

rdar://106182518

Currently, in control flow instructions with multiple exits (namely br_if and br_table), we assume that the calling convention for each target’s block arguments will be the same. This is not the case universally though: 
 - When targeting the top level block, the results are allocated according to the WASM calling convention, not the block calling convention.
 - If we run out of registers to use for the block calling convention, we pass arguments through WASM canonical stack slots. But the stack height of these may vary between target blocks, even if they have the same signature.

To fix this, we need to modify the ControlData methods currently used to manage control flow blocks, to permit setting up for multiple distinct exit branches per block.

-- 
You are receiving this mail because:
You are the assignee for the bug.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.webkit.org/pipermail/webkit-unassigned/attachments/20230303/5281711d/attachment-0001.htm>


More information about the webkit-unassigned mailing list