1. 10 Apr, 2019 3 commits
  2. 03 Apr, 2019 2 commits
    • Adithya Srinivasan's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · e26ec8bd
      Adithya Srinivasan authored
      This reverts commit 42beed97.
      
      Reason for revert: This commit seems to cause consistent failures in
      some ProcessMemoryMetricsEmitterTest tests on Mac and ChromeOS. I'm
      not sure what the exact reasoning behind this is. See https://crbug.com/949157.
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      >
      > This is a reland of 4f051fd5
      >
      > Relanding after fixing Chromium issues.
      >
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Bug: v8:7703
      > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60230}
      >
      > Bug: v8:7703
      > Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60582}
      
      TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org
      
      Change-Id: Ib9737081e90dddcfe44af9da1275a610da209323
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7703
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1550709
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60618}
      e26ec8bd
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 42beed97
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding after fixing Chromium issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Bug: v8:7703
      Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60582}
      42beed97
  3. 25 Mar, 2019 1 commit
    • Mythri's avatar
      [lite] Allocate feedback vectors lazily · 7629afdb
      Mythri authored
      Allocate feedback vectors lazily when the function's interrupt budget has
      reached a specified threshold. This cl introduces a new field in the
      ClosureFeedbackCellArray to track the interrupt budget for allocating
      feedback vectors. Using the interrupt budget on the bytecode array could
      cause problems when there are closures across native contexts and we may
      delay allocating feedback vectors in one of them causing unexpected
      performance cliffs. In the long term we may want to remove interrupt budget
      from bytecode array and use context specific budget for tiering up decisions
      as well.
      
      Bug: v8:8394
      Change-Id: Ia8fbb71f5e8543a92f14c44aa762973da82d445c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1520719
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60450}
      7629afdb
  4. 21 Mar, 2019 1 commit
    • Michael Achenbach's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · f936fb42
      Michael Achenbach authored
      This reverts commit 7b896836.
      
      Reason for revert: Lots of test failures on current roll:
      https://chromium-review.googlesource.com/c/chromium/src/+/1534141
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      > 
      > This is a reland of 4f051fd5
      > 
      > Relanding because last revert was caused by unrelated flakes.
      > 
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > > Bug: v8:7703
      > > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60339}
      > 
      > Bug: v8:7703
      > Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60370}
      
      TBR=machenbach@chromium.org,ishell@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7703
      Change-Id: I1c037470b5895c4269c9574e6c93d0eed6fe90d5
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533867Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60397}
      f936fb42
  5. 20 Mar, 2019 1 commit
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 7b896836
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding because last revert was caused by unrelated flakes.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Bug: v8:7703
      > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60339}
      
      Bug: v8:7703
      Change-Id: I9c588de77070d4fbf1bb1a21ae58c398a22eed9c
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel, v8_mac64_gc_stress_dbg
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1530819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60370}
      7b896836
  6. 19 Mar, 2019 3 commits
    • Deepti Gandluri's avatar
      Revert "Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"" · 979b3a33
      Deepti Gandluri authored
      This reverts commit 4f051fd5.
      
      Reason for revert: Fails with custom snapshot on GC stress - https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20GC%20Stress%20-%20custom%20snapshot/24855
      
      Original change's description:
      > Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64"
      > 
      > This is a reland of 589d1a6b
      > 
      > Relanding after fixing TSan and UBSan issues.
      > 
      > Original change's description:
      > > [ptr-compr][x64] Temporarily enable pointer compression on x64
      > >
      > > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > > pointer compression in order to keep testing the full pointer mode.
      > >
      > > Bug: v8:7703
      > > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#60230}
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Bug: v8:7703
      > Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      > Commit-Queue: Igor Sheludko <ishell@chromium.org>
      > Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60339}
      
      TBR=machenbach@chromium.org,hablich@chromium.org,leszeks@chromium.org,ishell@chromium.org,verwaest@chromium.org
      
      Change-Id: Ia06829e9dfdf09501ceebc0eef175d3261969d1f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7703
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng, v8_linux64_tsan_rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1531120Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Deepti Gandluri <gdeepti@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60340}
      979b3a33
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 4f051fd5
      Igor Sheludko authored
      This is a reland of 589d1a6b
      
      Relanding after fixing TSan and UBSan issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Bug: v8:7703
      Change-Id: Ied4e7bacf99c9d63e0459613fec522273f595de8
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1523327
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60339}
      4f051fd5
    • Benedikt Meurer's avatar
      [turbofan] Significantly improve ConsString creation performance. · d6a60a0e
      Benedikt Meurer authored
      This change significantly improves the performance of string
      concatenation in optimized code for the case where the resulting string
      is represented as a ConsString. On the relevant test cases we go from
      
        serializeNaive: 10762 ms.
        serializeClever: 7813 ms.
        serializeConcat: 10271 ms.
      
      to
      
        serializeNaive: 10278 ms.
        serializeClever: 5533 ms.
        serializeConcat: 10310 ms.
      
      which represents a 30% improvement on the "clever" benchmark, which
      tests specifically the ConsString creation performance.
      
      This was accomplished via a couple of different steps, which are briefly
      outlined here:
      
        1. The empty_string gets its own map, so that we can easily recognize
           and handle it appropriately in the TurboFan type system. This
           allows us to express (and assert) that the inputs to NewConsString
           are non-empty strings, making sure that TurboFan no longer creates
           "crippled ConsStrings" with empty left or right hand sides.
        2. Further split the existing String types in TurboFan to be able to
           distinguish between OneByte and TwoByte strings on the type system
           level. This allows us to avoid having to dynamically lookup the
           resulting ConsString map in case of ConsString creation (i.e. when
           we know that both input strings are OneByte strings or at least
           one of the input strings is TwoByte).
        3. We also introduced more finegrained feedback for the Add bytecode
           in the interpreter, having it collect feedback about ConsStrings,
           specifically ConsOneByteString and ConsTwoByteString. This feedback
           can be used by TurboFan to only inline the relevant code for what
           was seen so far. This allows us to remove the Octane/Splay specific
           magic in JSTypedLowering to detect ConsString creation, and instead
           purely rely on the feedback of what was seen so far (also making it
           possible to change the semantics of NewConsString to be a low-level
           operator, which is only introduced in SimplifiedLowering by looking
           at the input types of StringConcat).
        4. On top of the before mentioned type and interpreter changes we added
           new operators CheckNonEmptyString, CheckNonEmptyOneByteString, and
           CheckNonEmptyTwoByteString, which perform the appropriate (dynamic)
           checks.
      
      There are several more improvements that are possible based on this, but
      since the change was already quite big, we decided not to put everything
      into the first change, but do some follow up tweaks to the type system,
      and builtin optimizations later.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:8834, v8:8931, v8:8939, v8:8951
      Change-Id: Ia24e17c6048bf2b04df966d3cd441f0edda05c93
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1499497
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarMythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60318}
      d6a60a0e
  7. 18 Mar, 2019 2 commits
  8. 14 Mar, 2019 2 commits
  9. 12 Mar, 2019 1 commit
  10. 11 Mar, 2019 1 commit
  11. 04 Mar, 2019 2 commits
    • Georg Neis's avatar
      [modules] Make debug-scopes handle synthetic variables · 6422aa92
      Georg Neis authored
      ... by skipping over them. Such variables appear in the case of direct
      namespace exports and default exports. (Actually, the name used for
      default exports used to be "*default*" which is not recognized as
      synthetic, so I'm renaming it here to ".default").
      
      Bug: chromium:932111
      Change-Id: I0554dae9614334fdc02e78606f2db47e92196429
      Reviewed-on: https://chromium-review.googlesource.com/c/1494010
      Commit-Queue: Georg Neis <neis@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60012}
      6422aa92
    • Benedikt Meurer's avatar
      [cleanup] Remove obsolete "one byte data hint" for strings. · 683cf6f4
      Benedikt Meurer authored
      In the early days of Chrome when we used WebKit there was no support for
      ASCII strings on the C++ side, so we put a hint onto these two-byte
      strings that said "string only contains one byte data", such that
      internally in V8 when these were involved in string operations, we could
      instead create the *cheaper* one byte strings.
      
      Nowadays Blink properly supports one-byte string representations and
      this additional hint only comes with overhead, since we check it in
      quite a few places (i.e. on the hot path for string concatenation), plus
      we end up consuming more memory due to the additional string maps.
      Removing the hint also frees one bit in the InstanceType zoo for
      strings.
      
      This alone improves performance on the `bench-dom-serialize.js` test case
      by around **3%**.
      
      Tbr: mstarzinger@chromium.org
      Bug: v8:6622, v8:8834, v8:8939
      Cq-Include-Trybots: luci.chromium.try:linux-blink-rel
      Change-Id: I0753f2859cee7b5a37b6f0da64d8ec39fcb044ff
      Doc: https://bit.ly/fast-string-concatenation-in-javascript
      Reviewed-on: https://chromium-review.googlesource.com/c/1498478
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60006}
      683cf6f4
  12. 01 Mar, 2019 1 commit
    • Sathya Gunasekaran's avatar
      [fni] Mark computed props as computed, not anonymous function · ab24897c
      Sathya Gunasekaran authored
      I thought about potentially adding the identifer ref to the error but
      that would require allocating a new string or at the very least
      increasing the size of the resulting cons string. Given that the
      parser is pretty performance sensitive, I've decided to not display
      the identifier.
      
      Previously, the error was:
        _test.js:3: Error
        a[foo].c = () => { throw Error(); };
                           ^
        Error
          at a.(anonymous function).c (_test.js:3:26)
          at _test.js:5:1
      
      With this patch, the error becomes:
        _test.js:3: Error
        a[foo].c = () => { throw Error(); };
                           ^
        Error
          at a.<computed>.c (_test.js:3:26)
          at _test.js:5:1
      
      Bug: v8:8823
      Change-Id: I557b3517e317652c447ca06c5a400e9625353d9b
      Reviewed-on: https://chromium-review.googlesource.com/c/1495017
      Commit-Queue: Sathya Gunasekaran <gsathya@chromium.org>
      Reviewed-by: 's avatarMathias Bynens <mathias@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59985}
      ab24897c
  13. 14 Feb, 2019 1 commit
  14. 13 Feb, 2019 1 commit
  15. 06 Feb, 2019 1 commit
  16. 01 Feb, 2019 3 commits
  17. 30 Jan, 2019 1 commit
  18. 23 Jan, 2019 1 commit
  19. 17 Jan, 2019 1 commit
    • Ulan Degenbaev's avatar
      Reland "[heap] Optimize MemoryChunk::FromAnyPointerAddress" · c0994d3f
      Ulan Degenbaev authored
      This is a reland of fd49c8bb
      
      Original change's description:
      > [heap] Optimize MemoryChunk::FromAnyPointerAddress
      > 
      > Currently this function requires the caller to hold a mutex for the
      > large page chunk hashtable and performs a hashtable lookup.
      > 
      > This patch adds a header sentinel field in each MemoryChunk. The field
      > is then used to distinguish large object slots from ordinary slots.
      > 
      > Bug: chromium:915233
      > Change-Id: I9fbeeb4f07f49573d0a21f9a2cc934370e417d68
      > Reviewed-on: https://chromium-review.googlesource.com/c/1391752
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58732}
      
      Bug: chromium:915233
      Change-Id: I10d23a928328169a2dc6bab78d2b7d2c5d00ebb6
      Reviewed-on: https://chromium-review.googlesource.com/c/1406672
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58876}
      c0994d3f
  20. 11 Jan, 2019 3 commits
  21. 07 Jan, 2019 1 commit
  22. 19 Dec, 2018 1 commit
  23. 11 Dec, 2018 1 commit
  24. 29 Nov, 2018 1 commit
  25. 27 Nov, 2018 1 commit
  26. 26 Nov, 2018 1 commit
  27. 22 Nov, 2018 2 commits