1. 30 Oct, 2015 1 commit
  2. 28 Oct, 2015 2 commits
  3. 26 Oct, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Lower unmapped arguments objects in inline frame. · 0af58d24
      mstarzinger authored
      This lowers JSCreateArguments nodes within inline (i.e. non-outermost)
      frames that create "unmapped arguments objects" to inline allocations.
      
      The arguments count as well as each value is statically known and can be
      directly stored into the arguments object. Note that the object is still
      context-dependent and the map is loaded from the current context. The
      object size is not taken into account for now, we might want to limit it
      later though to keep code size bounded.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1412113004
      
      Cr-Commit-Position: refs/heads/master@{#31550}
      0af58d24
  4. 19 Oct, 2015 1 commit
  5. 07 Oct, 2015 1 commit
  6. 02 Oct, 2015 1 commit
    • mstarzinger's avatar
      [turbofan] Call FastNewContextStub for function context. · ea264012
      mstarzinger authored
      This lowers JSCreateFunctionContext nodes to call the above stub for
      help with allocating function contexts when possible. It also contains
      an implementation for inlined allocations of such contexts, which is
      still behind a flag until inlined allocations are ready for prime time.
      
      TEST=unittests/JSTypedLoweringTest.JSCreateFunctionContext
      R=mvstanton@chromium.org
      
      Review URL: https://codereview.chromium.org/1380113002
      
      Cr-Commit-Position: refs/heads/master@{#31068}
      ea264012
  7. 24 Sep, 2015 1 commit
  8. 13 Jul, 2015 1 commit
  9. 08 Jul, 2015 2 commits
  10. 03 Jul, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Right hand side of shifts needs ToUint32. · 5f288c20
      bmeurer authored
      Currently we lower shifts directly to machine operators, and add an
      appropriate Word32And to implement the & 0x1F operation on the right
      hand side required by the specification. However for Word32And we assume
      Int32 in simplified lowering, which is basically changes the right hand
      side bit interpretation for the shifts from Uint32 to Int32, which is
      obviously wrong. So now we represent that explicitly by proper
      simplified operators for the shifts, which are lowered to machine in
      simplified lowering.
      
      R=jarin@chromium.org
      
      Review URL: https://codereview.chromium.org/1213803008
      
      Cr-Commit-Position: refs/heads/master@{#29465}
      5f288c20
  11. 23 Jun, 2015 1 commit
  12. 15 Jun, 2015 1 commit
    • bmeurer's avatar
      [turbofan] Remove the TryLowerDirectJSCall hack from generic lowering. · 6e5b9ffe
      bmeurer authored
      The TryLowerDirectJSCall method tried to lower to a direct JavaScript
      function call depending on the type of the receiver, but only if the
      target is a cosntant JSFunction. Since this depends on types and is not
      required for correctness, it shouldn't be part of generic lowering
      anyway. So this functionality was moved to typed lowering instead, and
      we use proper types for the target instead.
      
      R=mstarzinger@chromium.org
      
      Review URL: https://codereview.chromium.org/1182193005
      
      Cr-Commit-Position: refs/heads/master@{#29028}
      6e5b9ffe
  13. 08 Jun, 2015 1 commit
  14. 03 Jun, 2015 1 commit
  15. 02 Jun, 2015 2 commits
  16. 01 Jun, 2015 1 commit
  17. 19 May, 2015 1 commit
  18. 13 May, 2015 1 commit
  19. 08 May, 2015 1 commit
  20. 04 May, 2015 1 commit
  21. 27 Apr, 2015 2 commits
  22. 20 Apr, 2015 1 commit
  23. 16 Apr, 2015 1 commit
  24. 13 Apr, 2015 1 commit
  25. 09 Mar, 2015 1 commit
    • 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
  26. 14 Jan, 2015 2 commits
  27. 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
  28. 16 Dec, 2014 1 commit
  29. 12 Dec, 2014 1 commit
  30. 09 Dec, 2014 1 commit
  31. 04 Dec, 2014 1 commit
  32. 02 Dec, 2014 1 commit
  33. 18 Nov, 2014 1 commit
  34. 17 Nov, 2014 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Fix pushing of JSToBooleans into Phis. · 2eaca10e
      Benedikt Meurer authored
      Now we actually implement it the way it is meant to be, that is:
      
        JSToBoolean(Phi(x1,...,xn):primitive)
          => Phi(JSToBoolean(x1),...,JSToBoolean(xn)):boolean
      
      This also fixes the endless recursion within JSTypedLowering when
      the GraphReducer does all possible reductions instead of using the
      generic algorithm.
      
      R=dcarney@chromium.org
      
      Review URL: https://codereview.chromium.org/730043002
      
      Cr-Commit-Position: refs/heads/master@{#25376}
      2eaca10e
  35. 13 Nov, 2014 1 commit