1. 07 Jul, 2022 1 commit
  2. 06 Jul, 2022 1 commit
  3. 01 Jul, 2022 1 commit
  4. 22 Jun, 2022 1 commit
  5. 20 Jun, 2022 1 commit
  6. 15 Jun, 2022 1 commit
  7. 14 Jun, 2022 2 commits
  8. 10 Jun, 2022 1 commit
  9. 03 Jun, 2022 2 commits
  10. 02 Jun, 2022 1 commit
    • Manos Koukoutos's avatar
      [wasm-gc][turbofan] Implement typing phase · aee0ec97
      Manos Koukoutos authored
      We introduce a typing phase into the Turbofan compilation pipeline for
      wasm-gc. It has two functionalities: (1) to type nodes that were not
      typed during code generation (mainly phi nodes) and (2) to narrow types
      as much as possible.
      The following nodes are handled, which should be enough for our
      purposes: TypeGuard, WasmTypeCast, AssertNotNull, Phi, LoadFromObject,
      and LoadImmutableFromObject.
      Loop phi types are computed by first assigning the type of the
      non-recursive input, and updating once we have the type of the recursive
      inputs, and repeating this process to a fixed point.
      
      Drive-by: Remove the narrowing of function signatures during wasm
      inlining, as it created some issues and should not be needed after this
      series of changes.
      
      Bug: v8:7748
      Change-Id: I8a72488d5c221c4ae8257fc5abf6f0368cf10e96
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3678208
      Commit-Queue: Manos Koukoutos <manoskouk@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80912}
      aee0ec97
  11. 31 May, 2022 1 commit
  12. 30 May, 2022 1 commit
  13. 25 May, 2022 2 commits
  14. 18 May, 2022 1 commit
  15. 16 May, 2022 1 commit
  16. 13 May, 2022 1 commit
  17. 11 May, 2022 1 commit
    • Seth Brenith's avatar
      Improve Script reuse in isolate compilation cache, part 1 · 25072178
      Seth Brenith authored
      Once the root SharedFunctionInfo for any Script gets its bytecode
      flushed, the Isolate's compilation cache currently evicts that entry, to
      reduce memory usage. However, the associated Script is likely still
      alive, since scripts often declare functions which outlive the initial
      evaluation of the script. If an identical script is loaded later, a
      duplicate Script is created for it, which can waste memory.
      
      In this change, I propose that the compilation cache keys can refer
      weakly to the Script. When the root SharedFunctionInfo gets old, instead
      of deleting the cache entry entirely, we can just drop the strong
      reference to the SharedFunctionInfo. A subsequent lookup in the cache
      will retrieve the Script instead of the root SharedFunctionInfo,
      indicating an opportunity to save some memory by reusing the existing
      Script.
      
      Eventually, all callers to CompilationCache::LookupScript should reuse
      the Script if possible. This change implements only the easy case of
      reusing the Script for synchronous parsing. Follow-up changes will be
      required for the TODO comments left by this change.
      
      Bug: v8:12808
      Change-Id: Ia8b0389441a682de9a43e73329049fd2e7835d3d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3597106Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Seth Brenith <seth.brenith@microsoft.com>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#80472}
      25072178
  18. 10 May, 2022 1 commit
  19. 09 May, 2022 6 commits
  20. 03 May, 2022 1 commit
  21. 02 May, 2022 2 commits
  22. 29 Apr, 2022 1 commit
    • George Wort's avatar
      Make profile-guided optimization of builtins more configurable · 0e127bce
      George Wort authored
      Introduce get_hints.py and combine_hints.py in order to make
      the interpretation of basic block counts into hints more
      configurable and explicit, as well as allowing more accurate
      and consistent methods of combining multiple profiles.
      
      get_hints.py allows for the minimum count and threshold ratio
      values to be easily altered for different profiles, while
      combine_hints.py allows the hints produced from different
      benchmarks and threshold values to be easily and sensibly
      combined.
      
      Simply summing together basic block counts from different
      benchmarks could previously lead to a longer running benchmark
      overshadowing multiple shorter benchmarks with conflicting
      hints.
      
      Allowing alteration of the current threshold values gives a
      doubling of performance, while the new method of combining
      distinct profiles can double the performance improvement of the
      secondary benchmark while losing as little as 4% of the
      improvement gained in the primary benchmark.
      
      Design doc: https://docs.google.com/document/d/1OhwZnIZom47IX0lyceyt-S9i8AApDB0UqJdvQD6NuKQ/edit?usp=sharing
      
      Bug: v8:10470
      Change-Id: I1c09d1eabfdda5ed6794592e2c13ff8b461be361
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3545181Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: George Wort <george.wort@arm.com>
      Cr-Commit-Position: refs/heads/main@{#80282}
      0e127bce
  23. 27 Apr, 2022 2 commits
  24. 25 Apr, 2022 1 commit
  25. 19 Apr, 2022 2 commits
  26. 14 Apr, 2022 1 commit
  27. 13 Apr, 2022 2 commits
  28. 11 Apr, 2022 1 commit