1. 25 Jan, 2022 1 commit
  2. 14 Jun, 2021 1 commit
  3. 01 Mar, 2021 2 commits
  4. 24 Feb, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm][turbofan] Implement loop unrolling for wasm · 40ebe845
      Manos Koukoutos authored
      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: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73009}
      40ebe845