1. 26 Feb, 2020 6 commits
    • Clemens Backes's avatar
      Revert "[wasm] Refactor callback triggering" · 6a2865d2
      Clemens Backes authored
      This reverts commit 0dc598df.
      
      Reason for revert: Fails the wasm-cache-test blink test.
      
      Original change's description:
      > [wasm] Refactor callback triggering
      > 
      > 1) Instead of passing three boolean values to |TriggerCallbacks|, pass
      >    one EnumSet which contains all events to trigger.
      > 2) Remember which events already happened, to avoid triggering them
      >    again.
      > 3) Compute triggered events once after the loop in |OnFinishedUnits|,
      >    instead of checking for every finished unit.
      > 4) When a new callback is registered, trigger all previous events
      >    immediately. This solves issue v8:10217.
      > 5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
      > 6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
      >    compiled (this is a minor performance optimization; we save taking
      >    and releasing a lock).
      > 7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
      >    |Mask| constexpr).
      > 
      > R=​ahaas@chromium.org
      > 
      > Bug: v8:10217
      > Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
      > Commit-Queue: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66459}
      
      TBR=ahaas@chromium.org,clemensb@chromium.org
      
      Change-Id: I564b053e898db5f7b51cefa4626c0625a225c89a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:10217
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2074638Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66461}
      6a2865d2
    • Clemens Backes's avatar
      [wasm] Refactor callback triggering · 0dc598df
      Clemens Backes authored
      1) Instead of passing three boolean values to |TriggerCallbacks|, pass
         one EnumSet which contains all events to trigger.
      2) Remember which events already happened, to avoid triggering them
         again.
      3) Compute triggered events once after the loop in |OnFinishedUnits|,
         instead of checking for every finished unit.
      4) When a new callback is registered, trigger all previous events
         immediately. This solves issue v8:10217.
      5) Replace |NotifyTopTierReady| by |AddCallback| which is identical now.
      6) Do not call |OnFinishedJSToWasmWrapperUnits| if no wrappers were
         compiled (this is a minor performance optimization; we save taking
         and releasing a lock).
      7) Drive-by: Make the |EnumSet| constructor really constexpr (by making
         |Mask| constexpr).
      
      R=ahaas@chromium.org
      
      Bug: v8:10217
      Change-Id: Ib3688a1687ad7b523e90efd73f4073e9f1193016
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072737
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66459}
      0dc598df
    • Georg Neis's avatar
      Revert "[builtins] stop using imprecise fdlibm pow" · 3aa52a22
      Georg Neis authored
      This reverts commit b12ba06e.
      
      Reason for revert:
      After further discussion we decided to stick with fdlibm.
      
      Original change's description:
      > [builtins] stop using imprecise fdlibm pow
      >
      > This CL reinstates the old pow implementation which calls out to the
      > system implementation of pow.
      >
      > Bug: v8:9622
      > Change-Id: I3df997888ced3fb8b5bd4b810098e967649aaa55
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1774898
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66303}
      
      TBR=yangguo@chromium.org,neis@chromium.org,hpayer@chromium.org,me@gus.host
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:9622
      Change-Id: I941f70c7432cd2fab86e0eadcb2e1a9ec8195e91
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072746
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66452}
      3aa52a22
    • Clemens Backes's avatar
      [base] Extend EnumSet · 1e4b0435
      Clemens Backes authored
      This extends EnumSet by
      1) adding element-wise operations (without first creating an EnumSet of
         that element in the caller),
      2) adding arithmetic assignment operators, and
      3) adding a subtraction operation which removes all elements in another
         EnumSet, or a single element.
      
      R=mlippautz@chromium.org
      
      Change-Id: Ibe694e9e111e506ad09cf9729fa0b0ba38430b79
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071874
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66451}
      1e4b0435
    • Georg Neis's avatar
      Revert "[builtins] Replace V8_INFINITY with its definition" · 51022eb8
      Georg Neis authored
      This reverts commit 73f91a2d.
      
      Reason for revert: Reverting b12ba06e
      
      Original change's description:
      > [builtins] Replace V8_INFINITY with its definition
      > 
      > V8_INFINITY is not defined here.
      > "src/common/globals.h" is also not allowed to be included
      > in this source file.
      > 
      > Change-Id: Ia3b14db8ac5099b6ce65839eb0fc59340dc59555
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2062930
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Commit-Queue: Milad Farazmand <miladfar@ca.ibm.com>
      > Cr-Commit-Position: refs/heads/master@{#66336}
      
      TBR=neis@chromium.org,clemensb@chromium.org,me@gus.host,miladfar@ca.ibm.com
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: Ia43c3f7f735dfb622d4f5464a52a142d19ddeb26
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2072745Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66449}
      51022eb8
    • Clemens Backes's avatar
      [base] Pass EnumSet by value · 151b85a0
      Clemens Backes authored
      EnumSet hold a single integral field, hence it should be passed by
      value. All users already do this, we are just inconsistent within the
      declaration of EnumSet itself.
      
      R=mlippautz@chromium.org
      
      Change-Id: Ic2cac35fbd8fe3e98c1fe135bd334547dca30ab5
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2071872Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66447}
      151b85a0
  2. 21 Feb, 2020 2 commits
  3. 20 Feb, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Avoid unnecessary jump tables · 1403fd7d
      Clemens Backes authored
      If multiple code spaces are created, each of them currently gets its own
      jump table (on 64 bit platforms). Since we try to allocate new code
      spaces right after existing ones, this is often not necessary. We could
      instead reuse the existing jump table(s).
      This saves code space for the unneeded jump tables and avoid the cost of
      patching the redundant jump tables when we replace code objects.
      
      This CL implements this by checking whether an existing jump table (or
      pair of far jump table and (near) jump table) fully covers a new code
      space, and reuses the existing jump table in that case.
      
      R=ahaas@chromium.org
      
      Change-Id: Id8751b9c4036cf8f85f9baa2b0be8b2cfb5716ff
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2043846Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66364}
      1403fd7d
  4. 19 Feb, 2020 1 commit
  5. 18 Feb, 2020 1 commit
  6. 14 Feb, 2020 1 commit
  7. 12 Feb, 2020 1 commit
  8. 10 Feb, 2020 2 commits
  9. 28 Jan, 2020 1 commit
    • Philip Pfaffe's avatar
      Improve iterator_range to take non-&& arguments · c51c9f7c
      Philip Pfaffe authored
      The current implementation takes forwarding reference arguments, which
      is fine when you call it with rvalues, like
      make_iterator_range(V.begin(), V.end()). If you call it with lvalues
      though, it doesn't do what you'd expect. ForwardIterator becomes a
      reference:
      
      Foo I = V.begin();
      make_iterator_range(I, I); //ForwardIterator is deduced as Foo&
      
      Since iterator are supposed to be small, no harm in passing them by
      value.
      
      Change-Id: I151c87304949d810c72c42f60e9d1a7151f61f83
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2020780
      Commit-Queue: Philip Pfaffe <pfaffe@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66007}
      c51c9f7c
  10. 16 Jan, 2020 1 commit
  11. 15 Jan, 2020 1 commit
  12. 10 Jan, 2020 1 commit
    • Clemens Backes's avatar
      [base] Improve logging for long error messages · 193c08ad
      Clemens Backes authored
      When comparing objects which get printed to very long strings (e.g.
      collections like vectors), it's much more readable if they get printed
      to individual lines. Differences are much easier to spot then.
      
      This CL refactors the CHECK/DCHECK macros to print the left hand side
      and right-hand side in individual lines if any of them is longer than 50
      characters.
      
      To that end, the {PrintCheckOperand} method (only used from
      {MakeCheckOpString}) is changed to return the string directly instead of
      printing to an output stream.
      
      R=mlippautz@chromium.org
      
      Change-Id: I6e24a5cbfeb1af53fa0aca2828e23f642b15569c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1991866Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65705}
      193c08ad
  13. 20 Dec, 2019 1 commit
    • Tobias Tebbi's avatar
      [torque] multiple arrays in one object · 59e8d45a
      Tobias Tebbi authored
      This allows the definition of classes with several arrays and ports
      SmallOrderedHashTable subclasses to Torque as an example, including
      the existing CSA allocation functions for them.
      
      Overview of changes:
      - Introduce ResidueClass to encapsulate the modulo-arithmetic
        necessary to do alignment checks.
      - Add MachineOperatorReducer to the CSA pipeline to address now
        missing CSA ad-hoc constant folding that got blocked by a
        temporary phi.
      - Allow assignments to references to structs. This is needed to
        initialize the data_table part of SmallOrderedHashMap.
      - Make the NumberLiteralExpression AST-node store a double instead
        of a string. This is necessary to detect arrays with constant size
        used for padding.
      - Turn offsets into base::Optional<size_t> to ensure we don't use
        an invalid or statically unknown offset.
      - Remove CreateFieldReferenceInstruction since it doesn't work for
        complex offset computations and the logic can be expressed better
        in ImplementationVisitor.
      - Validate alignment of structs embedded in classes.
      
      Bug: v8:10004 v8:7793
      Change-Id: Ifa414b42278e572a0c577bf9da3d37f80771a258
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1958011
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarNico Hartmann <nicohartmann@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#65538}
      59e8d45a
  14. 19 Dec, 2019 1 commit
  15. 13 Dec, 2019 1 commit
  16. 09 Dec, 2019 1 commit
  17. 06 Dec, 2019 1 commit
  18. 28 Nov, 2019 1 commit
  19. 26 Nov, 2019 1 commit
  20. 25 Nov, 2019 1 commit
  21. 15 Nov, 2019 1 commit
  22. 12 Nov, 2019 2 commits
  23. 08 Nov, 2019 2 commits
  24. 30 Oct, 2019 1 commit
  25. 22 Oct, 2019 2 commits
  26. 18 Oct, 2019 1 commit
  27. 12 Oct, 2019 1 commit
  28. 11 Oct, 2019 2 commits
  29. 09 Oct, 2019 1 commit