1. 23 Jan, 2019 1 commit
  2. 21 Jan, 2019 1 commit
  3. 08 Jan, 2019 1 commit
  4. 27 Dec, 2018 1 commit
  5. 19 Dec, 2018 1 commit
  6. 12 Dec, 2018 1 commit
  7. 11 Dec, 2018 1 commit
  8. 04 Dec, 2018 1 commit
  9. 27 Nov, 2018 1 commit
  10. 26 Nov, 2018 1 commit
  11. 20 Nov, 2018 1 commit
    • Tobias Tebbi's avatar
      [torque] enable multiple inheritance from Torque-generated assemblers · 00ffe4a6
      Tobias Tebbi authored
      This enables more seamless interop between Torque and CSA:
      
      Since CodeStubAssembler can now inherit from the Torque base namespace,
      macros defined in the base namespace can be used in CodeStubAssembler
      macros, even without qualification.
      At the same time, macros in the base namespace can refer to
      CodeStubAssembler macros. The only new limitation is that types defined
      in code-stub-assembler.h cannot be referenced in the signature of macros
      defined in the base namespace, since this would produce a cyclic header
      dependency. A work-around for this woud be to put such types (like int31
      in this CL) into a separate header included by both. I (mis-)used
      code-assembler.h for that.
      Another side-effec is that types and enums defined in CodeStubAssembler
      have to be accessed in a qualified way from Torque.
      
      Other assemblers can now inherit from their Torque equivalent, so
      porting macros into the corresponding Torque namespace doesn't require
      any change to the existing use-sites.
      
      To avoid C++ ambiguities, the Torque-generated assemblers must not define
      anything also defined in Code(Stub)Assembler. This includes the type
      aliases for TNode, PLabel, ...
      My workaround is to qualify everything in the generated C++.
      
      As a drive-by fix, I had to change the formatter to avoid a situation
      where it doesn't compute a fixed point: putting a keyword at the
      beginning of a line removes the '\s' in front of it, so I replaced that
      with '\b'.
      
      Bug: v8:7793
      Change-Id: If3b9e9ad967a181b380a10d5673615606abd1041
      Reviewed-on: https://chromium-review.googlesource.com/c/1341955Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57645}
      00ffe4a6
  12. 19 Nov, 2018 2 commits
  13. 15 Nov, 2018 1 commit
  14. 13 Nov, 2018 2 commits
  15. 09 Nov, 2018 1 commit
  16. 06 Nov, 2018 1 commit
  17. 05 Nov, 2018 2 commits
    • Georg Neis's avatar
      Reland "Add fast paths to Array.from." · 87e1b85d
      Georg Neis authored
      This is a reland of 7bd9eb7e. No changes
      to that patch other than adding a test case. The bug that lead to the
      revert has been fixed in 9bf8f72c.
      
      Original change's description:
      > Add fast paths to Array.from.
      >
      > This reuses the fast path from IterableToList for Array.from. The fast
      > paths are taken when .from is called with the receiver Array and the only
      > argument is the iterable (no mapping function or thisArg).
      >
      > Bug: v8:7980
      > Change-Id: I975b0c5e3f838262d7b71ad4dec5111fb031d746
      > Reviewed-on: https://chromium-review.googlesource.com/c/1297322
      > Commit-Queue: Hai Dang <dhai@google.com>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56993}
      
      Bug: v8:7980
      Change-Id: Id081837946c0989ec2b31ce991f48d09e0219b09
      Reviewed-on: https://chromium-review.googlesource.com/c/1317586Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Georg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57240}
      87e1b85d
    • Tobias Tebbi's avatar
      [torque] qualified access to CSA assemblers · 23b48920
      Tobias Tebbi authored
      No longer use inheritance to associate Torque-generated assemblers
      with corresponding CSA subclasses. Instead, all references to CSA
      and CSA-derived assemblers are now explicitly qualified, by generating
      a short-lived assembler instance in-place. As a consequence, Torque
      files have to mention the assembler external macros live in.
      The CodeStubAssembler is the default for this and can be omitted.
      As a drive-by cleanup, also distinguish between names that are emitted
      in C++ and names that are intended to be read in error messages. This
      is relevant for generic instantiations, where the generated names are
      rather unreadably mangled.
      
      As a follow-up, it will be easy to allow for qualified access to
      different modules, thus implementing full namespace semantics for
      modules.
      
      Bug: v8:7793
      Change-Id: Ie6f1b6b549b510fb49be2442393d898d5f130950
      Reviewed-on: https://chromium-review.googlesource.com/c/1309636
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57235}
      23b48920
  18. 02 Nov, 2018 1 commit
    • Adam Klein's avatar
      Revert "Add fast paths to Array.from." · f88a1d87
      Adam Klein authored
      This reverts commit 7bd9eb7e.
      
      Reason for revert: crashes on canary, see https://crbug.com/901010
      
      Original change's description:
      > Add fast paths to Array.from.
      >
      > This reuses the fast path from IterableToList for Array.from. The fast
      > paths are taken when .from is called with the receiver Array and the only
      > argument is the iterable (no mapping function or thisArg).
      >
      > Bug: v8:7980
      > Change-Id: I975b0c5e3f838262d7b71ad4dec5111fb031d746
      > Reviewed-on: https://chromium-review.googlesource.com/c/1297322
      > Commit-Queue: Hai Dang <dhai@google.com>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56993}
      
      TBR=neis@chromium.org,dhai@google.com
      Bug: v8:7980, chromium:901010, v8:8410
      
      Change-Id: I5e73267f0b3a905582c57a6fad1459c031600a73
      Reviewed-on: https://chromium-review.googlesource.com/c/1315935
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57221}
      f88a1d87
  19. 31 Oct, 2018 2 commits
  20. 30 Oct, 2018 1 commit
    • Jakob Gruber's avatar
      [array] Keep large array allocations on the fast path · 9eca2d3c
      Jakob Gruber authored
      Until this CL, CSA array allocation methods only handled arrays that
      could fit into new space. This behavior was preserved in a bunch
      of related builtins (e.g. Array.p.map), which completely bailed out to
      the slow path if larger allocations were required.
      
      This CL adds large object space handling to array allocation functions,
      which means that callers can use the more permissive kMaxFastArrayLength
      boundary instead of kInitialMaxFastElementsArray.
      
      Bug: chromium:890599
      Change-Id: Idabb0ef232c2896cd453e2ae10b479bf24cbb1c1
      Reviewed-on: https://chromium-review.googlesource.com/c/1301483
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57124}
      9eca2d3c
  21. 26 Oct, 2018 1 commit
  22. 25 Oct, 2018 1 commit
  23. 24 Oct, 2018 2 commits
  24. 18 Oct, 2018 1 commit
  25. 11 Oct, 2018 1 commit
  26. 28 Sep, 2018 1 commit
    • Daniel Clifford's avatar
      Clean up common argument objects that share length property · 64e8a948
      Daniel Clifford authored
      This CL adds a bit more rigor to the handling of length properties
      in JSObject-derived classes that explicitly contain that property
      inline.
      
      This involves:
      - Introducing a new superclass of JSArgumentsObject called
        JSArgumentsObjectWithLength that is shared with other object
        instances that also have a fixed length property.
      - Adding JSArgumentsObjectWithLength to the type hierarchy in Torque,
        including adding fast-cases for leading the length property for all
        classes deriving from JSObjectWithLength.
      - Adding more rigor to Context and NativeContext handling in base.tq.
        This is useful for the map checks required to verify objects are
        argument object types derived from JSArgumentsObjectWithLength.
      
      Change-Id: I2f0a20601ffcb90b3767cbaeb766e9998d3462ec
      Reviewed-on: https://chromium-review.googlesource.com/1248661
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56289}
      64e8a948
  27. 25 Sep, 2018 1 commit
    • Hai Dang's avatar
      Add fast path for cloning by iterating fast holey arrays. · 9f7ec7d4
      Hai Dang authored
      This fast path copies the backing store and replaces holes with undefined.
      In the case where the array is holey but there is no actual holes, the
      resulting array is of the same elements kind as the source array. If a hole
      does appear, the resulting array will be of PACKED_ELEMENTS kind so that it
      can contain undefined.
      
      The builtin CloneFastJSArrayFillingHoles includes this fast path, but
      CloneFastJSArray does not (it still behaves as before). In case of fast
      packed arrays, CloneFastJSArrayFillingHoles behaves the same as
      CloneFastJSArray.
      
      Bug: chromium:881273, v8:7980
      Change-Id: I49c641c1a673313f06aeed93077031ab6b017b6d
      Reviewed-on: https://chromium-review.googlesource.com/1236573
      Commit-Queue: Hai Dang <dhai@google.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56209}
      9f7ec7d4
  28. 21 Sep, 2018 1 commit
    • Jakob Kummerow's avatar
      Fix building with GCC 7.x and 8.x · 9ed4b965
      Jakob Kummerow authored
      GCC 7.x doesn't like it (-Werror=subobject-linkage) when a class
      either derives from a class or has a member field of a type that
      was declared in an anonymous namespace.
      It is also opposed (-Werror=attributes) to visibility attributes
      being defined at explicit template instantiations.
      GCC 8.x further has reservations (-Werror=class-memaccess) about
      letting memset/memcpy modify areas within non-POD objects.
      
      Change-Id: Ic5107bb5ee3af6233e3741e3ef78d03a0a84005a
      Reviewed-on: https://chromium-review.googlesource.com/1208306
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56106}
      9ed4b965
  29. 20 Sep, 2018 1 commit
  30. 18 Sep, 2018 1 commit
  31. 10 Sep, 2018 1 commit
  32. 05 Sep, 2018 1 commit
    • Hai Dang's avatar
      Reland "[interpreter] Add bytecode for leading array spreads." · 5f8a4272
      Hai Dang authored
      This is a reland of 1c48d52b.
      
      It turned out that IterableToList doesn't always behave according to
      the ES operation with the same name. Specifically, it allows holey arrays
      to take its fast path, which produces an output array with holes where
      actually "undefined" elements should appear.
      
      This CL changes the version of IterableToList that is used for spreads
      (IterableToListWithSymbolLookup) such that holey arrays take the slow path.
      It also includes tests for such situations.
      
      Original change's description:
      > [interpreter] Add bytecode for leading array spreads.
      >
      > This CL improves the performance of creating [...a, b] or [...a].
      > If the array literal has a leading spread, this CL emits the bytecode
      > [CreateArrayFromIterable] to create the literal. CreateArrayFromIterable
      > is implemented by [IterableToListDefault] builtin to create the initial
      > array for the leading spread. IterableToListDefault has a fast path to
      > clone efficiently if the spread is an actual array.
      >
      > The bytecode generated is now shorter. Bytecode generation is refactored
      > into to BuildCreateArrayLiteral, which allows VisitCallSuper to benefit
      > from this optimization also.
      > For now, turbofan also lowers the bytecode to the builtin.
      >
      > The idiomatic use of [...a] to clone the array a now performs better
      > than a simple for-loop, but still does not match the performance of slice.
      >
      > Bug: v8:7980
      >
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Ibde659c82d3c7aa1b1777a3d2f6426ac8cc15e35
      > Reviewed-on: https://chromium-review.googlesource.com/1181024
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Sigurd Schneider <sigurds@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Georg Neis <neis@chromium.org>
      > Commit-Queue: Georg Neis <neis@chromium.org>
      > Commit-Queue: Hai Dang <dhai@google.com>
      > Cr-Commit-Position: refs/heads/master@{#55520}
      
      Bug: v8:7980
      Change-Id: I0b5603a12d2b588327658bf0a9b214bd0f22e237
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1201882
      Commit-Queue: Hai Dang <dhai@google.com>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55639}
      5f8a4272
  33. 23 Aug, 2018 3 commits
    • Simon Zünd's avatar
      Reland ^2 "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · fa11e2ac
      Simon Zünd authored
      This is a reland of 9e48a24f
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      >
      > The CL was reverted because it broke some tests in ChromeOS.
      >
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      >
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      Bug: v8:7382, v8:7624
      Change-Id: I297611f45c09967e0f6961156b0c9ebdebc7053f
      Reviewed-on: https://chromium-review.googlesource.com/1186801
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55360}
      fa11e2ac
    • Maya Lekova's avatar
      Revert "Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"" · 8e43b9c0
      Maya Lekova authored
      This reverts commit 9e48a24f.
      
      Reason for revert: Possibly breaking the V8-Blink Mac bot - https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8-Blink%20Mac/15097
      
      Original change's description:
      > Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort"
      > 
      > The CL was reverted because it broke some tests in ChromeOS.
      > 
      > > [array] Move Array.p.sort to Torque and use TimSort instead of QuickSort
      > >
      > > This CL changes the sorting algorithm used in Array.p.sort from
      > > QuickSort to TimSort (implemented in Torque).
      > >
      > > Detailed performance results can be found here: https://goo.gl/4E733J
      > >
      > > To save on code space, fast-paths are implemented as sets of
      > > function pointers instead of specializing generics.
      > >
      > > R=cbruni@chromium.org, jgruber@chromium.org
      > >
      > > Bug: v8:7382, v8:7624
      > > Change-Id: I7cd4287e4562d84ab7c79c58ae30780630f976de
      > > Reviewed-on: https://chromium-review.googlesource.com/1151199
      > > Commit-Queue: Simon Zünd <szuend@google.com>
      > > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#55003}
      > 
      > Bug: v8:7382, v8:7624
      > Change-Id: Ic7a3230f3708177774b0760f08b7659d83ec5505
      > Reviewed-on: https://chromium-review.googlesource.com/1184901
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55325}
      
      TBR=jgruber@chromium.org,szuend@google.com
      
      Change-Id: Ie7e2af57a6480aa0504ba21ec98ee825d7ac74fe
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7382, v8:7624
      Reviewed-on: https://chromium-review.googlesource.com/1186601Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Maya Lekova <mslekova@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55355}
      8e43b9c0
    • Simon Zünd's avatar
      Revert "[array] Prepare Array.p.shift for removal of the JavaScript fall-back" · 28afdca6
      Simon Zünd authored
      This reverts commit f4ca3fc5.
      
      Reason for revert: Since TF (js-call-reducer) calls into the C++ builtin, it is easier (cleaner for now) to implement the baseline version in C++ instead of Torque.
      
      Original change's description:
      > [array] Prepare Array.p.shift for removal of the JavaScript fall-back
      > 
      > This CL changes the ArrayPrototypeShift builtin to a CSA macro which
      > is used in a newly created Torque builtin.
      > 
      > This is in preparation for removing the JavaScript fall-back, which
      > will be replaced by a baseline Torque implementation.
      > 
      > R=​cbruni@chromium.org, jgruber@chromium.org
      > 
      > Bug: v8:7624
      > Change-Id: I9b7898beea2802cc02d394e040a1e500387cf108
      > Reviewed-on: https://chromium-review.googlesource.com/1169172
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Cr-Commit-Position: refs/heads/master@{#55036}
      
      TBR=cbruni@chromium.org,jgruber@chromium.org,szuend@google.com
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7624
      Change-Id: I4929eefaa90ff8681bc8ae20e3ea3fe84ee7f1e8
      Reviewed-on: https://chromium-review.googlesource.com/1186342Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Simon Zünd <szuend@google.com>
      Cr-Commit-Position: refs/heads/master@{#55345}
      28afdca6