1. 08 Feb, 2021 2 commits
    • 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 19 commits