1. 05 Jun, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Allow ReplaceWithValue to kill control. · 8f4d9a0a
      mstarzinger authored
      This allows any AdvancedReducer to remove exception projections from
      graphs. This is the common case when JS-operators are being replaced
      with pure values. The old NodeProperties::ReplaceWithValue is being
      deprecated in favor of AdvancedReducer::ReplaceWithValue.
      
      R=titzer@chromium.org
      TEST=unittests/AdvancedReducerTest
      
      Review URL: https://codereview.chromium.org/1168693002
      
      Cr-Commit-Position: refs/heads/master@{#28810}
      8f4d9a0a
  2. 03 Jun, 2015 1 commit
  3. 26 May, 2015 1 commit
  4. 21 May, 2015 2 commits
  5. 19 May, 2015 1 commit
  6. 12 May, 2015 1 commit
  7. 24 Apr, 2015 1 commit
  8. 19 Mar, 2015 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Remove indirection in JSToBoolean/JSUnaryNot lowering. · a75e4cea
      Benedikt Meurer authored
      This reduces the overhead of typed lowering, because we lower
      JSToBoolean/JSUnaryNot directly if possible, instead of first lowering
      to AnyToBoolean, and then letting the SimplifiedOperatorReducer do the
      further lowering.
      
      Also remove some obsolete tests from the cctest suite that have since
      been removed by proper unittests. And improve unitttest coverage for the
      typed lowering cases.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/999173003
      
      Cr-Commit-Position: refs/heads/master@{#27295}
      a75e4cea
  9. 09 Mar, 2015 2 commits
    • jarin's avatar
      [turbofan] Fix lazy deopt for JSToNumber conversions in binary operations. · 6f559b7e
      jarin authored
      This slightly hacky change provides lazy deopt points for to-number conversions in binops: When we deopt from a to-number conversion, we create a frame state with the already-converted value(s) so that we do not repeat the side effect of the conversion.
      
      Embenchen numbers are below. It is not quite clear what happened to fasta - the hot code looks nearly identical.
      
      Current: EmbenchenBox2d(RunTime): 12746 ms.
      d8-master: EmbenchenBox2d(RunTime): 13861 ms.
      ----------- bullet.js
      Current: EmbenchenBullet(RunTime): 17680 ms.
      d8-master: EmbenchenBullet(RunTime): 19170 ms.
      ----------- copy.js
      Current: EmbenchenCopy(RunTime): 4939 ms.
      d8-master: EmbenchenCopy(RunTime): 4943 ms.
      ----------- corrections.js
      Current: EmbenchenCorrections(RunTime): 6639 ms.
      d8-master: EmbenchenCorrections(RunTime): 6728 ms.
      ----------- fannkuch.js
      Current: EmbenchenFannkuch(RunTime): 4630 ms.
      d8-master: EmbenchenFannkuch(RunTime): 4872 ms.
      ----------- fasta.js
      Current: EmbenchenFasta(RunTime): 10209 ms.
      d8-master: EmbenchenFasta(RunTime): 9673 ms.
      ----------- lua_binarytrees.js
      Current: EmbenchenLuaBinaryTrees(RunTime): 12936 ms.
      d8-master: EmbenchenLuaBinaryTrees(RunTime): 15529 ms.
      ----------- memops.js
      Current: EmbenchenMemOps(RunTime): 7357 ms.
      d8-master: EmbenchenMemOps(RunTime): 7340 ms.
      ----------- primes.js
      Current: EmbenchenPrimes(RunTime): 7530 ms.
      d8-master: EmbenchenPrimes(RunTime): 7457 ms.
      ----------- skinning.js
      Current: EmbenchenSkinning(RunTime): 15832 ms.
      d8-master: EmbenchenSkinning(RunTime): 15630 ms.
      ----------- zlib.js
      Current: EmbenchenZLib(RunTime): 11176 ms.
      d8-master: EmbenchenZLib(RunTime): 11324 ms.
      
      BUG=
      
      Review URL: https://codereview.chromium.org/985713003
      
      Cr-Commit-Position: refs/heads/master@{#27071}
      6f559b7e
    • Jaroslav Sevcik's avatar
      [turbofan] Add an extra frame state for deoptimization before binary op. · 02e31851
      Jaroslav Sevcik authored
      BUG=
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/983153002
      
      Cr-Commit-Position: refs/heads/master@{#27060}
      02e31851
  10. 20 Feb, 2015 3 commits
  11. 12 Feb, 2015 1 commit
  12. 30 Jan, 2015 3 commits
  13. 29 Jan, 2015 1 commit
  14. 28 Jan, 2015 1 commit
  15. 23 Jan, 2015 1 commit
    • danno's avatar
      Remove the dependency of Zone on Isolate · c7b09aac
      danno authored
      Along the way:
      - Thread isolate parameter explicitly through code that used to
        rely on getting it from the zone.
      - Canonicalize the parameter position of isolate and zone for
        affected code
      - Change Hydrogen New<> instruction templates to automatically
        pass isolate
      
      R=mstarzinger@chromium.org
      LOG=N
      
      Review URL: https://codereview.chromium.org/868883002
      
      Cr-Commit-Position: refs/heads/master@{#26252}
      c7b09aac
  16. 22 Jan, 2015 1 commit
    • bmeurer's avatar
      Revert of Steps towards unification of number bitset and range types.... · 76193749
      bmeurer authored
      Revert of Steps towards unification of number bitset and range types. (patchset #4 id:60001 of https://codereview.chromium.org/837723006/)
      
      Reason for revert:
      Breaks test-types/Maybe, i.e.
      
      out/Release/cctest --random-seed=-707413401 test-types/Maybe
      
      started failing afterwards
      
      Original issue's description:
      > Steps towards unification of number bitset and range types.
      >
      > - New invariant on union types: if the union has a range then the number
      >   bits in the bitset must be cleared.
      >
      > - Various tweaks in intersection and union to satisfy the invariant.
      >
      > - Exposed and used representation bits in range types (and the Limits
      >   helper class).
      >
      > - Implemented Glb for ranges so that the Is predicate handles
      >   ranges correctly.
      >
      > - Change typer weakening so that it does not rely on GetRange.
      >   However, the code still seems to be a bit fragile.
      >
      > - Removed the Smi types from the type system core, instead introduced
      >   Signed31, Unsigned30 and created constructors for Small(Un)Signed
      >   that point to the right type for the architecture.
      >
      > - Punched a hole in the config to be able to get to the isolate so
      >   that it is possible to allocate heap numbers for newly created
      >   ranges.
      >
      > Patch by jarin@chromium.prg, original review here:
      > https://codereview.chromium.org/795713003/
      >
      > TBR=jarin@chromium.org
      > BUG=
      >
      > Committed: https://crrev.com/2764fd8d1a266a9136c987c2483492113b0c8d80
      > Cr-Commit-Position: refs/heads/master@{#26197}
      
      TBR=jkummerow@chromium.org,rossberg@chromium.org
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/868583002
      
      Cr-Commit-Position: refs/heads/master@{#26207}
      76193749
  17. 21 Jan, 2015 2 commits
    • rossberg's avatar
      Steps towards unification of number bitset and range types. · 2764fd8d
      rossberg authored
      - New invariant on union types: if the union has a range then the number
        bits in the bitset must be cleared.
      
      - Various tweaks in intersection and union to satisfy the invariant.
      
      - Exposed and used representation bits in range types (and the Limits
        helper class).
      
      - Implemented Glb for ranges so that the Is predicate handles
        ranges correctly.
      
      - Change typer weakening so that it does not rely on GetRange.
        However, the code still seems to be a bit fragile.
      
      - Removed the Smi types from the type system core, instead introduced
        Signed31, Unsigned30 and created constructors for Small(Un)Signed
        that point to the right type for the architecture.
      
      - Punched a hole in the config to be able to get to the isolate so
        that it is possible to allocate heap numbers for newly created
        ranges.
      
      Patch by jarin@chromium.prg, original review here:
      https://codereview.chromium.org/795713003/
      
      TBR=jarin@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/837723006
      
      Cr-Commit-Position: refs/heads/master@{#26197}
      2764fd8d
    • mstarzinger's avatar
      Add missing FrameState to JSTypedLoweringTester. · 65eb1617
      mstarzinger authored
      R=titzer@chromium.org
      TEST=cctest/test-js-typed-lowering/JSToNumberOfNumberOrOtherPrimitive
      
      Review URL: https://codereview.chromium.org/862963002
      
      Cr-Commit-Position: refs/heads/master@{#26194}
      65eb1617
  18. 15 Jan, 2015 2 commits
  19. 14 Jan, 2015 1 commit
  20. 05 Jan, 2015 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Correctify JSToBoolean lowering. · 9def087e
      Benedikt Meurer authored
      Introduce a new AnyToBoolean simplified operator to handle the later
      lowering of boolean conversions. Previously we tried to hack that with
      the generic JSToBoolean, having its context set to zero, but that lead
      to various problems/bugs and did not handle all cases.
      
      TEST=cctest,unittests
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/800833003
      
      Cr-Commit-Position: refs/heads/master@{#25958}
      9def087e
  21. 16 Dec, 2014 1 commit
  22. 12 Dec, 2014 1 commit
  23. 11 Dec, 2014 1 commit
  24. 10 Dec, 2014 2 commits
  25. 09 Dec, 2014 1 commit
  26. 18 Nov, 2014 1 commit
  27. 17 Nov, 2014 1 commit
    • Jaroslav Sevcik's avatar
      [turbofan] Remove int32 narrowing during typed lowering. · c3af691e
      Jaroslav Sevcik authored
      With Int32Add we lose the int/uint distinction, so later, in simplified lowering we can make a wrong decision. E.g., see the attached test case, where we lower NumberAdd -> Int32Add because inputs are Uint32, but during simplified lowering we change the inputs to Int32, so we get a wrong result.
      
      Simplified lowering will lower the NumberAdd operations anyway, so we should lose performance.
      
      BUG=
      R=bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/721723004
      
      Cr-Commit-Position: refs/heads/master@{#25368}
      c3af691e
  28. 13 Nov, 2014 1 commit
  29. 10 Nov, 2014 1 commit
  30. 29 Oct, 2014 1 commit
  31. 28 Oct, 2014 1 commit