1. 05 Feb, 2020 4 commits
  2. 04 Feb, 2020 31 commits
  3. 03 Feb, 2020 5 commits
    • Michael Lippautz's avatar
      heap: Improved incremental scheduling for unified heap · bd02f663
      Michael Lippautz authored
      When the embedder integrates in V8's garbage collector the performance
      of the atomic phase is sensitive to how much embedder memory is found
      through marking the overall transitive closure.
      
      Before this patch, V8 would help out tracing the embedder's heap when
      making progress through tasks but not on allocations. In addition, V8
      would complete the garbage collection when it has observed it's own
      marking worklists as empty 3 times (*). This can create performance
      cliffs when there's a lot of work still to be done on the embedder
      side.
      
      This patch adds helping steps on allocation that are proportional to
      the bytes that V8 would otherwise process, guaranteeing some progress
      as long as there's V8 allocations. This allows us to remove (*).
      
      Potential Tradeoffs:
      - More time spent in V8's garbage collection metrics as we slightly
        limit the chances for the embedder to mark objects through tasks.
      - Prolonged V8.execute time (JS execution)
      + Faster progress
      + Less memory
      + Smaller atomic pause time
      
      Change-Id: I160f063209f7e129b9c884206f833706b69dadc1
      Bug: chromium:1044630
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2025371
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66091}
      bd02f663
    • Ng Zhi An's avatar
      Reland "[wasm-simd][liftoff] Check CpuFeatures for SIMD support" · cccbd5f1
      Ng Zhi An authored
      This relands commit 7c32fa05.
      
      Some test cases need to be updated, since we will bail out to TurboFan
      where previously Liftoff was happy to run, when SIMD is not supported.
      
      Original change's description:
      > [wasm-simd][liftoff] Check CpuFeatures for SIMD support
      >
      > If Wasm simd128 is not supported on this particular hardware, we bail
      > out to TurboFan.
      >
      > Bug: v8:9909
      > Change-Id: Ie46e154426783ba099b7c0facc906670cda1bdd0
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2029427
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Commit-Queue: Zhi An Ng <zhin@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#66055}
      
      Bug: v8:9909
      Bug: v8:10169
      Change-Id: I850e1fe6bfbd12fb2eec052aa8367624c09f7a08
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030354
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66090}
      cccbd5f1
    • Jakob Kummerow's avatar
      [test] Skip memory-hungry test on Android · bdac09e4
      Jakob Kummerow authored
      After allowing larger strings on 64-bit builds, this test OOMs on
      Android devices that don't have enough memory.
      
      Tbr: machenbach@chromium.org
      Change-Id: I05c44d7074388a4306e5266ba1aa9da760c83377
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2035877Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66089}
      bdac09e4
    • Ng Zhi An's avatar
      Fix assembler for sqrtpd · d05d335e
      Ng Zhi An authored
      The assembly of sqrtpd when using Sqrtpd macro was wrong, since
      Sqrtpd(xmm1, xmm1) will incorrect generated vsqrtpd(xmm1, xmm1, xmm1),
      which is nonsensical, since vsqrtpd only takes two operands. The
      expected instruction should be vsqrtpd(xmm1, xmm0, xmm1) in terms of the
      encoding, which is vsqrtpd(xmm1, xmm1).
      
      So, move sqrtpd and cvtps2dq out into their own macro list, because
      they have two operands in their AVX form, unlike the rest of the
      instructions in SSE2_INSTRUCTION_LIST.
      
      Also updated disasm and tests to use this new list.
      
      Fixed: v8:10170
      Change-Id: Ia9343c9a3ae64596bbc876744556e1dcea2a443b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2032195Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66088}
      d05d335e
    • Ng Zhi An's avatar
      [wasm-simd] Unify sse and avx impl for i32x4 shifts · 90830b59
      Ng Zhi An authored
      The implementation is pretty much the same, and we instead delegate to a
      macro assembler to decide if we want the sse or avx instruction.
      
      This unification will simplify optimization of constant shifts later on.
      
      Bug: v8:10115
      Change-Id: If9a17519a746f0a8474e75dbdebb8e4f5b0d07c4
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2026469Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66087}
      90830b59