1. 13 Feb, 2020 1 commit
    • Jakob Gruber's avatar
      Quick fix for array reduction tests · f4402716
      Jakob Gruber authored
      These tests are likely missing %PrepareFunctionForOptimization
      annotation of lambdas. Thus lambdas are no longer inlined and
      %DeoptimizeNow does nothing, while the entire point of these tests is
      to test deoptimization paths.
      
      Disabling lazy feedback allocation is a quick fix to restore coverage
      until we can land a more complete fix (for details see the linked
      bug).
      
      Bug: v8:10195
      Change-Id: I4038cdc5718230253ffb5bbc57d574342c652377
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2054096
      Commit-Queue: Tobias Tebbi <tebbi@chromium.org>
      Auto-Submit: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66261}
      f4402716
  2. 30 Apr, 2019 1 commit
  3. 16 Jan, 2018 1 commit
  4. 29 Dec, 2017 1 commit
  5. 23 Oct, 2017 1 commit
  6. 16 Oct, 2017 1 commit
    • Mike Stanton's avatar
      [Turbofan] Introduce TransitionAndStore[Non]NumberElement · c7990226
      Mike Stanton authored
      In Array.prototype.map, we have to store the map result in an output array.
      If we know we are storing objects, or special objects like boolean, rather
      than a number, then we can reduce the amount of checks we have to do to
      transition the output array to the appropriate ElementsKind.
      
      Likewise, if we know we've got floating point values, we can specialize 
      appropriately to a double array.
      
      Bug: v8:6896
      Change-Id: I375daf604562b53638ea749945c1a4c907e33547
      Reviewed-on: https://chromium-review.googlesource.com/711845
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48579}
      c7990226
  7. 11 Oct, 2017 1 commit
    • Georgia Kouveli's avatar
      [arm64] Update BuiltinContinuation frames for jssp alignment. · a63f045c
      Georgia Kouveli authored
      Adds some necessary padding to ensure the frame is 16-byte aligned.
      We don't yet consider the bailout state, which will be handled separately.
      
      This patch also improves the code generated for ContinueTo*Builtin* stubs.
      
      Finally, it adds a test that checks the return value for Array.map in
      the case where a LAZY deopt results in a topmost builtin continuation
      frame - this is easy to break if the padding for the result is done
      incorrectly in NotifyBuiltinContinuation, but was not detected by existing
      tests.
      
      Bug: v8:6644
      Change-Id: Id1a294950cdf535e2bfdb0ed27c67f077ec34f8a
      Reviewed-on: https://chromium-review.googlesource.com/704835
      Commit-Queue: Georgia Kouveli <georgia.kouveli@arm.com>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48465}
      a63f045c
  8. 10 Aug, 2017 1 commit
  9. 02 Aug, 2017 1 commit
  10. 31 Jul, 2017 1 commit
  11. 28 Jul, 2017 4 commits
  12. 27 Jul, 2017 1 commit
  13. 19 Jul, 2017 1 commit
  14. 13 Jul, 2017 2 commits
  15. 07 Jun, 2017 1 commit
    • danno's avatar
      Inline Array.prototype.forEach in TurboFan · 90c3a2d5
      danno authored
      This CL contains a few pieces:
      
      - A new mechanism to create "BuiltinContinuation" checkpoints in TurboFan
        graphs, which--when triggered--swizzle the values in the the FrameState to be
        parameters to a typically TF-generated builtin that resumes execution to finish
        the slow-case functionality.
      - Continuation builtins that have special handling in the deoptimizer and their own
        new frame type to ensure that the values they need to begin executing can be stashed
        away and restored immediately before the builtin is called via a trampoline that runs
        when the continuation builtin's frame execution resumes.
      - An implementation of Array.prototype.forEach in TurboFan that can be used to
        inline it. The inlined forEach implementation uses the checkpoints mechanism
        described above to deopt in the middle of the forEach in the cases that optimization
        invariants are violated. There is a slightly different continuation stub for each
        deopt point in the forEach implementation to ensure the correct side-effects, i.e.
        that the deopt of the builtin isn't programmatically observable.
      
      Review-Url: https://codereview.chromium.org/2803853005
      Cr-Commit-Position: refs/heads/master@{#45764}
      90c3a2d5