1. 26 Jul, 2019 1 commit
  2. 24 Jul, 2019 1 commit
  3. 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
  4. 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
  5. 24 May, 2019 1 commit
  6. 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
  7. 03 Apr, 2019 1 commit
  8. 08 Mar, 2019 1 commit
  9. 04 Mar, 2019 1 commit
  10. 26 Feb, 2019 1 commit
  11. 23 Jan, 2019 1 commit
  12. 21 Jan, 2019 1 commit
  13. 08 Jan, 2019 1 commit
    • Toon Verwaest's avatar
      [parser] Disambiguate variables through expression-scope · f9529f6b
      Toon Verwaest authored
      Previously we'd always push variable proxies into the unresolved list of the
      current scope, and possibly delete them from the list later in case they end up
      being declarations. If variables become assigned, there were two ways to mark
      them as such: The preparser would marked the variables tracked on the
      PreParserExpression, and the parser would traverse the LHS AST to find and mark
      all variables.
      
      After this CL, if the scope already knows it's tracking declarations, the
      variables are never added to the unresolved list in the first place. If the
      scope is ambigous, it tracks the variable proxies on the side and only adds
      them to the unresolved list if they end up being references rather than
      declarations. The same list is now used to bulk mark all LHS variables as
      assigned; uniformely for both the parser and the preparser.
      
      In a next step we'll also use the scope to create declarations. That way we can
      stop tracking variables_ on PreParserExpression altogether.
      
      Change-Id: I6ada37006cc2e066731f29cd4ea314550fc7959f
      Reviewed-on: https://chromium-review.googlesource.com/c/1397669
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58629}
      f9529f6b
  14. 19 Dec, 2018 1 commit
  15. 27 Nov, 2018 1 commit
  16. 23 Nov, 2018 2 commits
  17. 22 Nov, 2018 1 commit
  18. 21 Nov, 2018 1 commit
    • Toon Verwaest's avatar
      [zone] Use 32kb instead of 1MB as high zone page size · a0486202
      Toon Verwaest authored
      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/1346370Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#57683}
      a0486202
  19. 05 Nov, 2018 1 commit
  20. 24 Oct, 2018 2 commits
  21. 18 Oct, 2018 1 commit
  22. 27 Sep, 2018 1 commit
  23. 26 Sep, 2018 1 commit
  24. 21 Sep, 2018 1 commit
  25. 03 Sep, 2018 1 commit
  26. 04 Jul, 2018 1 commit
  27. 22 Jun, 2018 1 commit
  28. 12 Dec, 2017 1 commit
  29. 28 Nov, 2017 1 commit
  30. 13 Oct, 2017 1 commit
  31. 28 Sep, 2017 1 commit
    • Peter Marshall's avatar
      [cleanup] Remove List. · 690d52af
      Peter Marshall authored
      ZoneList still used List as a base class, so this CL merges the two
      classes together. We also remove unused functions in List and ZoneList.
      
      We keep the inline header but move it to src/zone/zone-list-inl.h. The
      includes that use this header are still quite tangled, but we can fix
      that later.
      
      Bug: v8:6333
      Cq-Include-Trybots: master.tryserver.v8:v8_linux_noi18n_rel_ng
      Change-Id: Ia809813834b2328ff616623f8a843812a1eb42a7
      Reviewed-on: https://chromium-review.googlesource.com/681658
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48200}
      690d52af
  32. 10 Feb, 2017 1 commit
    • rmcilroy's avatar
      [Compiler] Enable use of seperate zones for parsing and compiling. · 1fc93f2e
      rmcilroy authored
      In order to allow parallel compilation of eager inner functions, we need to
      seperate the zone used for parsing (which will be shared between all the
      parallel compile jobs) and the zone used for compilation. This CL changes
      CompilationInfo to require a zone (which can be different from the zone in
      ParseInfo). We then seal the ParseInfo zone after parsing and analysis is done
      to prevent any further allocation in that zone, so that it can be shared
      (read-only) with the parallel compile jobs.
      
      BUG=v8:5203
      
      Review-Url: https://codereview.chromium.org/2645403002
      Cr-Commit-Position: refs/heads/master@{#43089}
      1fc93f2e
  33. 06 Feb, 2017 1 commit
  34. 02 Nov, 2016 1 commit
  35. 17 Oct, 2016 1 commit
  36. 11 Oct, 2016 1 commit
  37. 10 Oct, 2016 2 commits