1. 06 Feb, 2019 1 commit
  2. 24 Jan, 2019 1 commit
    • Mythri's avatar
      Reland "Change SetProperty/SetSuperProperty to infer language mode when possible" · e2846ea6
      Mythri authored
      This is a reland of 0896599f with a fix for
      failing layout test.
      
      Original change's description:
      > Change SetProperty/SetSuperProperty to infer language mode when possible
      >
      > In most cases, the language mode can be inferred from the closure and
      > the context. Computing the language mode instead of passing it around
      > simplifies the ICs and will make it possible to go towards lazily
      > allocating feedback vectors. Currently ICs obtain the language mode from
      > the feedback vectors and with lazy feedback allocation we may not always
      > have feedback vectors. Since computing language mode is a bit expensive
      > we want to defer it as far as possible.
      >
      > In Array builtins and other builtins like Reflect.Set we need to force a
      > language mode when setting the properties. To support these cases the
      > SetProperty methods allow the language mode to be overridden when needed.
      >
      > This is a first cl in a series of cls, that will defer the language mode
      > computation further and remove language mode where it is not needed.
      >
      > BUG: v8:8580
      > Change-Id: I9c2396e3bcfe77c3c9d6760c46d86954d54744b9
      > Reviewed-on: https://chromium-review.googlesource.com/c/1409426
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Toon Verwaest <verwaest@chromium.org>
      > Commit-Queue: Mythri Alle <mythria@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58893}
      
      TBR: ahaas@chromium.org
      Change-Id: Id5d81eae91b55638dbc72168f0e5203e684869fb
      Reviewed-on: https://chromium-review.googlesource.com/c/1421077
      Commit-Queue: Mythri Alle <mythria@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#59075}
      e2846ea6
  3. 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
  4. 08 Dec, 2018 1 commit
  5. 30 Nov, 2018 1 commit
  6. 13 Nov, 2018 1 commit
  7. 05 Nov, 2018 1 commit
  8. 29 Oct, 2018 1 commit
  9. 26 Oct, 2018 1 commit
  10. 19 Oct, 2018 1 commit
  11. 11 Oct, 2018 1 commit
  12. 20 Sep, 2018 1 commit
  13. 17 Sep, 2018 1 commit
  14. 14 Sep, 2018 2 commits
    • Marja Hölttä's avatar
      Revert "[in-place weak refs] Fix MaybeObject function names" · 3a79fe23
      Marja Hölttä authored
      This reverts commit ad72d195.
      
      Reason for revert: Build failures on *san
      
      Original change's description:
      > [in-place weak refs] Fix MaybeObject function names
      > 
      > E.g., "ToWeakHeapObject" was misleading, since it didn't convert to a weak heap
      > object, instead returned a weakly pointed heap object. Change the function names
      > (in this case, to "GetHeapObjectIfWeak") to reflect this.
      > 
      > Also make casts explicit, if a MaybeObject is an Object, we can call cast<Object>().
      > 
      > BUG=v8:7308
      > 
      > Change-Id: I4ef078572b4f4415afe7e2e706d3bd684e16e47d
      > Reviewed-on: https://chromium-review.googlesource.com/1219025
      > Reviewed-by: Igor Sheludko <ishell@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Marja Hölttä <marja@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55906}
      
      TBR=ulan@chromium.org,marja@chromium.org,yangguo@chromium.org,ahaas@chromium.org,tebbi@chromium.org,ishell@chromium.org
      
      Change-Id: I054b578518e3f6fd7dbcddf0b56cc018726c1e7a
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7308
      Reviewed-on: https://chromium-review.googlesource.com/1226874Reviewed-by: 's avatarMarja Hölttä <marja@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55918}
      3a79fe23
    • Marja Hölttä's avatar
      [in-place weak refs] Fix MaybeObject function names · ad72d195
      Marja Hölttä authored
      E.g., "ToWeakHeapObject" was misleading, since it didn't convert to a weak heap
      object, instead returned a weakly pointed heap object. Change the function names
      (in this case, to "GetHeapObjectIfWeak") to reflect this.
      
      Also make casts explicit, if a MaybeObject is an Object, we can call cast<Object>().
      
      BUG=v8:7308
      
      Change-Id: I4ef078572b4f4415afe7e2e706d3bd684e16e47d
      Reviewed-on: https://chromium-review.googlesource.com/1219025Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Marja Hölttä <marja@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55906}
      ad72d195
  15. 11 Sep, 2018 1 commit
  16. 25 Jul, 2018 1 commit
    • Benedikt Meurer's avatar
      [ic] Remember the receiver map in PREMONOMORPHIC state. · 8ba8a139
      Benedikt Meurer authored
      When going to PREMONOMORPHIC state we previously stored the
      premonomorphic sentinel into the first IC slot and then the
      second slot was storing the uninitialized sentinel. So when
      TurboFan kicked in and optimized the function we'd just put
      a LOAD_IC in there and hoped for the best that this is either
      not in hot code or will reoptimize for another reason later
      to fixup the LOAD_IC.
      
      This is a quite annoying footgun for developers because the
      performance inevitably depends on timing of when the optimizing
      compiler kicks in.
      
      To fix this issue we now keep a weak reference to the receiver
      map in the second slot of the IC in PREMONOMORPHIC state and
      use that to speculatively optimize when we go to TurboFan. This
      improves the performance on the reported bug from
      
        spread: 2342 ms.
        spread: 2352 ms.
        spread: 2339 ms.
      
      to
      
        spread: 1490 ms.
        spread: 1451 ms.
        spread: 1445 ms.
      
      which corresponds to a 36% improvement in this particular case.
      In general you'll get more predictable performance with this
      change.
      
      We might want to also use the map when going to MONOMORPHIC
      state at a later point to maybe skip the additional transition
      to POLYMORPHIC in some cases, but that's independent of this
      bug.
      
      Bug: v8:5267, v8:7973
      Change-Id: Ia4eef7651e219a40927531cdffe320ade1dd19a4
      Reviewed-on: https://chromium-review.googlesource.com/1148205Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarJaroslav Sevcik <jarin@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#54682}
      8ba8a139
  17. 23 Jul, 2018 1 commit
  18. 11 Jun, 2018 1 commit
  19. 23 May, 2018 1 commit
  20. 16 May, 2018 1 commit
  21. 15 May, 2018 1 commit
  22. 14 May, 2018 1 commit
  23. 08 May, 2018 1 commit
  24. 09 Apr, 2018 2 commits
  25. 06 Apr, 2018 3 commits
    • Igor Sheludko's avatar
      [ic] Don't use slow stub handler for fresh transitioning stores. · d1532a1a
      Igor Sheludko authored
      Given that we got a store transition handler for free (because it's just
      a transition map) there's no need to wait for a second "use" of that
      transition in order to install a normal store transition handler.
      
      Bug: v8:5988
      Change-Id: Iecdcfdd096a8efffdd0662f1b1d604943e57d85a
      Reviewed-on: https://chromium-review.googlesource.com/997553Reviewed-by: 's avatarCamillo Bruni <cbruni@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52442}
      d1532a1a
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  26. 23 Mar, 2018 2 commits
  27. 21 Mar, 2018 3 commits
  28. 02 Mar, 2018 1 commit
  29. 02 Feb, 2018 1 commit
  30. 31 Jan, 2018 1 commit
  31. 13 Dec, 2017 1 commit
  32. 18 Nov, 2017 1 commit
  33. 07 Nov, 2017 1 commit