1. 25 Mar, 2022 1 commit
  2. 23 Mar, 2022 1 commit
  3. 22 Mar, 2022 1 commit
    • Darius M's avatar
      Reland^2 [compiler] Simplify "==0" branches in MachineOperatorReducer · 0719ace6
      Darius M authored
      This is a reland of 6b690a6b.
      
      The previous version of this CL was a bit too aggressive in the
      duplication of branch conditions. This caused an increase in
      register pressure in some cases, thus reducing performance.
      
      In fact, duplicating branch conditions that require an "== 0" to be
      added provides no benefits. We are thus now a bit less aggressive, and
      only duplicate comparisons.
      
      Original change's description:
      > Reland [compiler] Simplify "==0" branches in MachineOperatorReducer
      >
      > This is a reland of 48b443f6.
      >
      > While fixing the initial CL, we stumbled upon a few bugs that
      > we had to fix:
      >
      >  - CommonOperatorReducer and SimplifiedOperatorReducer were applied
      >    before and after SimplifiedLowering, but always assumed that it
      >    was before SimplifiedLowering, and thus had the wrong semantics
      >    for branches in some cases. They now have an added parameter to
      >    know which semantics of branch they should use.
      >
      >  - The lowering of StaticAssert was wrong and could leave kHeapConstant
      >    in the assert (instead of machine Booleans).
      >
      > Original change's description:
      > > [compiler] Simplify "==0" branches in MachineOperatorReducer
      > >
      > > Bug: v8:12484
      > > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Owners-Override: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#79379}
      >
      > Bug: v8:12484
      > Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79528}
      
      Bug: v8:12484
      Change-Id: I31f575a59811a83c7c1acb4c14bf5ded63a8f536
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540102Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79560}
      0719ace6
  4. 21 Mar, 2022 2 commits
    • Darius Mercadier's avatar
      Revert "Reland [compiler] Simplify "==0" branches in MachineOperatorReducer" · b3a91634
      Darius Mercadier authored
      This reverts commit 6b690a6b.
      
      Reason for revert: causes a few regressions here https://chromeperf.appspot.com/group_report?rev=79528
      
      Original change's description:
      > Reland [compiler] Simplify "==0" branches in MachineOperatorReducer
      >
      > This is a reland of 48b443f6.
      >
      > While fixing the initial CL, we stumbled upon a few bugs that
      > we had to fix:
      >
      >  - CommonOperatorReducer and SimplifiedOperatorReducer were applied
      >    before and after SimplifiedLowering, but always assumed that it
      >    was before SimplifiedLowering, and thus had the wrong semantics
      >    for branches in some cases. They now have an added parameter to
      >    know which semantics of branch they should use.
      >
      >  - The lowering of StaticAssert was wrong and could leave kHeapConstant
      >    in the assert (instead of machine Booleans).
      >
      > Original change's description:
      > > [compiler] Simplify "==0" branches in MachineOperatorReducer
      > >
      > > Bug: v8:12484
      > > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
      > > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > > Owners-Override: Tobias Tebbi <tebbi@chromium.org>
      > > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > > Cr-Commit-Position: refs/heads/main@{#79379}
      >
      > Bug: v8:12484
      > Change-Id: Ibbf5df96fce5ccb04868dc517539479bf69f5703
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3516869
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79528}
      
      Bug: v8:12484
      Change-Id: I457464d793e9c5af8448564aa3b46be863b96fbb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3540148
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79552}
      b3a91634
    • Jakob Gruber's avatar
      Remove dynamic map checks and custom deoptimization kinds · b2978927
      Jakob Gruber authored
      This CL removes:
      
      - Dynamic map checks aka minimorphic property loads (TF support,
        builtins).
      - "Bailout" deopts (= drop to the interpreter once, but don't
        throw out optimized code).
      - "EagerWithResume" deopts (= part of dynamic map check
        functionality, we call a builtin for the deopt check and deopt
        or resume based on the result).
      
      Fixed: v8:12552
      Change-Id: I492cf1667e0f54586690b2f72a65ea804224b840
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3401585
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79544}
      b2978927
  5. 18 Mar, 2022 2 commits
  6. 15 Mar, 2022 2 commits
  7. 14 Mar, 2022 1 commit
  8. 09 Mar, 2022 2 commits
    • Dominik Inführ's avatar
      [heap] Improve accounting of PagedSpace::CommittedPhysicalMemory() · 25981026
      Dominik Inführ authored
      Instead of using the high water mark for determining this metric, we use
      a bitset for all active/used system pages on a V8 heap page. Each time
      when allocating a LAB on a page, we add the pages of that memory range
      to that bitset. During sweeping we rebuild that bitset from scratch and
      replace it with the old one in case free pages are discarded by the GC.
      We DCHECK here that the sweeper only ever removes pages. This has the
      nice benefit of ensuring that we don't miss any allocations (like we
      do now for concurrent allocations).
      
      CommittedPhysicalMemory for a page is then calculated by counting the
      set bits in the bitset and multiplying it with the system page size.
      This should be simpler to verify and track the "real" effective size
      more precisely.
      
      One case where we are partially less precise than the current
      implementation is for LABs. In order to reduce complexity we now treat
      all pages of a LAB allocation as active immediately. In the current
      implementation we tried to only account the actual used part of the LAB
      when changing the LAB later. This is more complex to track correctly
      but also doesn't account the currently used LAB in effective size.
      
      Change-Id: Ia83df9ad5fbb852f0717c4c396b5074604bd21e9
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497363Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79428}
      25981026
    • Darius Mercadier's avatar
      Revert "[compiler] Simplify "==0" branches in MachineOperatorReducer" · 51ea5508
      Darius Mercadier authored
      This reverts commit 48b443f6.
      
      Reason for revert: https://bugs.chromium.org/p/chromium/issues/detail?id=1303902
      
      Original change's description:
      > [compiler] Simplify "==0" branches in MachineOperatorReducer
      >
      > Bug: v8:12484
      > Change-Id: I0667c7464c0dd71338bc199a24a69248a7a0a525
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3497303
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Owners-Override: Tobias Tebbi <tebbi@chromium.org>
      > Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79379}
      
      Bug: v8:12484
      Change-Id: I5114b2871a14444a84f6230aa1bd2113d32a2a83
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3510390
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Commit-Queue: Darius Mercadier <dmercadier@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79414}
      51ea5508
  9. 08 Mar, 2022 1 commit
  10. 07 Mar, 2022 2 commits
  11. 03 Mar, 2022 2 commits
  12. 02 Mar, 2022 1 commit
  13. 25 Feb, 2022 2 commits
  14. 24 Feb, 2022 1 commit
  15. 23 Feb, 2022 5 commits
  16. 22 Feb, 2022 1 commit
  17. 18 Feb, 2022 2 commits
    • Michael Achenbach's avatar
      Revert "[shared-struct] Prototype JS shared structs" · c1078b5e
      Michael Achenbach authored
      This reverts commit 1025bf26.
      
      Reason for revert: https://crbug.com/v8/12645
      
      Original change's description:
      > [shared-struct] Prototype JS shared structs
      >
      > Unlike the Stage 1 proposal, for simplicity the prototype does not add
      > any new syntax, instead opting for exposing a SharedStructType
      > constructor which takes an array of field names. This type constructor
      > returns constructors for shared structs.
      >
      > Shared structs can be shared across Isolates, are fixed layout, have no
      > prototype, have no .constructor, and can only store primitives and
      > other shared structs.
      >
      > The initial prototype does not have TurboFan support.
      >
      > Bug: v8:12547
      > Change-Id: I23bdd819940b42139692bcdb53d372099b0d4426
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3390643
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Marja Hölttä <marja@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Dominik Inführ <dinfuehr@chromium.org>
      > Commit-Queue: Shu-yu Guo <syg@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#79156}
      
      Bug: v8:12547
      Change-Id: I44f2b8bb7487b4d39ba1282585e0b2282501230f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3474676
      Auto-Submit: Michael Achenbach <machenbach@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Owners-Override: Michael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79170}
      c1078b5e
    • Samuel Groß's avatar
      Split V8_OS_MACOSX into V8_OS_DARWIN and V8_OS_MACOS · a1faaf06
      Samuel Groß authored
      Previously, V8_OS_MACOSX was, somewhat confusingly, also used for iOS.
      With this CL, V8_OS_DARWIN will be set on both macOS and iOS,
      V8_OS_MACOS only on macOS, and V8_OS_IOS only on iOS.
      
      This CL also renames V8_TARGET_OS_MACOSX to V8_TARGET_OS_MACOS and
      renames platform-xnu.cc to platform-darwin.cc.
      
      Change-Id: I4bcafc7c337586662114144f6c7ccf47d978da1f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3468577Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Commit-Queue: Samuel Groß <saelo@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79167}
      a1faaf06
  18. 17 Feb, 2022 1 commit
  19. 16 Feb, 2022 2 commits
  20. 15 Feb, 2022 2 commits
  21. 14 Feb, 2022 3 commits
  22. 10 Feb, 2022 1 commit
  23. 04 Feb, 2022 2 commits