1. 21 Feb, 2019 1 commit
  2. 19 Feb, 2019 1 commit
  3. 15 Feb, 2019 1 commit
  4. 14 Feb, 2019 1 commit
  5. 13 Feb, 2019 3 commits
  6. 09 Feb, 2019 5 commits
    • Mike Stanton's avatar
      Reland "Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC"" · ba1d0f25
      Mike Stanton authored
      This is a reland of 7179cdb1
      
      The node integration build failure appears to be constant.
      
      Original change's description:
      > Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC"
      >
      > (Fixed test failure in lite-mode)
      >
      > Introduce a PREMONOMORPHIC state to StoreGlobalIC
      >
      > It's used rather narrowly for now -- only when we run into an
      > interceptor during the lookup. After the call to SetProperty, we know
      > more. That is, the interceptor was only there because it's a new
      > property, and the call to SetProperty ends up creating it.
      >
      > By delaying the initialization of the IC, we recognize the (now)
      > created property, and can provide good feedback downstream to
      > TurboFan.
      >
      > TBR=ishell@chromium.org
      >
      > Bug: v8:8712
      > Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850
      > Reviewed-on: https://chromium-review.googlesource.com/c/1460955
      > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59483}
      
      TBR=ishell@chromium.org
      
      Bug: v8:8712
      Change-Id: I31aa4c066ff46cb39187eed392313d2e524f4445
      Reviewed-on: https://chromium-review.googlesource.com/c/1461998Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59485}
      ba1d0f25
    • Michael Stanton's avatar
      Revert "Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC"" · e986f440
      Michael Stanton authored
      This reverts commit 7179cdb1.
      
      Reason for revert: Breaks node integration build.
      
      Original change's description:
      > Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC"
      > 
      > (Fixed test failure in lite-mode)
      > 
      > Introduce a PREMONOMORPHIC state to StoreGlobalIC
      > 
      > It's used rather narrowly for now -- only when we run into an
      > interceptor during the lookup. After the call to SetProperty, we know
      > more. That is, the interceptor was only there because it's a new
      > property, and the call to SetProperty ends up creating it.
      > 
      > By delaying the initialization of the IC, we recognize the (now)
      > created property, and can provide good feedback downstream to
      > TurboFan.
      > 
      > TBR=ishell@chromium.org
      > 
      > Bug: v8:8712
      > Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850
      > Reviewed-on: https://chromium-review.googlesource.com/c/1460955
      > Reviewed-by: Michael Stanton <mvstanton@chromium.org>
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59483}
      
      TBR=mvstanton@chromium.org,ishell@chromium.org
      
      Change-Id: Ifd45908ee66760ef9199d9722b7e558c31f77830
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8712
      Reviewed-on: https://chromium-review.googlesource.com/c/1461997Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59484}
      e986f440
    • Mike Stanton's avatar
      Reland "Introduce a PREMONOMORPHIC state to StoreGlobalIC" · 7179cdb1
      Mike Stanton authored
      (Fixed test failure in lite-mode)
      
      Introduce a PREMONOMORPHIC state to StoreGlobalIC
      
      It's used rather narrowly for now -- only when we run into an
      interceptor during the lookup. After the call to SetProperty, we know
      more. That is, the interceptor was only there because it's a new
      property, and the call to SetProperty ends up creating it.
      
      By delaying the initialization of the IC, we recognize the (now)
      created property, and can provide good feedback downstream to
      TurboFan.
      
      TBR=ishell@chromium.org
      
      Bug: v8:8712
      Change-Id: Ieb79dcf1354ee294ad0f479a4a6c41a77f389850
      Reviewed-on: https://chromium-review.googlesource.com/c/1460955Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59483}
      7179cdb1
    • Michael Stanton's avatar
      Revert "Introduce a PREMONOMORPHIC state to StoreGlobalIC" · b5003d26
      Michael Stanton authored
      This reverts commit ec06b5c4.
      
      Reason for revert: Breaks "lite" builder.
      
      Original change's description:
      > Introduce a PREMONOMORPHIC state to StoreGlobalIC
      > 
      > It's used rather narrowly for now -- only when we run into an
      > interceptor during the lookup. After the call to SetProperty, we know
      > more. That is, the interceptor was only there because it's a new
      > property, and the call to SetProperty ends up creating it.
      > 
      > By delaying the initialization of the IC, we recognize the (now)
      > created property, and can provide good feedback downstream to
      > TurboFan.
      > 
      > Bug: v8:8712
      > Change-Id: I4e10ba220c8363b393c6de84ce35fe5ef0e9c427
      > Reviewed-on: https://chromium-review.googlesource.com/c/1456090
      > Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#59481}
      
      TBR=mvstanton@chromium.org,ishell@google.com,ishell@chromium.org
      
      Change-Id: I072a55275d64315924090a68247bb430f5c4f03d
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8712
      Reviewed-on: https://chromium-review.googlesource.com/c/1460954Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59482}
      b5003d26
    • Mike Stanton's avatar
      Introduce a PREMONOMORPHIC state to StoreGlobalIC · ec06b5c4
      Mike Stanton authored
      It's used rather narrowly for now -- only when we run into an
      interceptor during the lookup. After the call to SetProperty, we know
      more. That is, the interceptor was only there because it's a new
      property, and the call to SetProperty ends up creating it.
      
      By delaying the initialization of the IC, we recognize the (now)
      created property, and can provide good feedback downstream to
      TurboFan.
      
      Bug: v8:8712
      Change-Id: I4e10ba220c8363b393c6de84ce35fe5ef0e9c427
      Reviewed-on: https://chromium-review.googlesource.com/c/1456090
      Commit-Queue: Michael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59481}
      ec06b5c4
  7. 31 Jan, 2019 2 commits
    • Z Duong Nguyen-Huu's avatar
      Maintain order of keys for object.assign as spec · 1db56cb5
      Z Duong Nguyen-Huu authored
      According to spec https://tc39.github.io/ecma262/#sec-object.assign,
      https://tc39.github.io/ecma262/#sec-ordinaryownpropertykeys, object.assign should copy symbols last. The current implementation ignores that order.
      The idea of the fix here is to do iteration twice, one to skip symbol first then one to skip string.
      
      Bug: v8:6705
      Change-Id: I27a353e0c44a8f7adcf55d7143dd3ce26bea2724
      Reviewed-on: https://chromium-review.googlesource.com/c/1432597
      Commit-Queue: Z Nguyen-Huu <duongn@microsoft.com>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59258}
      1db56cb5
    • Benedikt Meurer's avatar
      [ic] Don't unroll the loop in AccessorAssembler::HandlePolymorphicCase(). · e004fe75
      Benedikt Meurer authored
      Previously AccessorAssembler::HandlePolymorphicCase() had 4 versions of
      the inner loop unrolled, but we always had to check against the length
      after 1 (POLYMORPHIC with name) or 2 (regular POLYMORPHIC) unrolled
      iterations anyways, so there's not a lot of benefit to unrolling besides
      the potentially better branch prediction in some cases. But that doesn't
      seem to be beneficial even in extreme cases (in fact on ARM cores we
      might get some benefit from having less code instead), and probably
      doesn't justify the additional C++ / generated code.
      
      I used the following extreme micro-benchmark to check the worst case
      performance impact:
      
      ```js
      function test(o, n) {
        var result;
        for (var i = 0; i < n; ++i) {
          result = o.x;
        }
        return result;
      }
      
      const N = 1e8;
      const objs = [{x: 0}, {x:1,a:1}, {x:2,b:2}, {x:3,c:3}];
      for (var j = 0; j < objs.length; ++j) test(objs[j], N);
      
      console.time('Time');
      for (var j = 0; j < objs.length; ++j) test(objs[j], N);
      console.timeEnd('Time');
      ```
      
      Running this with --noopt shows a ~1% performance regression with this
      patch on a beefy z840 gLinux workstation, which gives me some confidence
      that overall this patch is going to be neutral and maybe beneficial in
      case of less powerful ARM cores.
      
      Note to performance sheriffs: This could potentially tank some
      performance tests. In that case we may need to revisit the unrolling.
      
      Bug: v8:8562
      Change-Id: I731599a7778da1992d981d36022c407ef5c735eb
      Reviewed-on: https://chromium-review.googlesource.com/c/1448275Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59252}
      e004fe75
  8. 30 Jan, 2019 1 commit
  9. 28 Jan, 2019 2 commits
  10. 25 Jan, 2019 1 commit
  11. 18 Jan, 2019 1 commit
  12. 27 Dec, 2018 1 commit
  13. 17 Dec, 2018 3 commits
  14. 12 Dec, 2018 1 commit
    • Mythri's avatar
      Don't use feedback vector to infer IC kind and language mode · a36f2593
      Mythri authored
      Currently, the runtime IC functions deduce the IC kind and the language
      mode from the feedback slot kind. To support feedback free execution
      (for V8 lite mode and lazy allocation of feedback vectors) we need to
      infer the IC kind even when feedback vectors are not present.
      
      To be able to infer the language mode without feedback vectors, this cl
      forces context allocation in cases where we raise the language mode in
      the middle of a function. The language mode is the stricter of the
      language mode on the SFI and the language mode of the current context.
      
      This cl updates the bytecode handlers to check for valid feedback vectors
      and to call into runtime if the feedback vector is not allocated. It also
      adds new runtime functions to be able to infer the IC kind when there is no
      feedback vector. Most of the builtins and handlers remain unchanged because
      they are only used when feedback vector is present.
      
      Bug: v8:8394
      Change-Id: I1f77740c0d68ddaa0de076597f5f6bcb2e966d70
      Reviewed-on: https://chromium-review.googlesource.com/c/1358516
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58191}
      a36f2593
  15. 11 Dec, 2018 1 commit
  16. 07 Dec, 2018 3 commits
  17. 05 Dec, 2018 1 commit
  18. 04 Dec, 2018 1 commit
    • Jakob Gruber's avatar
      [nojit] Refactor CallApiCallback calling convention · c6b0e12e
      Jakob Gruber authored
      This is the first (and major) step towards converting CallApiCallback
      and CallApiGetter stubs into builtins.
      
      The CallApiCallbackStub was parameterized with the number of arguments
      passed on the stack. This CL converts the compile-time parameter into
      an explicit runtime parameter, and removes all uses of the stub
      parameter.
      
      Drive-by: The implementation is now mostly consistent across platforms.
      Drive-by: Refactor the calling convention to free up two registers
      (kCallData and kHolder are now passed on the stack).
      
      Bug: v8:7777
      Change-Id: I212dccc2930de89c264a13755918c9fae7842f1f
      Reviewed-on: https://chromium-review.googlesource.com/c/1354887
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58005}
      c6b0e12e
  19. 27 Nov, 2018 1 commit
  20. 22 Nov, 2018 1 commit
  21. 08 Nov, 2018 1 commit
  22. 07 Nov, 2018 3 commits
  23. 06 Nov, 2018 3 commits
  24. 05 Nov, 2018 1 commit