1. 20 Mar, 2018 34 commits
  2. 19 Mar, 2018 6 commits
    • Peter Marshall's avatar
      [runtime] Use JSBuiltinsConstructStub for all builtins where possible · 4af7efc1
      Peter Marshall authored
      In order to remove the construct_stub field of the SFI we need all
      construct stubs to be the same, and do any branching at runtime
      instead. For builtins we don't need to set the construct stub because
      the builtins construct stub will call into it for us.
      
      There should only be two builtins left without the builtins construct
      stub: Array and InternalArray, which are special cases that need to
      be dealt with in another CL.
      
      Bug: v8:7503
      Change-Id: If0d419399a9ee22c09cf2a5a3d3dbea7a04dee77
      Reviewed-on: https://chromium-review.googlesource.com/968862Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52046}
      4af7efc1
    • Michael Stanton's avatar
      Revert "[turbofan] Masking/poisoning in codegen (optimized code, mips & mips64)" · 11831378
      Michael Stanton authored
      This reverts commit 46a3c772.
      
      Reason for revert: This is actually not quite ready. What we need is a speculation free poisoning, and if we do another branch, then I think that won't happen.
      
      Original change's description:
      > [turbofan] Masking/poisoning in codegen (optimized code, mips & mips64)
      > 
      > This introduces masking of loads with speculation bit during code generation.
      > At the moment, this is done only under the
      > --branch-load-poisoning flag, and this CL enlarges the set of supported
      > platforms from {x64, arm, arm64} to {x64, arm, arm64, mips, mips64}.
      > 
      > Overview of changes:
      > - new register configuration configuration with one register reserved for
      >   the speculation poison/mask (kSpeculationPoisonRegister).
      > - in codegen, we introduce an update to the poison register at the starts
      >   of all successors of branches (and deopts) that are marked as safety
      >   branches (deopts).
      > - in memory optimizer, we lower all field and element loads to PoisonedLoads.
      > - poisoned loads are then masked in codegen with the poison register.
      >   * only integer loads are masked at the moment.
      > 
      > Bug: chromium:798964
      > Change-Id: I211395b8305ed0ad9288d6da48fa159fa970c827
      > Reviewed-on: https://chromium-review.googlesource.com/951382
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Reviewed-by: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
      > Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
      > Cr-Commit-Position: refs/heads/master@{#52042}
      
      TBR=mvstanton@chromium.org,mstarzinger@chromium.org,ivica.bogosavljevic@mips.com
      
      Change-Id: Ief4d9ef56d918172f0b545d321a64b1ab5b46915
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:798964
      Reviewed-on: https://chromium-review.googlesource.com/969041Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52045}
      11831378
    • Kim-Anh Tran's avatar
      [wasm] Stop compilation when error was thrown in CompileInParallel() · 714b528a
      Kim-Anh Tran authored
      Synchronous compilation currently continues creating new tasks even
      though compilation has already failed. This stops the creation of
      new background tasks and makes sure that the background task manager
      in the CompilationState is not canceled twice.
      
      Change-Id: Ic4c55275ff70e7eca901ad357253f81aa8e2e8e1
      Reviewed-on: https://chromium-review.googlesource.com/968781
      Commit-Queue: Kim-Anh Tran <kimanh@google.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52044}
      714b528a
    • Clemens Hammacher's avatar
      [Liftoff] Merge two nearly identical functions · 60efd46f
      Clemens Hammacher authored
      EmitMonomorphicBinOp and EmitBinOpWithDifferentResultType were nearly
      identical, they just differ in one argument to GetUnusedRegister.
      This CL merges them.
      
      R=titzer@chromium.org
      
      Bug: v8:6600
      Change-Id: Ief75beb410c8ba248b43cd382693f25bd9153d74
      Reviewed-on: https://chromium-review.googlesource.com/968501
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Reviewed-by: 's avatarBen Titzer <titzer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52043}
      60efd46f
    • Mike Stanton's avatar
      [turbofan] Masking/poisoning in codegen (optimized code, mips & mips64) · 46a3c772
      Mike Stanton authored
      This introduces masking of loads with speculation bit during code generation.
      At the moment, this is done only under the
      --branch-load-poisoning flag, and this CL enlarges the set of supported
      platforms from {x64, arm, arm64} to {x64, arm, arm64, mips, mips64}.
      
      Overview of changes:
      - new register configuration configuration with one register reserved for
        the speculation poison/mask (kSpeculationPoisonRegister).
      - in codegen, we introduce an update to the poison register at the starts
        of all successors of branches (and deopts) that are marked as safety
        branches (deopts).
      - in memory optimizer, we lower all field and element loads to PoisonedLoads.
      - poisoned loads are then masked in codegen with the poison register.
        * only integer loads are masked at the moment.
      
      Bug: chromium:798964
      Change-Id: I211395b8305ed0ad9288d6da48fa159fa970c827
      Reviewed-on: https://chromium-review.googlesource.com/951382Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@mips.com>
      Commit-Queue: Ivica Bogosavljevic <ivica.bogosavljevic@mips.com>
      Cr-Commit-Position: refs/heads/master@{#52042}
      46a3c772
    • Marja Hölttä's avatar
      [in-place weak refs prework] No dependent code handling when maps die. · 58b0dea8
      Marja Hölttä authored
      For problems with the current approach, see crbug.com/v8/7564.
      
      We can instead gather all weak references in code in VisitEmbeddedPointer.
      
      BUG=v8:7564, v8:7308
      
      Change-Id: Ib369e7ab9efd62c90bdac69835318929c58217f2
      Reviewed-on: https://chromium-review.googlesource.com/968250
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52041}
      58b0dea8