1. 03 May, 2019 1 commit
  2. 04 Jul, 2018 3 commits
  3. 21 Jun, 2018 2 commits
  4. 06 Jun, 2018 2 commits
  5. 10 Aug, 2017 1 commit
  6. 13 Jul, 2017 1 commit
  7. 12 Jul, 2017 1 commit
  8. 10 Jul, 2017 1 commit
    • Benedikt Meurer's avatar
      [turbofan] Widen the fast-path for JSCreateArray. · 1edb46cc
      Benedikt Meurer authored
      This improves the general Array constructor call performance (w/o
      usable AllocationSite feedback) in TurboFan by ~2x, i.e. for example
      invoking the Array constructor like this
      
        var a = Array.call(undefined, n);
      
      instead of
      
        var a = Array(n);
      
      such that the CallIC doesn't know that it's eventually calling the
      Array constructor.
      
      It also thus changes the single argument Array constructor to always
      return holey arrays. Previously the single argument case for the Array
      constructor was somehow trying to dynamically detect 0 and in that case
      returned a packed array instead of a holey one. That adds quite a lot
      of churn, and doesn't seem to be very useful, especially since this
      might lead to unnecessary feedback pollution later.
      
      R=mvstanton@chromium.org
      
      Bug: v8:2229, v8:5269, v8:6399
      Change-Id: I3d7cb9bd975ec0e491e3cdbcf1230185cfd1e3de
      Reviewed-on: https://chromium-review.googlesource.com/565721Reviewed-by: 's avatarMichael Stanton <mvstanton@chromium.org>
      Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46538}
      1edb46cc
  9. 03 Jul, 2017 1 commit
    • Mathias Bynens's avatar
      [elements] Rename Has*Elements and Is*ElementsKind methods · 7915cf93
      Mathias Bynens authored
      Commit 26c00f4a improved the names of
      most FAST_* elements kinds in the enum. This patch updates the matching
      Has*Elements and Is*ElementsKind method names accordingly.
      
      - HasFastSmiElements => HasSmiElements
      - IsFastSmiElementsKind => IsSmiElementsKind
      - HasFastObjectElements => HasObjectElements
      - IsFastObjectElementsKind => IsObjectElementsKind
      - HasFastSmiOrObjectElements => HasSmiOrObjectElements
      - IsFastSmiOrObjectElementsKind => IsSmiOrObjectElementsKind
      - HasFastDoubleElements => HasDoubleElements
      - IsFastDoubleElementsKind => IsDoubleElementsKind
      - HasFastHoleyElements => HasHoleyElements
      - IsFastHoleyElementsKind => IsHoleyElementsKind
      
      Additionally, FastHoleyElementsUsage is renamed to HoleyElementsUsage.
      
      BUG=v8:6548
      
      Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng
      Change-Id: Ie8f3d01eb43e909cbc6c372d88c5fbc4dfc2ac04
      Reviewed-on: https://chromium-review.googlesource.com/558356Reviewed-by: 's avatarBenedikt Meurer <bmeurer@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Mathias Bynens <mathias@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#46376}
      7915cf93
  10. 30 Jun, 2017 1 commit
  11. 23 Jun, 2017 1 commit
  12. 19 Jun, 2017 1 commit
  13. 16 Jun, 2017 2 commits
  14. 29 Apr, 2017 1 commit
  15. 28 Apr, 2017 1 commit
  16. 15 Feb, 2017 1 commit
  17. 26 Jan, 2017 1 commit
  18. 31 Mar, 2016 1 commit
  19. 17 Mar, 2016 1 commit
  20. 28 Jul, 2014 1 commit
  21. 24 Jul, 2014 2 commits
  22. 18 Jul, 2014 1 commit
  23. 01 Jul, 2014 1 commit
  24. 19 Mar, 2014 1 commit
    • mvstanton@chromium.org's avatar
      Pretenure call new support. · 535f3427
      mvstanton@chromium.org authored
      When FLAG_pretenure_call_new is on, we emit mementos on new object creation
      in full code, and consume the feedback in crankshaft. A key difference in the
      generated code for stubs is the allocation of an additional type vector slot for the
      CallNew AST node, which simplifies the CallConstructStub and CallFunctionStub
      considerably.
      
      Some performance tuning still needs to be addressed, therefore the flag is off at
      this moment, though fully functional. The goal is to remove the flag as soon as
      possible, which allows much code deletion (yay).
      
      R=hpayer@chromium.org
      
      Review URL: https://codereview.chromium.org/132963012
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@20076 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      535f3427
  25. 17 Feb, 2014 2 commits
  26. 21 Jan, 2014 1 commit
  27. 07 Jan, 2014 1 commit
  28. 20 Dec, 2013 2 commits
  29. 06 Nov, 2013 1 commit
    • mvstanton@chromium.org's avatar
      Correct handling of arrays with callbacks in the prototype chain. · cec8548d
      mvstanton@chromium.org authored
      Our generic KeyedStoreIC doesn't handle the case when a callback is
      set on array elements in the prototype chain of the object, nor do
      we recognize that we need to avoid the monomorphic case if these
      callbacks exist.
      
      This CL addresses the issue by looking for dictionary elements in
      the prototype chain on IC misses and crankshaft element store
      instructions. When found, the generic IC is used. The generic IC is
      changed to go to the runtime in this case too.
      
      In general, keyed loads are immune from this problem because they
      won't return the hole: discovery of the hole goes to the runtime where
      the callback will be found in the prototype chain. Double array loads
      in crankshaft can return the hole but only if the prototype chain is
      unaltered (we will catch such alterations).
      
      Includes the following patch as well (already reviewed by bmeurer):
      Performance regression found in test regress-2185-2.js. The problem was
      that the bailout method for TransitionAndStoreStub was not performing
      the appropriate transition.
      
      (Review URL for the ElementsTransitionAndStoreIC_Miss change:
      https://codereview.chromium.org/26911007)
      
      R=danno@chromium.org
      
      Review URL: https://codereview.chromium.org/35413006
      
      git-svn-id: http://v8.googlecode.com/svn/branches/bleeding_edge@17525 ce2b1a6d-e550-0410-aec6-3dcde31c8c00
      cec8548d
  30. 16 Oct, 2013 2 commits
  31. 15 Oct, 2013 1 commit