1. 03 Apr, 2019 8 commits
    • Clemens Hammacher's avatar
      [wasm][gc] Make import wrapper cache keep WasmCode alive · 433de3ff
      Clemens Hammacher authored
      The cache also needs to keep the code alive. The code objects are
      import wrappers and not wasm functions (which we will focus on first),
      but eventually we would also like to collect unused import wrappers.
      This CL explicitly increments the ref count when {WasmCode} is added
      to the cache, and derements all ref counts in the destructor.
      
      R=titzer@chromium.org
      
      Bug: v8:8217
      Change-Id: I1bfb276b25b359d83900147e75ec47788e1fa8de
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535825Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60588}
      433de3ff
    • Santiago Aboy Solanes's avatar
      [Turbofan][ptr-compr] Add representation changes for and to Compressed* values · 70b22162
      Santiago Aboy Solanes authored
      Includes both changing from compressed pointers and to compressed pointers.
      
      Also added tests to the representation changer test
      
      B
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_pointer_compression_rel_ng,v8_linux64_arm64_pointer_compression_rel_ng
      Bug: v8:8977
      Change-Id: I8a13f6b7ec2208442aa354949173cc9061bce168
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1533866Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60587}
      70b22162
    • Michael Starzinger's avatar
      [wasm] Introduce {BranchOnExceptionImmediate} helper. · fbce172c
      Michael Starzinger authored
      This introduces a helper class for the immediates to a "br_on_exn"
      instruction. It is basically a wrapper around a pair of existing
      immediates to simplify PC offset calculations. This is similar to what
      is being done for e.g. {MemoryCopyImmediate} already.
      
      R=clemensh@chromium.org
      BUG=v8:8091
      
      Change-Id: I85a552baa6bfa78304abc6cf9509aef365d47057
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547865Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60586}
      fbce172c
    • Clemens Hammacher's avatar
      [regexp][cleanup] Using 'using' instead of 'typedef' · d78b7a0e
      Clemens Hammacher authored
      Even though both are allowed in the style guide, it recommends to use
      'using', as its syntax is more consistent with the rest of C++.
      This CL turns all typedefs in src/regexp to 'using' declarations.
      
      R=jgruber@chromium.org
      
      Bug: v8:8834
      Change-Id: I2765c3465fec7e8c42c3a84b924522f220ab5676
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1545904Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60585}
      d78b7a0e
    • Clemens Hammacher's avatar
      [vector] Rename {is_empty} to {empty} · 38ddf33c
      Clemens Hammacher authored
      All standard containers provide a method named {empty} to check whether
      the container is empty. On {base::Vector}, that method is named
      {is_empty}, while {empty} is an unused factory method for creating an
      empty {Vector}.
      This CL renames {is_empty} to {empty} and removes the unused factory
      method.
      
      R=leszeks@chromium.org
      
      Bug: v8:8834
      Change-Id: I686bd07527801fbe783c412bc241221d8ec3660a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1547862
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60584}
      38ddf33c
    • Michael Lippautz's avatar
      [heap] Filter out fillers in worklist during atomic pause marking · cb68c2e3
      Michael Lippautz authored
      They are already filtered by the incremental marker.
      
      Change-Id: If43a16d54a2b0eb7d6a36482d3439fc7191c31a6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1549160
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60583}
      cb68c2e3
    • Igor Sheludko's avatar
      Reland "[ptr-compr][x64] Temporarily enable pointer compression on x64" · 42beed97
      Igor Sheludko authored
      This is a reland of 4f051fd5
      
      Relanding after fixing Chromium issues.
      
      Original change's description:
      > [ptr-compr][x64] Temporarily enable pointer compression on x64
      >
      > ... and make sure that the x64 ptr-compr bots proceed testing V8 without
      > pointer compression in order to keep testing the full pointer mode.
      >
      > Bug: v8:7703
      > Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      > Change-Id: Iee725deda813425a6f0722948b54976154f50909
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1497139
      > Reviewed-by: Michael Hablich <hablich@chromium.org>
      > Reviewed-by: Michael Achenbach <machenbach@chromium.org>
      > Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60230}
      
      Bug: v8:7703
      Change-Id: Ic2d1c2ae41ec645f34963f5f561c33199c72ef4b
      Cq-Include-Trybots: luci.v8.try:v8_linux64_ubsan_rel_ng,v8_linux64_tsan_rel
      Cq-Include-Trybots: luci.chromium.try:fuchsia_x64,linux-rel
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535819
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#60582}
      42beed97
    • Paolo Severini's avatar
      Reland "V8 x64 backend doesn't emit ABI compliant stack frames" · 969cb0c7
      Paolo Severini authored
      This is a reland of 3cda21de
      
      Original change's description:
      > V8 x64 backend doesn't emit ABI compliant stack frames
      > 
      > On 64 bit Windows, the OS stack walking does not work because the V8 x64
      > backend doesn't emit unwinding info and also because it doesn't emit ABI
      > compliant stack frames. See
      > https://docs.google.com/document/d/1-wf50jFlii0c_Pr52lm2ZU-49m220nhYMrHDi3vXnh0/edit
      > for more details.
      > 
      > This problem can be fixed by observing that V8 frames usually all have the same
      > prolog and epilog:
      > 
      > push rbp,
      > mov rbp, rsp
      > ...
      > pop rbp
      > ret N
      > 
      > and that it is possible to define XDATA (UNWIND_CODEs) that specify how Windows
      > should walk through V8 frames. Furthermore, since V8 Code objects are all
      > allocated in the same code-range for an Isolate, it is possible to register a
      > single PDATA/XDATA entry to cover stack walking for all the code generated
      > inside that code-range.
      > 
      > This PR contains changes required to enable stack walking on Win64:
      > 
      > EmbeddedFileWriter now adds assembler directives to the builtins
      > snapshot source file (embedded.cc) to emit additional entries in the .pdata and
      > in the .xdata section of the V8 executable. This takes care of stack walking
      > for embedded builtins. (The case of non-embedded builtins is not supported).
      > The x64 Assembler has been modified to collect the information required to emit
      > this unwind info for builtins.
      > 
      > Stack walking for jitted code is handled is Isolate.cpp, by registering
      > dynamically PDATA/XDATA for the whole code-range address space every time a new
      > Isolate is initialized, and by unregistering them when the Isolate is
      > destroyed.
      > 
      > Stack walking for WASM jitted code is handled is the same way in
      > wasm::NativeModule (wasm/wasm-code-manager.cpp).
      > 
      > It is important to note that Crashpad and Breakpad are already registering
      > PDATA/XDATA to manage and report unhandled exceptions (but not for embedded
      > builtins). Since it is not possible to register multiple PDATA entries for the
      > same address range, a new function is added to the V8 API:
      > SetUnhandledExceptionCallback() can be used by an embedder to register its own
      > unhandled exception handler for exceptions that arise in v8-generated code.
      > V8 embedders should be modified accordingly (code for this is in a separate PR
      > in the Chromium repository:
      > https://chromium-review.googlesource.com/c/chromium/src/+/1474703).
      > 
      > All these changes are experimental, behind:
      > 
      > the 'v8_win64_unwinding_info' build flag, and
      > the '--win64-unwinding-info' runtime flag.
      > 
      > Bug: v8:3598
      > Change-Id: Iea455ab6d0e2bf1c556aa1cf870841d44ab6e4b1
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1469329
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      > Cr-Commit-Position: refs/heads/master@{#60330}
      
      Bug: v8:3598
      Change-Id: If988baf7d3e4af165b919d6e54c1ad985f8e25e3
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1534618Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Commit-Queue: Paolo Severini <paolosev@microsoft.com>
      Cr-Commit-Position: refs/heads/master@{#60581}
      969cb0c7
  2. 02 Apr, 2019 19 commits
  3. 01 Apr, 2019 13 commits