1. 18 Oct, 2016 2 commits
    • bjaideep's avatar
      PPC/s390: [ic] Unify CallIC feedback collection and handling. · 78085e4d
      bjaideep authored
      Port 308788b3
      
      Original commit message:
      
          Consistently collect CallIC feedback in fullcodegen and Ignition, even
          for possibly direct eval calls, that were treated specially so far, for
          no apparent reason. With the upcoming SharedFunctionInfo based CallIC
          feedback, we might be able to even inline certain direct eval calls, if
          they manage to hit the eval cache. More importantly, this patch
          simplifies the collection and dealing with CallIC feedback (and as a
          side effect fixes an inconsistency with feedback for super constructor
          calls).
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2425243003
      Cr-Commit-Position: refs/heads/master@{#40412}
      78085e4d
    • bmeurer's avatar
      [intrinsics] Nuke %HasCachedArrayIndex and %GetCachedArrayIndex. · 6c85285b
      bmeurer authored
      These intrinsics are unused now, and so we can drop all the code in
      fullcodegen and Crankshaft that deals with those. TurboFan and Ignition
      never tried to optimize those.
      
      R=mstarzinger@chromium.org
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2427673004
      Cr-Commit-Position: refs/heads/master@{#40401}
      6c85285b
  2. 12 Oct, 2016 1 commit
    • bjaideep's avatar
      PPC/s390: [stubs] Refactor the CallICStub to pass the number of arguments. · c6f8955e
      bjaideep authored
      Port c15c5827
      
      Original commit message:
      
          This is the next step to unify the Call/Construct feedback collection
          and prepare it to be able to collect SharedFunctionInfo feedback. This
          also reduces the CallICStub overhead quite a bit since we only need one
          stub per mode (and tail call mode), not also one per call arity.
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2415583002
      Cr-Commit-Position: refs/heads/master@{#40228}
      c6f8955e
  3. 11 Oct, 2016 1 commit
  4. 07 Oct, 2016 3 commits
  5. 06 Oct, 2016 1 commit
  6. 28 Sep, 2016 1 commit
  7. 24 Sep, 2016 1 commit
  8. 23 Sep, 2016 3 commits
  9. 20 Sep, 2016 1 commit
  10. 16 Sep, 2016 1 commit
  11. 15 Sep, 2016 1 commit
    • bjaideep's avatar
      PPC/s390: [turbofan] Collect invocation counts and compute relative call frequencies. · 3f0c8819
      bjaideep authored
      Port c7d7ca36
      
      Original commit message:
      
          Add a notion of "invocation count" to the baseline compilers, which
          increment a special slot in the TypeFeedbackVector for each invocation
          of a given function (the optimized code doesn't currently collect this
          information).
      
          Use this invocation count to relativize the call counts on the call
          sites within the function, so that the inlining heuristic has a view
          of relative importance of a call site rather than some absolute numbers
          with unclear meaning for the current function. Also apply the call site
          frequency as a factor to all frequencies in the inlinee by passing this
          to the graph builders so that the importance of a call site in an
          inlinee is relative to the topmost optimized function.
      
          Note that all functions that neither have literals nor need type
          feedback slots will share a single invocation count cell in the
          canonical empty type feedback vector, so their invocation count is
          meaningless, but that doesn't matter since we only use the invocation
          count to relativize call counts within the function, which we only have
          if we have at least one type feedback vector (the CallIC slot).
      
          See the design document for additional details on this change:
          https://docs.google.com/document/d/1VoYBhpDhJC4VlqMXCKvae-8IGuheBGxy32EOgC2LnT8
      
      R=bmeurer@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=v8:5267,v8:5372
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2338413002
      Cr-Commit-Position: refs/heads/master@{#39446}
      3f0c8819
  12. 09 Sep, 2016 1 commit
  13. 06 Sep, 2016 1 commit
    • bakkot's avatar
      Split the AST representation of class properties from object properties. · 7bc200c7
      bakkot authored
      This introduces ClassLiteralProperty and a supertype LiteralProperty of
      it and ObjectLiteralProperty. It also splits the parsing of the two.
      This substiantially clarifies some logic, especially as classes
      continue to evolve, and is also about a 2% performance improvement to
      parsing either kind of property (since no work is wasted on logic
      only necessary for the other kind). Also, it saves a word on
      ObjectLiteralProperties.
      
      Review-Url: https://codereview.chromium.org/2302643002
      Cr-Commit-Position: refs/heads/master@{#39219}
      7bc200c7
  14. 05 Sep, 2016 1 commit
  15. 02 Sep, 2016 1 commit
  16. 01 Sep, 2016 2 commits
  17. 31 Aug, 2016 1 commit
  18. 30 Aug, 2016 1 commit
  19. 29 Aug, 2016 1 commit
  20. 25 Aug, 2016 1 commit
  21. 24 Aug, 2016 1 commit
  22. 22 Aug, 2016 2 commits
  23. 12 Aug, 2016 2 commits
  24. 11 Aug, 2016 1 commit
  25. 10 Aug, 2016 1 commit
    • bjaideep's avatar
      PPC/s390: Use Variable::binding_needs_init() to determine hole initialization · 04c51b21
      bjaideep authored
      Port 6768456d
      
      Original commit message:
      
          The old code was using VariableMode, but that signal is both
          over-pessimistic (some CONST and LET variables need no hole-initialization)
          and inconsistent with other uses of the InitializationFlag enum (such
          as %LoadLookupSlot).
      
          This changes no observable behavior, but removes unnecessary hole
          initialization and hole checks in a few places, including
          block-scoped function declarations, super property lookups,
          and new.target.
      
      R=adamk@chromium.org, joransiu@ca.ibm.com, jyan@ca.ibm.com, michael_dawson@ca.ibm.com, mbrandy@us.ibm.com
      
      BUG=
      LOG=N
      
      Review-Url: https://codereview.chromium.org/2229383004
      Cr-Commit-Position: refs/heads/master@{#38551}
      04c51b21
  26. 09 Aug, 2016 1 commit
  27. 08 Aug, 2016 2 commits
  28. 05 Aug, 2016 3 commits
  29. 04 Aug, 2016 1 commit
    • mstarzinger's avatar
      [turbofan] Fix missing bailout for accessors in literals. · 667d8ad0
      mstarzinger authored
      This adds the missing lazy bailout point when defining accessor pairs
      within object literals via Runtime::kDefineAccessorPropertyUnchecked.
      The runtime function in question can indeed trigger a lazy deopt due
      to a DependentCode::kPrototypeCheckGroup dependency.
      
      R=bmeurer@chromium.org
      TEST=mjsunit/regress/regress-crbug-633585
      BUG=chromium:633585
      
      Review-Url: https://codereview.chromium.org/2207413002
      Cr-Commit-Position: refs/heads/master@{#38336}
      667d8ad0