1. 17 Apr, 2020 1 commit
    • Clemens Backes's avatar
      [wasm][debug] Don't publish code compiled for stepping · fb403653
      Clemens Backes authored
      This adds another enum value in the {ForDebugging} enum for stepping
      code.
      By not adding the code to the code table and jump table, we will never
      execute this code via a wasm function call. The code will only be used
      for the one frame where we want to step through.
      This speeds up stepping over recursive calls enormously, since the
      recursive calls don't run into the flooded breakpoints any more.
      It also fixes issues with non-local control flow, i.e. catching a trap
      and reentering the same wasm function.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10235
      Change-Id: Idb304dd465418f842016a20c21d68989bb78cf1d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2153205
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67205}
      fb403653
  2. 16 Apr, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Clean up tiering logic · a776ccaa
      Clemens Backes authored
      This cleans up several parts of the tiering logic.
      1) Instead of using the {ExecutionTier} to specify whether we do tier up
         or down, we introduce a new {TieringState} enum and use that
         consistently (also where a {bool} was used before).
      2) When tiering up or tiering down, always recompile all functions. It's
         very unlikely that we can reuse previous code anyway (tiering down is
         cheap enough to just always do it, and when tiering up we need to
         recompile everything anyway).
      3) Remove the {WasmEngine::RecompileAllFunctions} method and inline the
         implementation into callers.
      4) Drive-by: Remove some obsolete comments and fix or extend others.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10410
      Change-Id: Ic765c6760dd97473ccfd469f22a2514695075587
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2151355Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67175}
      a776ccaa
  3. 14 Apr, 2020 1 commit
    • Clemens Backes's avatar
      [wasm][debug] Store "for debugging" flag on compilation unit · e0433f7d
      Clemens Backes authored
      Before the "debug" flag was stored on the {CompilationEnv}. But each
      background compilation task only gets the {CompilationEnv} once when
      starting compilation, so by the time it picks up the "Liftoff for
      debugging" compilation jobs, it might still compile them without the
      debug flag being set. This leads to flakes in the "debug-step-into-wasm"
      test, because we won't stop in the function prologue when stepping in
      (because the function prologue does not check the "hook on function
      call" flag if debug mode was not enabled).
      
      This CL does not increase the size of a compilation unit, since both the
      tier and the debug flag only need a single byte each.
      
      As a nice side effect, this change allows us to remove the lock in
      {CreateCompilationEnv}, because no modifyable flag is read any more.
      
      R=thibaudm@chromium.org
      
      Bug: v8:10410
      Change-Id: Ic296ea0c4dd1d4dedde119f0536e87e5d301b5a1
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2144116Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67115}
      e0433f7d
  4. 31 Mar, 2020 1 commit
  5. 29 Apr, 2019 1 commit
  6. 05 Apr, 2019 1 commit
  7. 03 Apr, 2019 1 commit
  8. 18 Mar, 2019 1 commit
  9. 29 Jan, 2019 1 commit
    • Clemens Hammacher's avatar
      [wasm] Distinguish requested tier and executed tier · 185922de
      Clemens Hammacher authored
      During execution, the tier can be switch from Liftoff to TurboFan. We
      already handle this in some locations by getting the tier before
      execution, so that we later know which was the requested tier for that
      unit.
      In the case of the --wasm-tier-mask-for-testing flag, this accounting
      was not right because the tier was already switched in the constructor.
      This CL changes the compilation units to store both the requested and
      the executed tier explicitly, so we know which counter to decrement
      when the unit finishes.
      
      R=ahaas@chromium.org
      
      Bug: chromium:925671
      Change-Id: I673463135e9b3ab17e40cfdfd5d3a526ad5a9b79
      Reviewed-on: https://chromium-review.googlesource.com/c/1442639Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59168}
      185922de
  10. 21 Aug, 2018 1 commit