1. 08 Feb, 2021 4 commits
    • Michael Lippautz's avatar
      cppgc: Avoid dispatching write barrier during atomic pause · c7ff90d9
      Michael Lippautz authored
      This change avoid dispatching a write barrier during the atomic pause.
      The dispatch can generally be triggered through pre-finalizers.
      
      In future, further checks may be added to avoid mis-use of
      pre-finalizers.
      
      Bug: chromium:1056170, chromium:1175560
      Change-Id: I119e18372633b2375f60e17b4c881f68bb20bf66
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679685Reviewed-by: 's avatarOmer Katz <omerkatz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72560}
      c7ff90d9
    • Jakob Kummerow's avatar
      [mac][wasm] Work around MacOS 11.2 code page decommit failures · 0c8b6e41
      Jakob Kummerow authored
      MacOS 11.2 refuses to set "no access" permissions on memory that
      we previously used for JIT-compiled code. It is still unclear
      whether this is WAI on the part of the kernel. In the meantime,
      as a workaround, we use madvise(..., MADV_FREE_REUSABLE) instead
      of mprotect(..., NONE) when discarding code pages. This is inspired
      by what Chromium's gin platform does.
      
      Fixed: v8:11389
      Change-Id: I866586932573b4253002436ae5eee4e0411c45fc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2679688
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Auto-Submit: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72559}
      0c8b6e41
    • Clemens Backes's avatar
      [wasm][debug] Delta-encode the debug side table · 392a0251
      Clemens Backes authored
      For functions with a very large stack, the debug side table repeats a
      lot of information: Most values will be spilled to the stack, still
      every single entry in the debug side table repeats information about
      them (type, stack offset). This leads to the size of the debug side
      table to be quadratic in the size of the function.
      
      In the linked bug, the generation of the debug side table took ~400ms,
      whereas Liftoff compilation alone just took 16ms.
      
      This CL optimized the debug side table by delta-encoding the entries,
      i.e. only storing stack slots that changed. This reduces the size of the
      table significantly, at the cost of making lookup slower, since that now
      has to search the table backwards for the last entry that had
      information about a specific slot. For now, this seems like a good
      compromise. If it turns out to be a problem, we could speed up the
      lookup by either forcing a full dump of the stack state after N entries,
      or by dynamically inserting new entries during lookup, whenever we find
      that we had to search backwards more than N entries. That would speed up
      subsequent lookups then.
      
      On the reproducer in the linked bug, this change reduces the time to
      generate the debug side table from ~400ms to ~120ms.
      Before this CL, the debug side table has 13,314 entries with a total of
      38,599,606 stack value entries. After this CL, it shrinks to 20,037
      stack value entries in the 13,314 entries (average of ~1.5 instead of
      ~2,899).
      
      R=thibaudm@chromium.org
      
      Bug: chromium:1172299
      Change-Id: Ie726bb82d4c6648cc9ebd130115ee7ab3d1d551b
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2676636Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72558}
      392a0251
    • Iain Ireland's avatar
      [regexp] Change rangeBoundaries to use uc32 · f905e3f4
      Iain Ireland authored
      Some of the DCHECK_LT assertions in GenerateBranches were generating
      signed-vs-unsigned comparisons in SM. While I was looking at this code,
      it seemed reasonable to just fix the whole thing to use uc32/uint32_t
      where appropriate.
      
      Bug: v8:11380
      Change-Id: I7e27fb7e34ce962349d7204d6306217292746e33
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2666986Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72557}
      f905e3f4
  2. 07 Feb, 2021 1 commit
  3. 06 Feb, 2021 2 commits
  4. 05 Feb, 2021 16 commits
  5. 04 Feb, 2021 17 commits