v8/test
Manos Koukoutos 40ebe8453a [wasm][turbofan] Implement loop unrolling for wasm
Design doc: https://docs.google.com/document/d/1AsUCqslMUB6fLdnGq0ZoPk2kn50jIJAWAL77lKXXP5g/

Currently, wasm loop unrolling is disabled by default. We intend to
further investigate its compilation time cost and running time benefits
before enabling it.

Additional changes:
- Introduce LoopFinder::FindUnnestedLoopFromHeader() as a lightweight
  loop analysis.
- Move EliminateLoopExit into LoopPeeling and expose it.
- Introduce loop_info_ field into WasmGraphBuildingInterface, fill it
  up in Loop().
- Break after encountering the first loop in BuildNestedLoopExits.
- Introduce struct WasmLoopInfo. A WasmLoopInfo vector is instantiated
  in ExecuteTurbofanWasmCompilation, passed to BuildGraphForWasmFunction
  to be filled up by WasmGraphBuildingInterface, and then passed to
  GenerateCodeForWasmFunction to be used in WasmLoopUnrollingPhase.
- Introduce WasmLoopUnrollingPhase and insert it into the wasm
  compilation pipeline.
- Fix an issue where exception values were not wrapped in
  WasmGraphBuilderInterface.
- Update --wasm-loop-unrolling flag description.

Bug: v8:11298
Change-Id: I4b57cf2ea8520931f60769f843ffd57b3ca6399b
Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2697349
Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
Reviewed-by: Clemens Backes <clemensb@chromium.org>
Reviewed-by: Georg Neis <neis@chromium.org>
Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
Cr-Commit-Position: refs/heads/master@{#73009}
2021-02-24 14:44:24 +00:00
..
benchmarks IWYU: Added missing include: include/cppgc/persistent.h 2021-02-17 17:37:29 +00:00
cctest [wasm][turbofan] Implement loop unrolling for wasm 2021-02-24 14:44:24 +00:00
common [wasm][eh] Remove kCatchInArity 2021-02-23 18:09:18 +00:00
debugger [no-wasm] Skip wasm tests if wasm is disabled 2021-02-22 11:06:40 +00:00
debugging [wasm] [debugging] Fix --wasm-gdb-remote 2020-12-08 19:37:25 +00:00
fuzzer [wasm-simd][fuzzer] Fuzz extadd pairwise instructions 2021-02-23 22:07:13 +00:00
fuzzilli Fix unhandled promise rejections in REPRL mode 2020-09-30 13:34:23 +00:00
inspector [debugger] Re-compile top-level functions in GetPossibleBreakpoints 2021-02-24 14:42:14 +00:00
intl Fix Use-of-uninitialized-value 2021-02-19 21:11:27 +00:00
js-perf-test [super] Rewrite perf tests 2020-11-16 08:36:24 +00:00
memory Reland^4 "[serializer] Allocate during deserialization" 2020-10-07 08:15:50 +00:00
message [no-wasm] Skip wasm tests if wasm is disabled 2021-02-22 11:06:40 +00:00
mjsunit [wasm] Correcting error message method name for new WebAssembly.Table 2021-02-24 11:06:31 +00:00
mkgrokdump Replace libc functions with base wrappers 2020-11-17 08:50:41 +00:00
mozilla [compiler, infra] Add a --stress-concurrent-inlining flag and a bot 2021-01-29 12:05:03 +00:00
test262 [test] Disable tests failing with new msan roll 2021-02-12 11:53:48 +00:00
torque [torque] Add LazyNode support 2021-02-23 16:51:53 +00:00
unittests [cleanup] Replace redundant BytecodeArrayIterator class 2021-02-24 13:54:53 +00:00
wasm-api-tests [test][cleanup] Rename WASM_*_GLOBAL to WASM_GLOBAL_* 2020-12-17 21:26:54 +00:00
wasm-js [no-wasm] Skip wasm tests if wasm is disabled 2021-02-22 11:06:40 +00:00
wasm-spec-tests [wasm-simd][ia32] Fix load lane and run spec tests 2021-02-23 00:24:19 +00:00
webkit Disallow \8 and \9 in strict mode and template literals 2020-08-03 18:05:14 +00:00
BUILD.gn [turbofan] Make OSR and stack slots compatible 2020-10-05 17:41:02 +00:00
OWNERS