1. 20 Jun, 2017 5 commits
    • Clemens Hammacher's avatar
      [compiler] Allow for interfaces without context · e9d728d0
      Clemens Hammacher authored
      Especially in wasm, many builtins don't actually need a context
      parameter. We currently pass Smi::kZero instead. This CL allows to
      generate a CallDescriptor for calling stubs without passing a context,
      resulting in reduced compile time and code size, and increased
      performance when executing these builtins.
      
      We were calling the ThrowWasm* functions without passing a context
      anyway (directly from code-generator-<arch>.h). With this change, we
      will also call the StackCheck builtin without passing a (null) context.
      This saves two bytes of code in each function plus each loop, and also
      slightly reduces compile time (very noisy, but statistically
      significant).
      
      Drive-by: Use NoContextConstant instead of SmiConstant(Smi::kZero).
      
      R=mstarzinger@chromium.org, ahaas@chromium.org
      
      Change-Id: If794cc4c262a9cca8d29a68010803c01a2eef4a3
      Reviewed-on: https://chromium-review.googlesource.com/541423Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46044}
      e9d728d0
    • bmeurer's avatar
      [turbofan] Introduce new JSCallWithArrayLike operator. · 767ce788
      bmeurer authored
      Add a new JSCallWithArrayLike operator that is backed by the
      CallWithArrayLike builtin, and use that operator for both
      Function.prototype.apply and Reflect.apply inlining. Also unify
      the handling of JSCallWithArrayLike and JSCallWithSpread in
      the JSCallReducer to reduce the copy&paste overhead.
      
      Drive-by-fix: Add a lot of test coverage for Reflect.apply and
      Function.prototype.apply in optimized code, especially for some
      corner cases, which was missing so far.
      
      BUG=v8:4587,v8:5269
      R=petermarshall@chromium.org
      
      Review-Url: https://codereview.chromium.org/2950773002
      Cr-Commit-Position: refs/heads/master@{#46041}
      767ce788
    • Peter Marshall's avatar
      [runtime] Port SpreadCall code to CSA. · a971a64d
      Peter Marshall authored
      We can remove a lot of native code and rely on CallOrConstructVarargs
      to do the stack manipulation for us.
      
      This will also take advantage of the fast-path for double arrays in
      CallOrConstructDoubleVarargs.
      
      We can also remove Runtime_SpreadIterableFixed because it isn't used
      anymore. We just call directly into spread_iterable from CSA.
      
      Bug: v8:6488, chromium:704966
      Change-Id: I81a18281f062619851134fff7ce88471566ee3b5
      Reviewed-on: https://chromium-review.googlesource.com/535615Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46038}
      a971a64d
    • Daniel Ehrenberg's avatar
      [builtins] Make Date toString functions conform to new spec · 2854ea7b
      Daniel Ehrenberg authored
      Previously, Date.toString() and friends were completely
      implementation-defined. However, they actually seemed to match
      each other's behavior with the exception of how years less than
      1000 are formatted. The rough consensus among browsers seemed
      to be %04d, so this was standardized at TC39 [1]. V8 previously
      used %4d (it was the only one to do so); this patch adopts
      the new standard.
      
      [1] https://github.com/tc39/ecma262/commit/5d4acf3377e1b0ad4a4660c57108db1b28ef20ff
      
      Bug: v8:6076
      Change-Id: I8c795a4e1b71187ad7c24a1aee8d7d66719a2586
      Reviewed-on: https://chromium-review.googlesource.com/536733
      Commit-Queue: Daniel Ehrenberg <littledan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46037}
      2854ea7b
    • georgia.kouveli's avatar
      [arm64] Make ArgumentsAdaptorTrampoline maintain 16-byte stack alignment. · dc2f3c1d
      georgia.kouveli authored
      This is to help the transition to using CSP as the stack pointer.
      It does not make JSSP aligned yet, just makes sure that we only modify
      JSSP by a multiple of 16 bytes. To do this, we might need to add a padding
      slot above the receiver.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2938603002
      Cr-Commit-Position: refs/heads/master@{#46030}
      dc2f3c1d
  2. 19 Jun, 2017 4 commits
  3. 16 Jun, 2017 6 commits
  4. 15 Jun, 2017 1 commit
    • Adam Klein's avatar
      Revert "[builtins] Move most WeakMap/WeakSet code from JS to C++ builtins" · 431abca0
      Adam Klein authored
      This reverts commit 8196e102.
      
      Reason for revert: Performance regression due to hashcode lookup.
      
      Original change's description:
      > [builtins] Move most WeakMap/WeakSet code from JS to C++ builtins
      > 
      > They were already implemented mostly in C++ (only error/negative
      > cases were handled in script), so this is mostly just a cleanup.
      > Only the constructors remain in script after this CL.
      > 
      > Bug: v8:6354
      > Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      > Change-Id: I5b3579337a8e33dc30d49c2da5cfd42baec697bb
      > Reviewed-on: https://chromium-review.googlesource.com/531670
      > Reviewed-by: Camillo Bruni <cbruni@chromium.org>
      > Reviewed-by: Sathya Gunasekaran <gsathya@chromium.org>
      > Commit-Queue: Adam Klein <adamk@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#45924}
      
      TBR=adamk@chromium.org,cbruni@chromium.org,gsathya@chromium.org
      Bug: v8:6354, chromium:733238
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      
      Change-Id: Ia5a741b9587886298f3ca057f6a6adeba556b8e0
      Reviewed-on: https://chromium-review.googlesource.com/537207Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45966}
      431abca0
  5. 14 Jun, 2017 4 commits
  6. 13 Jun, 2017 10 commits
  7. 12 Jun, 2017 9 commits
  8. 09 Jun, 2017 1 commit