1. 05 Feb, 2020 2 commits
  2. 04 Feb, 2020 31 commits
  3. 03 Feb, 2020 7 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
    • Ng Zhi An's avatar
      [wasm-simd] Force some shuffles to use register for src0 and src1 · e8bba383
      Ng Zhi An authored
      test-run-wasm-simd/RunWasm_S8x16MultiShuffleFuzz_turbofan was failing
      reliably with --no-enable-avx. (Even though the shuffle sequences were
      randomly generated, in practice we quite quickly hit a case where we
      will get a segfault.)
      
      For 32x4swizzle and 32x4 shuffle, they use pshufd, which can take an
      operand, but needs to be 16-byte aligned, which they are not, current.
      So force them to be registers for now. This is similar to what we do in
      the x64 selection too.
      
      Bug: v8:9198
      Change-Id: If319ff276202d4be095714a6cb18dec0d0551efd
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2032202Reviewed-by: 's avatarDeepti Gandluri <gdeepti@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66086}
      e8bba383
    • Michael Achenbach's avatar
      [foozzie] Compare output before crashes · 3fd58c66
      Michael Achenbach authored
      Crashes in the presence of RangeError happen often during differential
      fuzzing. Until now we have ignored such cases completely.
      
      After this change we compare as much output as possible when one or
      both runs have crashed, dramatically increasing the coverage.
      
      No-Try: true
      Bug: chromium:1048099
      Change-Id: I923c10e9064b5dc6cae1e39a254e221d2867e0e7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2030914
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Reviewed-by: 's avatarTamer Tas <tmrts@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66085}
      3fd58c66