1. 02 Jan, 2017 1 commit
  2. 13 Dec, 2016 1 commit
  3. 24 Nov, 2016 1 commit
  4. 23 Sep, 2016 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Improve representation selection for Smi checking. · dfbb3db5
      Benedikt Meurer authored
      Rename the high-level operators CheckTaggedSigned to CheckSmi and
      CheckTaggedPointer to CheckHeapObject, to better match the naming
      convention (i.e. ObjectIsSmi and CheckSmi, ObjectIsString and
      CheckString, etc.).
      
      For lowering CheckSmi, always report TaggedSigned representation
      and let the RepresentationChanger come up with a reasonable conversion
      from whatever input representation to TaggedSigned. This way we no
      longer insert the useless ChangeSomethingToTagged and then Smi check
      the result sequences, i.e. mostly reduces the amount of useless code
      being generated. But we also observe a few performance improvements
      on some crypto benchmarks.
      
      This would enable us to avoid the Smi canonicalization when going from
      Float64 to Tagged completely and thus match the representation selection
      of Crankshaft in many areas (which might reduce the amount of
      polymorphism until we fix our object model).
      
      A follow-up CL will do the same for CheckHeapObject.
      
      BUG=v8:5267
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/2362173003 .
      
      Cr-Commit-Position: refs/heads/master@{#39654}
      dfbb3db5
  5. 03 Aug, 2016 1 commit
  6. 27 Jul, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce CheckString simplified operator. · 3deb71fb
      bmeurer authored
      Introduce the CheckString during native context specialization when we
      have string map feedback on a LOAD_IC/STORE_IC. The CheckString
      operator, just like its CheckNumber pendant, renames the input and
      assigns a proper type, which we will use soon to lower access operations
      on Strings, i.e. charCodeAt calls or keyed accesses.
      
      R=jarin@chromium.org
      BUG=v8:4930,v8:5141
      
      Review-Url: https://codereview.chromium.org/2181943003
      Cr-Commit-Position: refs/heads/master@{#38076}
      3deb71fb
  7. 14 Jul, 2016 1 commit
  8. 11 Jul, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce CheckedInt32Div and CheckedInt32Mod operators. · 03bde266
      bmeurer authored
      Consume Smi/Signed32 feedback for division and modulus and introduce
      appropriate checked operators. This is especially important for modulus
      where the Float64Mod operator is significantly slower than Int32Mod on
      most platforms. For division it's mostly important to propagate
      integerness, i.e. to avoid follow-up conversions between float and
      int32.
      
      Drive-by-fix: Use Int32Mod for the ModulusStub (and the bytecode handler)
      when the inputs are both Smi.
      
      R=jarin@chromium.org
      
      Review-Url: https://codereview.chromium.org/2138633002
      Cr-Commit-Position: refs/heads/master@{#37621}
      03bde266
  9. 30 Jun, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Introduce CheckIf simplified operator. · 483291d2
      bmeurer authored
      This adds a new CheckIf operator and changes all direct uses of
      DeoptimizeIf and DeoptimizeUnless on the JavaScript level to use
      CheckIf (or one of the more concrete check operators) instead.
      This way we do not depend on particular frame states, but the
      effect/control linearizer will assign an appropriate frame
      state instead.
      
      R=jarin@chromium.org
      BUG=v8:5141
      
      Review-Url: https://codereview.chromium.org/2115513002
      Cr-Commit-Position: refs/heads/master@{#37423}
      483291d2
  10. 29 Jun, 2016 1 commit
  11. 28 Jun, 2016 1 commit
  12. 23 Jun, 2016 1 commit
    • bmeurer's avatar
      [turbofan] Initial version of RedundancyElimination. · 5250da68
      bmeurer authored
      The redundancy elimination is currently a graph reducer that tries to
      combine redundant checks in the effect chain. It does this by
      propagating the checks that happened along effect paths, which is pretty
      similar to what the BranchElimination does on the control chain. We run
      this reducer together with the other optimizations right after the
      representation selection.
      
      An upcoming CL will extend the redundancy elimination to also eliminate
      redundant loads (and eventually map checks).
      
      R=jarin@chromium.org
      BUG=v8:5141
      
      Review-Url: https://codereview.chromium.org/2091503003
      Cr-Commit-Position: refs/heads/master@{#37208}
      5250da68