1. 15 Feb, 2018 10 commits
  2. 14 Feb, 2018 19 commits
  3. 13 Feb, 2018 11 commits
    • Junliang Yan's avatar
      Reland "PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)" · 66ff72a7
      Junliang Yan authored
      This is a reland of cee362af.
      
      Original change's description:
      > PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)
      > 
      > Port 8f489e73
      > 
      > Original Commit Message:
      > 
      >     This introduces masking of loads with speculation bit during code generation.
      >     At the moment, this is done only for x64 optimized code, under the
      >     --branch-load-poisoning flag.
      > 
      >     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.
      > 
      > R=mvstanton@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      > BUG=
      > LOG=N
      > 
      > Change-Id: I7decc16bbadf87a8c8b178278eb79a9b783f79e1
      > Reviewed-on: https://chromium-review.googlesource.com/916744
      > Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
      > Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      > Cr-Commit-Position: refs/heads/master@{#51275}
      
      Change-Id: Id22416487b05bef06c4cfdae35811a22f21cd0a0
      Reviewed-on: https://chromium-review.googlesource.com/916865Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#51278}
      66ff72a7
    • Camillo Bruni's avatar
      [errors] Use FATAL macro where possible · 52b3b491
      Camillo Bruni authored
      FATAL(...) avoid creating literal strings for line number in release
      mode.
      
      Bug: v8:7310
      Change-Id: I6a3e329adce36b0efcc240068f6a241d1cca4b6f
      Reviewed-on: https://chromium-review.googlesource.com/915066Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51277}
      52b3b491
    • Junliang Yan's avatar
      Revert "PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)" · 4513ee2e
      Junliang Yan authored
      This reverts commit cee362af.
      
      Reason for revert: forget to upload latest version
      
      Original change's description:
      > PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64)
      > 
      > Port 8f489e73
      > 
      > Original Commit Message:
      > 
      >     This introduces masking of loads with speculation bit during code generation.
      >     At the moment, this is done only for x64 optimized code, under the
      >     --branch-load-poisoning flag.
      > 
      >     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.
      > 
      > R=​mvstanton@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      > BUG=
      > LOG=N
      > 
      > Change-Id: I7decc16bbadf87a8c8b178278eb79a9b783f79e1
      > Reviewed-on: https://chromium-review.googlesource.com/916744
      > Reviewed-by: Joran Siu <joransiu@ca.ibm.com>
      > Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      > Cr-Commit-Position: refs/heads/master@{#51275}
      
      TBR=mvstanton@chromium.org,michael_dawson@ca.ibm.com,jyan@ca.ibm.com,joransiu@ca.ibm.com
      
      Change-Id: I7e56cdcd99b3c6004803b4502ec1054e89c1e212
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Reviewed-on: https://chromium-review.googlesource.com/916864Reviewed-by: 's avatarJunliang Yan <jyan@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#51276}
      4513ee2e
    • Junliang Yan's avatar
      PPC/s390: [turbofan] Masking/poisoning in codegen (optimized code, x64) · cee362af
      Junliang Yan authored
      Port 8f489e73
      
      Original Commit Message:
      
          This introduces masking of loads with speculation bit during code generation.
          At the moment, this is done only for x64 optimized code, under the
          --branch-load-poisoning flag.
      
          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.
      
      R=mvstanton@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=
      LOG=N
      
      Change-Id: I7decc16bbadf87a8c8b178278eb79a9b783f79e1
      Reviewed-on: https://chromium-review.googlesource.com/916744Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#51275}
      cee362af
    • Andreas Haas's avatar
      [heap] Make setting use_tasks_ explicit · 1e9504ba
      Andreas Haas authored
      At the moment the flag is set too late, it is possible that the GC still
      tries to post tasks in Isolate::Deinit when the isolate is already
      disconnected from the platform, see the referenced bug.
      
      R=ulan@chromium.org
      
      Bug: chromium:810739
      Change-Id: Ibcd226cb44cc903f2a46e7cccf682b3938c9d408
      Reviewed-on: https://chromium-review.googlesource.com/915942Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51274}
      1e9504ba
    • Junliang Yan's avatar
      PPC/s390: [Ignition] [TurboFan] Generate speculation poison in code generator. · abac06aa
      Junliang Yan authored
      Port a021b6c4
      
      Original Commit Message:
      
          Moves generation of speculation poison to be based on the PC target vs the
          actual PC being executed. The speculation poison is generated in the prologue
          of the generated code if CompilationInfo::kGenerateSpeculationPoison is set.
          The result is stored in a known register, which can then be read using the
          SpeculationPoison machine node.
      
          Currently we need to ensure the SpeculationPoison node is scheduled right after
          the code prologue so that the poison register doesn't get clobbered. This is
          currently not verified, however it's only use is in RawMachineAssembler where
          it is manually scheduled early.
      
          The Ignition bytecode handlers are updated to use this speculation poison
          rather than one generated by comparing the target bytecode.
      
      R=rmcilroy@chromium.org, joransiu@ca.ibm.com, michael_dawson@ca.ibm.com
      BUG=chromium:798964
      LOG=N
      
      Change-Id: I4b9a1b0865b6164171cf83f0e45c36c69ac08a18
      Reviewed-on: https://chromium-review.googlesource.com/914848Reviewed-by: 's avatarJoran Siu <joransiu@ca.ibm.com>
      Commit-Queue: Junliang Yan <jyan@ca.ibm.com>
      Cr-Commit-Position: refs/heads/master@{#51273}
      abac06aa
    • Mike Stanton's avatar
      [turbofan] Masking/poisoning in codegen (optimized code, x64) · 8f489e73
      Mike Stanton authored
      This introduces masking of loads with speculation bit during code generation.
      At the moment, this is done only for x64 optimized code, under the
      --branch-load-poisoning flag.
      
      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: Ie51fdbde578fc289dff029794f3cfe8eaf33e1ef
      Reviewed-on: https://chromium-review.googlesource.com/901625
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51272}
      8f489e73
    • Michael Starzinger's avatar
      [assembler] Fix compilation for non-simulator builds. · c74af694
      Michael Starzinger authored
      R=mvstanton@chromium.org
      
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Change-Id: I6175fd4c4e2999667ba04c89df5cd3f2b380ae0a
      Reviewed-on: https://chromium-review.googlesource.com/916263Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51271}
      c74af694
    • Michael Starzinger's avatar
      [turbofan] Better checking of code start register. · 5586ecfc
      Michael Starzinger authored
      This decouples the checking of the {kJavaScriptCallCodeStartRegister}
      from the deoptimization checks. We now rely more heavily on the above
      register and should check its validity more broadly. Note that there
      also is a bug fix for the ARM port contained in this change.
      
      R=mvstanton@chromium.org
      
      Change-Id: I27d8b72cb2b36a85dae4bbbf35e4dbcf150eac01
      Reviewed-on: https://chromium-review.googlesource.com/916242
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51270}
      5586ecfc
    • Michael Starzinger's avatar
      [assembler] Make {RelocInfo} independent of the Isolate. · a7402558
      Michael Starzinger authored
      Now that instruction cache flushing is process-wide and no longer bound
      to a specific {Isolate}, we can also make setters on the {RelocInfo}
      structure equally independent of the {Isolate} and remove the respective
      parameter everywhere.
      
      R=ahaas@chromium.org
      
      Change-Id: I7b21f6f79d0d6cf73424019b9e808c3ec76de08e
      Reviewed-on: https://chromium-review.googlesource.com/915922Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Michael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#51269}
      a7402558
    • sreten.kovacevic's avatar
      [Liftoff] Refactor conditional instructions · 1e89fed0
      sreten.kovacevic authored
      Change prototypes of conditional jump and set instructions,
      change their implementation accordingly and port these instructions
      to MIPS.
      
      Bug: v8:6600
      Change-Id: I8e2c9c874f2fde9a1c1b5a34eaa9e72475e69bc5
      Reviewed-on: https://chromium-review.googlesource.com/913252Reviewed-by: 's avatarIvica Bogosavljevic <ivica.bogosavljevic@mips.com>
      Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Sreten Kovacevic <sreten.kovacevic@mips.com>
      Cr-Commit-Position: refs/heads/master@{#51268}
      1e89fed0