1. 01 Mar, 2019 25 commits
  2. 28 Feb, 2019 15 commits
    • Tom Tan's avatar
      Move Assembler::AbortedCodeGeneration() from .h to .cc for arm64 · 75d972a6
      Tom Tan authored
      Assembler::AbortedCodeGeneration() is defined in assembler-arm64.h, but it calls
      into Constant::Clear() which is defined in assembler-arm64.cc. This introduces
      dependency to v8_base component when including assembler-arm64.h which is not
      always possible like for V8 unittests target. To fix this, we could define both
      in the same file, like Assembler::IsConstPoolEmpty() calls Constant::Clear() and
      both are defined in assembler-arm64.h, so it works fine.
      
      Bug: chromium:893460
      Change-Id: I895cf0147950fca20142ea5ed18bcd020c1ab866
      Reviewed-on: https://chromium-review.googlesource.com/c/1493293Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59955}
      75d972a6
    • Maciej Goszczycki's avatar
      [heap] Isolate read-only space creation · b0bcd45d
      Maciej Goszczycki authored
      This provides a single point where read-only space sharing will be
      controlled. Eventually ReadOnlyDeserializer will take ReadOnlyHeap
      instead of Isolate, first steps include
      https://chromium-review.googlesource.com/c/v8/v8/+/1483054
      
      Bug: v8:7464
      Change-Id: I213819aeca6fca335235025c9195edf474230eda
      Reviewed-on: https://chromium-review.googlesource.com/c/1489087
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59954}
      b0bcd45d
    • Toon Verwaest's avatar
      [scanner] Remove superfluous cases from switch in ScanEscape · 506f79b8
      Toon Verwaest authored
      Change-Id: I4d774452e4537ba507bab87ac0a197d17a2f2862
      Reviewed-on: https://chromium-review.googlesource.com/c/1494759Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59953}
      506f79b8
    • Dan Elphick's avatar
      [cleanup] Make MentionedObjectCache GC-safe · 3ce662f4
      Dan Elphick authored
      This changes DebugObjectCache to be a vector of Handles rather than
      tagged pointers, meaning it's not GC-safe.
      
      This will allow PrintStack to allocate memory if required (if for
      instance source positions must be regenerated).
      
      Bug: v8:8834, v8:8510
      Change-Id: Ieec9a827af9abbcb9b5b237d79984eedf0cdcc57
      Reviewed-on: https://chromium-review.googlesource.com/c/1494755Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59952}
      3ce662f4
    • Leszek Swirski's avatar
      [ignition] Use dead code elimination for implicit returns · 8d940b91
      Leszek Swirski authored
      Rather than manually tracking basic blocks in the bytecode array builder,
      use the existing dead code elimination to generate an implicit return iff
      the block ending the bytecode is not dead by the time all statements have
      been visited.
      
      Change-Id: I9520486a523ec4e01bc203e9a847eb1f57b130b6
      Reviewed-on: https://chromium-review.googlesource.com/c/1494756Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59951}
      8d940b91
    • Clemens Hammacher's avatar
      [zone] Minor cleanups in zone segments · 919e6b4f
      Clemens Hammacher authored
      1) Rename {size()} to {total_size()} because
         {size() != end() - start()}.
      2) Avoid undefined behaviour when creating segments, i.e. construct
         them via a constructor.
      3) Minor drive-by cleanups.
      
      R=mstarzinger@chromium.org
      
      Bug: v8:8834
      Change-Id: I3de47b2a775cf277e2f01ba5482afbd400acd06c
      Reviewed-on: https://chromium-review.googlesource.com/c/1493926
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59950}
      919e6b4f
    • Clemens Hammacher's avatar
      Switch ThreadId to std::atomic · eb573b71
      Clemens Hammacher authored
      Avoid atomicops, use std::atomic instead.
      
      R=ishell@chromium.org
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel
      Bug: v8:8834, v8:8926
      Change-Id: I07bc7bbe079fc4a138feb4d8fda91eb57046846d
      Reviewed-on: https://chromium-review.googlesource.com/c/1491609Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59949}
      eb573b71
    • Leszek Swirski's avatar
      Reland "[ignition] Skip binding dead labels" · c7ebc581
      Leszek Swirski authored
      This is a reland of 35269f77
      
      Switches on an expression that unconditionally throws would have all their
      case statements dead, causing a DCHECK error in the SwitchBuilder. This
      fixes up the DCHECK to allow dead labels.
      
      Original change's description:
      > [ignition] Skip binding dead labels
      >
      > BytecodeLabels for forward jumps may create a dead basic block if their
      > corresponding jump was elided (due to it dead code elimination). We can
      > avoid generating such dead basic blocks by skipping the label bind when
      > no corresponding jump has been observed. This works because all jumps
      > except JumpLoop are forward jumps, so we only have to special case one
      > Bind for loop headers to bind unconditionally.
      >
      > Since Binds are now conditional on a jump existing, we can no longer rely
      > on using Bind to get the current offset (e.g. at the beginning of a try
      > block). Instead, we now expose the current offset in the bytecode array
      > writer. Conveniently, this means that we can be a bit smarter about basic
      > blocks around these statements.
      >
      > As a drive-by, remove the unused Bind(target,label) function.
      >
      > Bug: chromium:934166
      > Change-Id: I532aa452fb083560d07b90da99caca0b1d082aa3
      > Reviewed-on: https://chromium-review.googlesource.com/c/1488763
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59942}
      
      TBR=rmcilroy@chromium.org
      
      Bug: chromium:934166
      Change-Id: If6eab4162106717ce64a2dc477000c6a76354cb4
      Reviewed-on: https://chromium-review.googlesource.com/c/1494535Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59948}
      c7ebc581
    • Sigurd Schneider's avatar
      Revert "[ignition] Skip binding dead labels" · 8ee20f5e
      Sigurd Schneider authored
      This reverts commit 35269f77.
      
      Reason for revert: Fuzzer unhappy: https://ci.chromium.org/p/v8/builders/ci/V8%20Fuzzer/29792
      
      Original change's description:
      > [ignition] Skip binding dead labels
      > 
      > BytecodeLabels for forward jumps may create a dead basic block if their
      > corresponding jump was elided (due to it dead code elimination). We can
      > avoid generating such dead basic blocks by skipping the label bind when
      > no corresponding jump has been observed. This works because all jumps
      > except JumpLoop are forward jumps, so we only have to special case one
      > Bind for loop headers to bind unconditionally.
      > 
      > Since Binds are now conditional on a jump existing, we can no longer rely
      > on using Bind to get the current offset (e.g. at the beginning of a try
      > block). Instead, we now expose the current offset in the bytecode array
      > writer. Conveniently, this means that we can be a bit smarter about basic
      > blocks around these statements.
      > 
      > As a drive-by, remove the unused Bind(target,label) function.
      > 
      > Bug: chromium:934166
      > Change-Id: I532aa452fb083560d07b90da99caca0b1d082aa3
      > Reviewed-on: https://chromium-review.googlesource.com/c/1488763
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59942}
      
      TBR=rmcilroy@chromium.org,leszeks@chromium.org
      
      Change-Id: I8118e54e0afa5e08b0a0a874c952f8a01f1c3242
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:934166
      Reviewed-on: https://chromium-review.googlesource.com/c/1494534Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59947}
      8ee20f5e
    • Clemens Hammacher's avatar
      [wasm] Store function index in integer · 50026002
      Clemens Hammacher authored
      We sometimes store function indexes and number of functions as {size_t}
      and sometimes as {int}. Unify a few places to be {int}.
      
      R=ahaas@chromium.org
      
      Change-Id: I1d204cbd9388245f97f291a469b32743457ab2c0
      Reviewed-on: https://chromium-review.googlesource.com/c/1491607Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59946}
      50026002
    • Maciej Goszczycki's avatar
      [cleanup] Remove unused function declaration · dd98ba31
      Maciej Goszczycki authored
      Bug: v8:8562
      Change-Id: I1ad6d2febc9327e2ef93f0409f6fddf1cebb4834
      Reviewed-on: https://chromium-review.googlesource.com/c/1494012Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Cr-Commit-Position: refs/heads/master@{#59945}
      dd98ba31
    • Mike Stanton's avatar
      [Torque] Continue reducing code-size in Array builtins · f5f5cd08
      Mike Stanton authored
      Since the performance implications of the patch
      "[Torque] Reduce code size by combining FixedArray/FixedDoubleArray paths"
      are negligible, I'll extend the pattern to all the array builtins,
      providing a savings of about 20% per builtin.
      
      Bug: v8:7672
      Change-Id: Ib9aace4da38369842154065f5b4bcfb3ce2355d7
      Reviewed-on: https://chromium-review.googlesource.com/c/1488768
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59944}
      f5f5cd08
    • Sigurd Schneider's avatar
      [turbofan] Remove branch hints from loop bounds checks · c41b66ee
      Sigurd Schneider authored
      Some array builtins used branch hints for loop bounds checks,
      causing all code after the inlined builtin to become deferred
      code. This is detrimental for performance. This CL removes the
      hints, which improves code scheduling a lot, on the micro
      benchmark from the linked bug by 3x.
      
      Bug: v8:8922
      Change-Id: I64faaf763a385c80d80b8be5a4fb8e75dd731693
      Reviewed-on: https://chromium-review.googlesource.com/c/1494011Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Sigurd Schneider <sigurds@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59943}
      c41b66ee
    • Leszek Swirski's avatar
      [ignition] Skip binding dead labels · 35269f77
      Leszek Swirski authored
      BytecodeLabels for forward jumps may create a dead basic block if their
      corresponding jump was elided (due to it dead code elimination). We can
      avoid generating such dead basic blocks by skipping the label bind when
      no corresponding jump has been observed. This works because all jumps
      except JumpLoop are forward jumps, so we only have to special case one
      Bind for loop headers to bind unconditionally.
      
      Since Binds are now conditional on a jump existing, we can no longer rely
      on using Bind to get the current offset (e.g. at the beginning of a try
      block). Instead, we now expose the current offset in the bytecode array
      writer. Conveniently, this means that we can be a bit smarter about basic
      blocks around these statements.
      
      As a drive-by, remove the unused Bind(target,label) function.
      
      Bug: chromium:934166
      Change-Id: I532aa452fb083560d07b90da99caca0b1d082aa3
      Reviewed-on: https://chromium-review.googlesource.com/c/1488763
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59942}
      35269f77
    • Simon Zünd's avatar
      [torque] Introduce LanguageServerData class · 3f057d44
      Simon Zünd authored
      This CL introduces a new contextual 'LanguageSererData'. Its purpose
      is to hold all the eagerly calculated data needed to answer
      language server requests. The first thing collected are the
      definitoins of some IdentifierExpresisons and macro/builtin
      call-sites.
      
      Collecting this data is not necessary for normal compilation, so it
      is disabled by default and can be enabled via a Torque compiler
      option. Since the holder class is a contextual for which no scope
      exists during normal compilation, accidental collection of
      unnecessary language server data *should* be prevented.
      
      R=tebbi@chromium.org
      
      Bug: v8:7793
      Change-Id: Iffcebad4c420a0a51b1ed3c37a37c3475c6ab2e8
      Reviewed-on: https://chromium-review.googlesource.com/c/1491594Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Commit-Queue: Simon Zünd <szuend@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59941}
      3f057d44