1. 13 Sep, 2019 1 commit
  2. 12 Sep, 2019 1 commit
  3. 27 May, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Replace simple typedefs by using · a335f2ae
      Clemens Hammacher authored
      This replaces all typedefs that define types and not functions by the
      equivalent "using" declaration.
      
      This was done mostly automatically using this command:
      ag -l '\btypedef\b' src test | xargs -L1 \
           perl -i -p0e 's/typedef ([^*;{}]+) (\w+);/using \2 = \1;/sg'
      
      Patchset 2 then adds some manual changes for typedefs for pointer types,
      where the regular expression did not match.
      
      R=mstarzinger@chromium.org
      TBR=yangguo@chromium.org, jarin@chromium.org
      
      Bug: v8:9183
      Change-Id: I6f6ee28d1793b7ac34a58f980b94babc21874b78
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1631409
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61849}
      a335f2ae
  4. 21 May, 2019 1 commit
  5. 09 Apr, 2019 1 commit
  6. 27 Feb, 2019 1 commit
  7. 12 Dec, 2018 1 commit
  8. 27 Nov, 2018 1 commit
  9. 25 Nov, 2018 1 commit
  10. 22 Nov, 2018 1 commit
  11. 05 Nov, 2018 1 commit
    • 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
  12. 24 Oct, 2018 1 commit
    • peterwmwong's avatar
      Reland "[builtins] Fix Array.p.join length overflow and invalid string length handling" · 4e12baa6
      peterwmwong authored
      This is a reland of ec969ea3
      
      Temporarily removes high memory usage test.
      
      Original change's description:
      > [builtins] Fix Array.p.join length overflow and invalid string length handling
      >
      > - Fixes and simplify allocating the temporary fixed array for ToString-ed elements.
      >   - When the array size is greater than representable by an intptr, it overflowed into a negative value causing a non-negative assert to fail.
      >   - Simplify fallback behavior by always allocating a conservatively sized temporary fixed array. Previously, if the array had dictionary elements, the temporary fixed array was sized based on %GetNumberDictionaryNumberOfElements() and then resized when entering the fallback.
      >
      > - Fixes related invalid string length handling. When the running total of the resulting string length overflowed or exceeded String::kMaxLength, a RangeError is thrown. Previously, this thrown RangeError bypassed JoinStackPop and left the receiver on the stack.
      >
      > Bug: chromium:897404
      > Change-Id: I157b71ef04ab06125a5b1c3454e5ed3713bdb591
      > Reviewed-on: https://chromium-review.googlesource.com/c/1293070
      > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56907}
      
      Bug: chromium:897404
      Change-Id: I4995893f6f9724b26c231d05619ad65dbccc7223
      Reviewed-on: https://chromium-review.googlesource.com/c/1297675Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      Cr-Commit-Position: refs/heads/master@{#56946}
      4e12baa6
  13. 23 Oct, 2018 2 commits
    • Jakob Kummerow's avatar
      Revert "[builtins] Fix Array.p.join length overflow and invalid string length handling" · 7a975d11
      Jakob Kummerow authored
      This reverts commit ec969ea3.
      
      Reason for revert: test fails consistently on arm bots.
      I can't repro the failure locally, but it does consume ~512MB of memory (for a single string, I think?), so my guess is that the bots don't have enough contiguous address space.
      
      Original change's description:
      > [builtins] Fix Array.p.join length overflow and invalid string length handling
      > 
      > - Fixes and simplify allocating the temporary fixed array for ToString-ed elements.
      >   - When the array size is greater than representable by an intptr, it overflowed into a negative value causing a non-negative assert to fail.
      >   - Simplify fallback behavior by always allocating a conservatively sized temporary fixed array. Previously, if the array had dictionary elements, the temporary fixed array was sized based on %GetNumberDictionaryNumberOfElements() and then resized when entering the fallback.
      > 
      > - Fixes related invalid string length handling. When the running total of the resulting string length overflowed or exceeded String::kMaxLength, a RangeError is thrown. Previously, this thrown RangeError bypassed JoinStackPop and left the receiver on the stack.
      > 
      > Bug: chromium:897404
      > Change-Id: I157b71ef04ab06125a5b1c3454e5ed3713bdb591
      > Reviewed-on: https://chromium-review.googlesource.com/c/1293070
      > Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56907}
      
      TBR=danno@chromium.org,peter.wm.wong@gmail.com,jgruber@chromium.org,tebbi@chromium.org
      
      Change-Id: I8ca80bd75833aacc94ccb25ceb82bbc8880991db
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:897404
      Reviewed-on: https://chromium-review.googlesource.com/c/1297471Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56915}
      7a975d11
    • peterwmwong's avatar
      [builtins] Fix Array.p.join length overflow and invalid string length handling · ec969ea3
      peterwmwong authored
      - Fixes and simplify allocating the temporary fixed array for ToString-ed elements.
        - When the array size is greater than representable by an intptr, it overflowed into a negative value causing a non-negative assert to fail.
        - Simplify fallback behavior by always allocating a conservatively sized temporary fixed array. Previously, if the array had dictionary elements, the temporary fixed array was sized based on %GetNumberDictionaryNumberOfElements() and then resized when entering the fallback.
      
      - Fixes related invalid string length handling. When the running total of the resulting string length overflowed or exceeded String::kMaxLength, a RangeError is thrown. Previously, this thrown RangeError bypassed JoinStackPop and left the receiver on the stack.
      
      Bug: chromium:897404
      Change-Id: I157b71ef04ab06125a5b1c3454e5ed3713bdb591
      Reviewed-on: https://chromium-review.googlesource.com/c/1293070
      Commit-Queue: Peter Wong <peter.wm.wong@gmail.com>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56907}
      ec969ea3
  14. 16 Oct, 2018 1 commit
  15. 23 Aug, 2018 4 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
    • Simon Zünd's avatar
      Reland "[array] Move Array.p.sort to Torque and use TimSort instead of QuickSort" · 9e48a24f
      Simon Zünd authored
      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: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55325}
      9e48a24f
  16. 13 Aug, 2018 1 commit
  17. 10 Aug, 2018 1 commit
  18. 09 Aug, 2018 1 commit
  19. 08 Aug, 2018 1 commit
    • Tobias Tebbi's avatar
      [torque] add typeswitch statement · 91ef86f9
      Tobias Tebbi authored
      This adds a typeswitch statement
      
      typeswitch (e)
      case (x1 : Type1) {
        ...
      } case (x2 : Type2) {
      
      } ...
      ... case (xn : TypeN) {
        ...
      }
      
      This checks to which of the given types the result of evaluating e can
      be cast, in the order in which they are listed. So if an earlier
      type matches, a value of this type won't reach a later case.
      
      The type-checks are performed by calling the cast<T>() macro.
      The type of the argument passed to the cast macro is dependent on the
      case and excludes all types checked earlier. For example, in
      
      const x : Object = ...
      typeswitch (x)
      case (x : Smi) {
        ...
      } case (x : HeapNumber) {
        ...
      } case (x : HeapObject) {
        ...
      }
      
      there will be calls to cast<Smi>(Object) and
      cast<HeapNumber>(HeapObject), because after the Smi check we know that
      x has to be a HeapObject. With the refactored base.tq definition of
      cast, this will generate efficient code and avoid repeating the Smi
      check in the second case.
      
      The type system ensures that all cases are reachable and that the type
      given to the last case is safe without a runtime check (in other words,
      the union of all checked types covers the type of e).
      
      The cases can also be written as
      case (Type) { ... }
      , in which case the switched value is not re-bound with the checked
      type.
      
      Bug: v8:7793
      Change-Id: Iea4aed7465d62b445e3ae0d33f52921912e095e3
      Reviewed-on: https://chromium-review.googlesource.com/1156506
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarDaniel Clifford <danno@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54958}
      91ef86f9
  20. 07 Aug, 2018 1 commit
  21. 22 Jun, 2018 2 commits
  22. 20 Jun, 2018 2 commits
  23. 19 Jun, 2018 2 commits
  24. 14 Jun, 2018 1 commit
  25. 13 Jun, 2018 2 commits
  26. 07 Jun, 2018 1 commit
    • Simon Zünd's avatar
      Reland "[array] Use random middle element to determine pivot during sorting" · 3896cdc2
      Simon Zünd authored
      This is a reland of 91bab558
      
      This CL contains two major changes w.r.t to the original CL:
      
      The random state is removed from the Smi root list and we pre-seed the RNG
      on each sort with the length of the array.
      
      To cut down on the length of the arguments list and to keep track of the
      random state across recursive calls, we move most of the sort arguments into
      a FixedArray and reload from the array for each recursion.
      
      Original change's description:
      > [array] Use random middle element to determine pivot during sorting
      >
      > This CL adds a "random state" to the Smi Root list and implements a
      > basic Linear congruential pseudo random number generator in Torque.
      >
      > The RNG is used to determine the pivot element for sorting. This will
      > prevent the worst cases for certain data layouts.
      >
      > Drive-by-fix: Make sorting of ranges and execution pauses for profviz
      > deterministic by adding a secondary sorting criteria.
      >
      > Bug: v8:7382
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Ieb871e98e74bdb803f821b0cd35d2f67ee0f2868
      > Reviewed-on: https://chromium-review.googlesource.com/1082193
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Commit-Queue: Simon Zünd <szuend@google.com>
      > Cr-Commit-Position: refs/heads/master@{#53524}
      
      Bug: v8:7382
      Change-Id: Ia7bef7ed1c0e904ffe43bc428e702f64f9c6a60b
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1087888Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Simon Zünd <szuend@google.com>
      Cr-Commit-Position: refs/heads/master@{#53583}
      3896cdc2
  27. 29 May, 2018 1 commit
  28. 08 May, 2018 1 commit
  29. 27 Apr, 2018 1 commit
  30. 16 Apr, 2018 1 commit
    • Daniel Clifford's avatar
      Torque: Implement a DSL for CSA · a3353da8
      Daniel Clifford authored
      An overview of motivation behind Torque and some of its principles
      can be found here: https://bit.ly/2qAI5Ep
      
      Note that there is quite a bit of work left to do in order to get
      Torque production-ready for any non-trivial amount of code, but
      landing the prototype as-is will allow for much faster iteration.
      
      Bugs will be filed for all of the big-ticket items that are not
      landing blockers but called out in this patch as important to fix.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_nosnap_rel;luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Ib07af70966d5133dc57344928885478b9c6b8b73
      Reviewed-on: https://chromium-review.googlesource.com/845682
      Commit-Queue: Daniel Clifford <danno@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52618}
      a3353da8
  31. 06 Mar, 2018 1 commit
  32. 23 Feb, 2018 1 commit