v8/test/unittests/wasm
Manos Koukoutos 7981dc33d5 Reland "[wasm] Refactor initializer expression handling"
This is a reland of 071a1acf32

Changes compared to original:
Expect SIMD test to fail if SIMD is not supported.

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: I2dface5ff28d5a2d439a65d3e5cb83135c061bb9
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2997722
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
Cr-Commit-Position: refs/heads/master@{#75492}
2021-06-30 21:33:46 +00:00
..
control-transfer-unittest.cc [wasm][interpreter][eh] Implement catch with immediate 2021-02-11 15:38:56 +00:00
decoder-unittest.cc [wasm] Simplify LEB decoding 2020-10-08 13:58:01 +00:00
DIR_METADATA Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
function-body-decoder-unittest.cc Reland "[wasm] Refactor initializer expression handling" 2021-06-30 21:33:46 +00:00
leb-helper-unittest.cc [wasm] Rename {ValidateFlag} constants 2020-09-30 13:19:03 +00:00
liftoff-register-unittests.cc [wasm][liftoff][arm64] Avoid x28 even without pointer compression 2021-03-12 13:07:17 +00:00
loop-assignment-analysis-unittest.cc [test][cleanup] Rename WASM_*_LOCAL to WASM_LOCAL_* 2020-12-17 21:19:14 +00:00
module-decoder-memory64-unittest.cc [isolate][cleanup] Remove pointer to WasmEngine 2021-06-21 09:09:25 +00:00
module-decoder-unittest.cc Reland "[wasm] Refactor initializer expression handling" 2021-06-30 21:33:46 +00:00
OWNERS Add DIR_METADATA files to v8. 2020-10-20 22:12:28 +00:00
simd-shuffle-unittest.cc [wasm-simd][liftoff][x64] Optimize shuffles (swizzles) 2020-08-04 17:03:05 +00:00
streaming-decoder-unittest.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
subtyping-unittest.cc [wasm-gc] Implement function subtyping 2021-04-15 11:01:05 +00:00
trap-handler-posix-unittest.cc [wasm] Make --wasm-trap-handler a d8-only flag 2021-06-30 09:32:55 +00:00
trap-handler-win-unittest.cc [wasm] Make --wasm-trap-handler a d8-only flag 2021-06-30 09:32:55 +00:00
trap-handler-x64-unittest.cc [base] Move utils/vector.h to base/vector.h 2021-06-18 13:33:13 +00:00
wasm-code-manager-unittest.cc [wasm][test] Various test cleanups 2021-02-01 07:57:35 +00:00
wasm-compiler-unittest.cc Reland "[codegen][frames] Generalize argument padding slot code" 2021-03-05 22:35:30 +00:00
wasm-gdbserver-unittest.cc [wasm] [debugging] Fix --wasm-gdb-remote 2020-12-08 19:37:25 +00:00
wasm-macro-gen-unittest.cc [test][cleanup] Rename WASM_*_GLOBAL to WASM_GLOBAL_* 2020-12-17 21:26:54 +00:00
wasm-module-builder-unittest.cc Move remaining files in src/ 2019-05-24 18:24:36 +00:00
wasm-module-sourcemap-unittest.cc Add source map support of WasmModule 2019-08-26 15:19:02 +00:00