1. 20 Mar, 2018 36 commits
  2. 19 Mar, 2018 4 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