-
Clemens Backes authored
This reverts commit 071a1acf. Reason for revert: Breaks on nosse: https://ci.chromium.org/ui/p/v8/builders/ci/V8%20Linux/42795/overview Original change's description: > [wasm] Refactor initializer expression handling > > Design doc: https://bit.ly/3xPxWUe > > This CL introduces two main changes: > - Initializer expressions are now decoded by WasmFullDecoder. With > wasm-gc, initializer expressions are no longer just constants, and > require complex decoding (including stack tracking). This resulted in > extensive code duplication. > - Initializer expressions are not stored explicitly by module-decoder as > an AST (WasmInitExpr), but rather as a WireBytesRef, and are decoded > again during module instantiation. This should reduce memory > consumption for globals and other module elements with initializer > expressions (which has been observed in the 40MB range in some > real-world benchmarks. > > Summary of changes: > - Add a static parameter {kFunctionBody, kInitExpression} to the > WasmDecoder. Use it to specialize validation to function bodies/init. > expressions. > - Introduce a new Interface for the WasmFullDecoder for init. > expressions. > - Differentiate between constant and non-constant opcodes in > WasmFullDecoder. > - Change representation of init. expressions in WasmModule to > WireBytesRef. > - Reimplement EvaluateInitExpression in module-instantiate to re-decode > initializer expressions. > - Remove some now-invalid module decoder tests. > > Pending changes: > - Also refactor initializer expressions for element segment entries. > - Reintroduce deleted tests. > > Bug: v8:11895 > Change-Id: I76512bfe1386c8338667d30fa6db93880a1e4b42 > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2972910 > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> > Cr-Commit-Position: refs/heads/master@{#75476} Bug: v8:11895 Change-Id: I9fcfdedad73ef21beb9632f50305b8e678a2dff6 No-Presubmit: true No-Tree-Checks: true No-Try: true Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997582 Auto-Submit: Clemens Backes <clemensb@chromium.org> Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com> Cr-Commit-Position: refs/heads/master@{#75484}
5756c40e