Closed Bug 1609046 Opened 4 years ago Closed 3 years ago

[meta] Implement the WebAssembly multi-memory proposal

Categories

(Core :: JavaScript: WebAssembly, task, P3)

task

Tracking

()

RESOLVED INACTIVE

People

(Reporter: lth, Unassigned)

References

(Depends on 1 open bug)

Details

(Keywords: meta)

Proposal: https://github.com/WebAssembly/multi-memory

Mostly this is just plumbing. The only really hard part is dealing with the JITs: at the moment, we have a pinned register to represent the heap pointer. With multiple memories, we need a better strategy.

We know that simply not making the heap pointer pinned results in a performance regression (bug 1342121), and the regression is probably not acceptable.

We can imagine keeping the heap pointer for single-memory modules (thus have no regression) or indeed having a dedicated heap pointer for memory 0, in the absence of a better hint (hints are being discussed on the proposal repo). That might amount to making the call ABI a little more complicated (the caller's memory 0 may not be the callee's memory 0).

We can imagine improving the optimizer to handle the heap register better, but that's pretty hand-wavy without a diagnosis of why we saw regressions in the first place.

Status: NEW → RESOLVED
Closed: 3 years ago
Resolution: --- → INACTIVE
You need to log in before you can comment on or make changes to this bug.