1. 10 Sep, 2018 1 commit
  2. 02 Sep, 2018 1 commit
  3. 29 Aug, 2018 1 commit
    • Maya Lekova's avatar
      [turbofan] Introduce a CheckStringAdd node instead of cons string lowering · 6a7872b7
      Maya Lekova authored
      The new node is introduced for literal string addition and calling
      String.prototype.concat in the typed lowering phase. It later might get optimized
      away during redundancy elimination, keeping the performance of already existing
      benchmarks with string addition. In case the operation is about to throw
      (due to too long string being constructed) we just deoptimize, reusing
      the interpreter logic for creating the error.
      
      Modify relevant mjsunit and unit tests for string concatenation.
      
      Bug: v8:7902
      Change-Id: Ie97d39534df4480fa8d4fe3ba276d02ed5e750e3
      Reviewed-on: https://chromium-review.googlesource.com/1193342
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55482}
      6a7872b7
  4. 28 Aug, 2018 1 commit
  5. 16 Aug, 2018 2 commits
  6. 14 Aug, 2018 1 commit
  7. 13 Aug, 2018 1 commit
  8. 25 Jul, 2018 1 commit
  9. 24 Jul, 2018 1 commit
  10. 23 Jul, 2018 1 commit
  11. 09 Jul, 2018 1 commit
    • Théotime Grohens's avatar
      [turbofan] Add DataView setters in TurboFan · c4323e08
      Théotime Grohens authored
      This CL completes the implementation of DataView prototype methods
      in TurboFan, by implementing the Uint8, Int8, Uint16, Int16,
      Uint32, Int32, Float32 and Float64 setters.
      
      DataView performance is now ahead of the equivalent TypedArray wrapper,
      and is now expected to at least match TypedArray performance in
      the general case as well.
      
      This CL also adds a test file in the compiler directory, to make
      sure that the setters actually behave correctly.
      
      Change-Id: I4ad4341c6b9b9d461348b62216f37a73abe321e8
      Reviewed-on: https://chromium-review.googlesource.com/1128867Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Théotime Grohens <theotime@google.com>
      Cr-Commit-Position: refs/heads/master@{#54331}
      c4323e08
  12. 06 Jul, 2018 1 commit
  13. 05 Jul, 2018 1 commit
  14. 03 Jul, 2018 1 commit
  15. 26 Jun, 2018 1 commit
  16. 21 Jun, 2018 1 commit
  17. 24 May, 2018 2 commits
  18. 18 May, 2018 1 commit
  19. 09 May, 2018 2 commits
  20. 10 Apr, 2018 1 commit
    • Sigurd Schneider's avatar
      [mjsunit] Fix flakyness in mjsunittest · 79b5f0b5
      Sigurd Schneider authored
      This mjsunittest assumed specific internal types (i.e. Smi)
      for certain fields; it generates some dozens of variants of
      the test using new Function, but used the same property names
      in all of them. This causes V8 to sometimes learn more general
      types for fields (i.e. unboxed double), which the test did not
      expect. This commit uses unique field names for each of the test
      variants.
      
      
      Change-Id: Ib1ecb3ae33a57c8a1293a29a2233dad4e16a39fb
      Reviewed-on: https://chromium-review.googlesource.com/1004897
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52528}
      79b5f0b5
  21. 04 Apr, 2018 1 commit
  22. 22 Mar, 2018 1 commit
  23. 19 Mar, 2018 1 commit
  24. 16 Mar, 2018 3 commits
  25. 15 Mar, 2018 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Teach TurboFan about the TypedArray constructor. · 0875778f
      Benedikt Meurer authored
      This introduces a new JSCreateTypedArray operator, backed by a dedicated
      CreateTypedArray builtin, and adds support to lowering new TypedArray
      calls to this operator. This way we avoid the overhead of going through
      the generic construct stub machinery for hot code. This not only
      recovers the performance regression on the typed array constructor
      benchmarks, but even improves slightly beyond what we had in 6.6.
      
      We might in the future try to fully inline the TypedArray constructor
      into optimized code for certain cases.
      
      Bug: chromium:820726, v8:7503, v8:7518
      Change-Id: Ied465924d5695db576d533792f1db68456b9b5ea
      Reviewed-on: https://chromium-review.googlesource.com/959010
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51973}
      0875778f
  26. 10 Mar, 2018 1 commit
    • Tobias Tebbi's avatar
      [turbofan] escape analysis: no longer remove TypeGuard nodes · 94bbb8bb
      Tobias Tebbi authored
      The analysis phase used to skip TypeGuard nodes, which are
      normally re-introduced by the reduction phase. However, phi nodes
      are created during the analysis phase already, and so it could happen
      that a phi input skips a TypeGuard.
      
      This CL solves the problem by not removing TypeGuard nodes in the first
      place, but only forwarding the VirtualObject. This is analogous to how
      we already treat FinishRegion nodes, which are similar in that they are
      a renaming too.
      
      Bug: chromium:741225
      Change-Id: Icf8aa2d40a30d89788d875b37b9986111f9c966f
      Reviewed-on: https://chromium-review.googlesource.com/958442
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51863}
      94bbb8bb
  27. 02 Mar, 2018 1 commit
  28. 27 Feb, 2018 1 commit
  29. 23 Feb, 2018 1 commit
  30. 21 Feb, 2018 1 commit
  31. 20 Feb, 2018 4 commits
  32. 13 Feb, 2018 1 commit
    • Benedikt Meurer's avatar
      [builtins] Refactor the promise resolution and rejection logic. · c0412961
      Benedikt Meurer authored
      This introduces dedicated builtins
      
        - FulfillPromise,
        - RejectPromise, and
        - ResolvePromise,
      
      which perform the corresponding operations from the language
      specification, and removes the redundant entry points and the
      excessive inlining of these operations into other builtins. We
      also add the same logic on the C++ side, so that we don't need
      to go into JavaScript land when resolving/rejecting from the
      API.
      
      The C++ side has a complete implementation, including full support
      for the debugger and the current PromiseHook machinery. This is to
      avoid constantly crossing the boundary for those cases, and to also
      simplify the CSA side (and soon the TurboFan side), where we only
      do the fast-path and bail out to the runtime for the general handling.
      
      On top of this we introduce %_RejectPromise and %_ResolvePromise,
      which are entry points used by the bytecode and parser desugarings
      for async functions, and also used by the V8 Extras API. Thanks to
      this we can uniformly optimize these in TurboFan, where we have
      corresponding operators JSRejectPromise and JSResolvePromise, which
      currently just call into the builtins, but middle-term can be further
      optimized, i.e. to skip the "then" lookup for JSResolvePromise when
      we know something about the resolution.
      
      In TurboFan we can also already inline the default PromiseCapability
      [[Reject]] and [[Resolve]] functions, although this is not as effective
      as it can be right now, until we have inlining support for the Promise
      constructor (being worked on by petermarshall@ right now) and/or SFI
      based CALL_IC feedback.
      
      Overall this change is meant as a refactoring without significant
      performance impact anywhere; it seems to improve performance of
      simple async functions a bit, but otherwise is neutral.
      
      Bug: v8:7253
      Change-Id: Id0b979f9b2843560e38cd8df4b02627dad4b6d8c
      Reviewed-on: https://chromium-review.googlesource.com/911632Reviewed-by: 's avatarSathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51260}
      c0412961