1. 19 Feb, 2019 1 commit
    • Benedikt Meurer's avatar
      [objects] Adjust overly aggressive over-allocation. · 9ffd1677
      Benedikt Meurer authored
      When setting up the initial map for a (class or function) constructor,
      we always over-allocate a bunch of in-object properties, in case not
      all property assignments happen as `this.prop = val` assignments in
      the constructor. However this over-allocation was a bit too aggressive
      and added a slack of 8 to each class constructor (plus a minimum of
      two, when there was no `this.prop = val` assignment). So in total this
      would yield an object with initially 40 in-object property slots in
      case of a simple class hierarchy like this:
      
      ```js
      class A {};
      class B extends A {};
      class C extends B {};
      class D extends C {};
      new D;
      ```
      
      While the slack tracking takes care of eventually shrinking the objects
      to appropriate sizes, this aggressive over-allocation is still going to
      hurt performance quite a bit in the beginning, and will also lead to
      more traffic on the minor GC for now good reason.
      
      Instead of the above, we now allocate a minimum of 2 in-object
      properties per class (in a hierarchy) and then add a slack of 8 in the
      end. Meaning for the example above we end up with 16 initial in-object
      property slots, which seems sensible.
      
      Bug: v8:8853
      Change-Id: I4a11e35a8612ceef1d776ca2f0543a26c8c2a2bf
      Reviewed-on: https://chromium-review.googlesource.com/c/1477276Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59670}
      9ffd1677
  2. 18 Feb, 2019 2 commits
  3. 15 Feb, 2019 8 commits
  4. 14 Feb, 2019 4 commits
  5. 13 Feb, 2019 7 commits
  6. 12 Feb, 2019 5 commits
  7. 11 Feb, 2019 8 commits
  8. 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