1. 06 May, 2022 1 commit
    • Clemens Backes's avatar
      [assembler] Remove the "no condition" · 738f4b69
      Clemens Backes authored
      The no_condition / kNoCondition not only has the flaw that it's a
      special case which represents an illegal / nonexisting condition, and
      thus needs special handling in all methods which get a condition as
      input (this check is often missing), it is also weird in that every
      negative condition value must be considered a "no condition".
      
      It turns out that this "no condition" is rarely used, and can easily be
      avoided by duplicating methods, or storing a {base::Optional<Condition>}
      instead (not needed anywhere yet).
      
      This is a follow-up to https://crrev.com/c/3629553.
      
      R=tebbi@chromium.org, pthier@chromium.org
      
      Bug: v8:12425
      Change-Id: Id2270b1660fcb0aff0a8460961b57068ed1c3c73
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3632102Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarPatrick Thier <pthier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80397}
      738f4b69
  2. 05 May, 2022 1 commit
  3. 20 Apr, 2022 1 commit
  4. 16 Mar, 2022 1 commit
  5. 14 Mar, 2022 1 commit
  6. 11 Mar, 2022 1 commit
  7. 23 Feb, 2022 1 commit
  8. 18 Jan, 2022 1 commit
  9. 24 Dec, 2021 1 commit
  10. 16 Dec, 2021 1 commit
    • Seth Brenith's avatar
      Revert "Shorten generated code for binary-search switches" · c84bcd74
      Seth Brenith authored
      This reverts commit 00a757fa.
      
      Reason for revert: Caused perf regressions, https://crbug.com/1280236
      
      Original change's description:
      > Shorten generated code for binary-search switches
      >
      > On some branches of the search tree for a binary-search switch, the
      > input value is sufficiently constrained that we could unconditionally
      > jump to the last possible case rather than checking for value equality.
      > This shortens some builtins by a few instructions and might speed things
      > up, though I expect the effect to be small.
      >
      > Change-Id: I2313f26976e6d3c182f03bd927b338c8175b3af3
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3335437
      > Reviewed-by: Nico Hartmann <nicohartmann@chromium.org>
      > Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      > Cr-Commit-Position: refs/heads/main@{#78376}
      
      Bug: chromium:1280236
      Change-Id: I88d9ff64641b85d48198b7012df2eeb9441913b5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3343234
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/main@{#78397}
      c84bcd74
  11. 14 Dec, 2021 2 commits
    • Seth Brenith's avatar
      Shorten generated code for binary-search switches · 00a757fa
      Seth Brenith authored
      On some branches of the search tree for a binary-search switch, the
      input value is sufficiently constrained that we could unconditionally
      jump to the last possible case rather than checking for value equality.
      This shortens some builtins by a few instructions and might speed things
      up, though I expect the effect to be small.
      
      Change-Id: I2313f26976e6d3c182f03bd927b338c8175b3af3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3335437Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/main@{#78376}
      00a757fa
    • Seth Brenith's avatar
      Always emit unconditional jump in binary-search switch · dd9d4c96
      Seth Brenith authored
      We probably expect a binary-search switch to take log(n) time in all
      cases, but there is currently a possibility of that expectation being
      broken. I'm not aware of any place where this actually happens, but if
      the default handler immediately follows the switch dispatch block in
      assembly order, then unconditional jump instructions for that handler
      would be omitted. This omission could cause linear execution time, where
      every case is checked before falling through to the default handler.
      
      This change introduces a new function to emit an unconditional jump
      instruction regardless of whether the target is the following block, and
      uses that new function when generating a binary-search switch to ensure
      consistently log(n) behavior.
      
      Change-Id: I5cab86fd66386762519035410e3b532dc6fd764c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3335222Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Cr-Commit-Position: refs/heads/main@{#78370}
      dd9d4c96
  12. 09 Dec, 2021 1 commit
  13. 26 Nov, 2021 1 commit
  14. 04 Nov, 2021 1 commit
  15. 02 Nov, 2021 1 commit
    • Manos Koukoutos's avatar
      [wasm] Simplify 'ref' field for API-defined functions · 48b2b891
      Manos Koukoutos authored
      Design doc:  https://bit.ly/3jEVgzz
      
      Summary:
      We change the context for WasmJSFunction and WasmCapiFunction from a
      tuple containing the instance to a triple WasmAPIFunctionRef =
      {isolate root, context, callable}. This way we do not have to maintain
      the correct instance at runtime. Also, a few places in the code get
      simplified.
      
      Changes:
      - In WasmGraphBuilder, support having a WasmAPIFunctionRef at parameter
        0.
      - Remove unpacking of (instance, callable) tuple from code generators.
      - Remove the part in WasmGraphBuilder and LiftoffCompiler that used to
        set the instance field of the function reference.
      - Modify code that handles the 'ref' field in wasm-objects.*, factory.*
        and c-api.cc.
      - Fix the recorded safepoint address for arm when calling a C function
        from wasm.
      - (Drive-by) Remove WasmAllocatePair.
      
      Bug: v8:11510
      Change-Id: I2a4ef3abaf9da36c4a2d85b434965a40a289b9ec
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3236719
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#77639}
      48b2b891
  16. 12 Oct, 2021 1 commit
  17. 30 Sep, 2021 1 commit
  18. 24 Sep, 2021 1 commit
  19. 30 Aug, 2021 1 commit
  20. 21 Aug, 2021 1 commit
  21. 16 Aug, 2021 1 commit
  22. 13 Aug, 2021 1 commit
  23. 12 Aug, 2021 1 commit
  24. 16 Jun, 2021 1 commit
  25. 14 Jun, 2021 1 commit
  26. 10 Jun, 2021 1 commit
  27. 07 Jun, 2021 2 commits
  28. 04 Jun, 2021 1 commit
  29. 01 Jun, 2021 1 commit
  30. 28 May, 2021 1 commit
  31. 25 May, 2021 1 commit
  32. 19 May, 2021 1 commit
  33. 13 May, 2021 1 commit
  34. 12 May, 2021 1 commit
  35. 11 May, 2021 1 commit
  36. 10 May, 2021 1 commit
  37. 04 May, 2021 1 commit
  38. 22 Apr, 2021 1 commit