1. 29 Sep, 2020 1 commit
  2. 17 Aug, 2020 1 commit
  3. 31 Jul, 2020 4 commits
  4. 28 Jul, 2020 1 commit
  5. 24 Jul, 2020 2 commits
  6. 21 Jul, 2020 1 commit
    • Igor Sheludko's avatar
      [zone-stats] Implement collecting per-object-type zone stats · 627b8781
      Igor Sheludko authored
      ... behind --trace-zone-type-stats flag.
      
      Per-object-type statistics requires the following GN args:
        v8_enable_precise_zone_stats = true
        use_rtti = true
      
      When precise zone stats is enabled, the used zone memory value is
      calculated more precisely, in particular it takes into account
      the state of the active segment. By default, the used memory in
      the active segment is not taken into account because of performance
      overhead.
      
      Bug: v8:10572
      Change-Id: I938d9e264cfe6a8b63a89db87d187d8e2be63c8b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2281006
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68972}
      627b8781
  7. 17 Jul, 2020 1 commit
  8. 16 Jul, 2020 3 commits
  9. 15 Jul, 2020 1 commit
  10. 13 Jul, 2020 1 commit
  11. 10 Jul, 2020 2 commits
  12. 08 Jul, 2020 1 commit
  13. 05 Jun, 2020 2 commits
  14. 13 Dec, 2019 1 commit
  15. 26 Sep, 2019 1 commit
  16. 26 Jul, 2019 1 commit
  17. 24 Jul, 2019 1 commit
  18. 08 Jul, 2019 3 commits
  19. 19 Jun, 2019 1 commit
  20. 12 Jun, 2019 1 commit
    • Nico Weber's avatar
      win: Make v8 build with /Zc:twoPhase, and improve a comment. · c6e6c2c6
      Nico Weber authored
      The C++ standard says that template functions should be parsed immediately,
      and only type-dependent things should be deferred.
      
      cl.exe (MSVC's compiler) instead deferred parsing of all template functions
      until the end of the translation unit, and unreferenced template functions
      are not parsed at all. clang-cl emulates cl.exe's behavior.
      
      Recently, cl.exe (and clang-cl) grew a /Zc:twoPhase flag that opts in to the
      standards-conforming behavior, and system headers are now clean enough
      to build with this flag set.
      
      This cleans up v8 to also build with this flag. There was just a single issue:
      RecyclingZoneAllocator() is unused and contains invalid code: It calls
      the superclass ctor using `ZoneAllocator(nullptr, nullptr)`, when it should
      be doing `ZoneAllocator<T>(nullptr, nullptr)`. With /Zc:twoPhase, this is
      now a parsing error. However, since the RecyclingZoneAllocator() default
      constructor isn't used anywhere, just delete it.
      
      Finally, improve the comment for ZoneAllocator's default constructor to
      explain why it's needed on Windows.
      
      Bug: chromium:969702
      Change-Id: I7a516afde67fe090a512d7c7214a3c6932754aca
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1652503
      Auto-Submit: Nico Weber <thakis@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62108}
      c6e6c2c6
  21. 05 Jun, 2019 1 commit
    • Toon Verwaest's avatar
      Reland "[zone] Use 32kb instead of 1MB as high zone page size" · 2d441185
      Toon Verwaest authored
      This is a reland of a0486202.
      It turns out that this gives ~2x speedup on highly parallel WebAssembly
      compilation, so let's try again landing this in isolation.
      
      Original change's description:
      > [zone] Use 32kb instead of 1MB as high zone page size
      >
      > It seems that allocating smaller pages is actually quite a bit faster than
      > larger pages, probably because they can be cached by malloc. Let's see what the
      > bots say.
      >
      > In a follow-up I'll check whether the segment-pool is actually beneficial or
      > whether we should just remove it.
      >
      > This also drops SegmentSize::kLarge as a way to make compilation deterministic.
      > Turns out that by now we need >8mb anyway, and the previous 1mb wasn't enough.
      > At the same time the compiler was fixed to not rely on virtual addresses of
      > zone objects anymore, and there's a bot checking whether the snapshot is
      > determistic.
      >
      > Change-Id: I38cbb0d209d68b3671fd38763b42714811f4223e
      > Reviewed-on: https://chromium-review.googlesource.com/c/1346370
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#57683}
      
      Change-Id: I243ba741f0968879b4cfe9f366d81ddc53a9bf27
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1645326Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62007}
      2d441185
  22. 30 May, 2019 1 commit
  23. 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
  24. 24 May, 2019 1 commit
  25. 23 May, 2019 2 commits
  26. 21 May, 2019 1 commit
  27. 30 Apr, 2019 1 commit
  28. 29 Apr, 2019 1 commit
    • Clemens Hammacher's avatar
      [cleanup] Use Vector::begin instead of Vector::start · 4b0f9c85
      Clemens Hammacher authored
      Our {Vector} template provides both {start} and {begin} methods. They
      return exactly the same value. Since the {begin} method is needed for
      iteration, and is also what standard containers provide, this CL
      switches all uses of the {start} method to use {begin} instead.
      
      Patchset 1 was auto-generated by using this clang AST matcher:
          callExpr(
              callee(
                cxxMethodDecl(
                  hasName("start"),
                  ofClass(hasName("v8::internal::Vector")))
              ),
              argumentCountIs(0))
      
      Patchset 2 was created by running clang-format. Patchset 3 then
      removes the now unused {Vector::start} method.
      
      R=jkummerow@chromium.org
      TBR=mstarzinger@chromium.org,yangguo@chromium.org,verwaest@chromium.org
      
      Bug: v8:9183
      Change-Id: Id9f01c92870872556e2bb3f6d5667463b0e3e5c6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1587381Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61081}
      4b0f9c85
  29. 15 Apr, 2019 1 commit
    • Tom Anderson's avatar
      Avoid libc++ assert failure when building with _LIBCPP_DEBUG=0 · 4dd01774
      Tom Anderson authored
      libc++ will assert when indexing one element past the end of a vector, but V8
      uses this as the end iterator for ScopedPtrList.  Similarly, when there's no
      elements in the vector, v[0] will also assert, so ScopedPtrList::begin() needs
      to be updated too.  This CL changes ScopedPtrList to use std::vector::data() to
      get the iterators.
      
      BUG=chromium:923166
      TBR=machenbach
      
      Change-Id: Ic6a5176611d52ed592da743ecce44287c452b379
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1565543
      Commit-Queue: Thomas Anderson <thomasanderson@chromium.org>
      Reviewed-by: 's avatarNico Weber <thakis@chromium.org>
      Auto-Submit: Thomas Anderson <thomasanderson@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60851}
      4dd01774