1. 13 Jul, 2017 1 commit
  2. 10 Jul, 2017 2 commits
  3. 22 Jun, 2017 1 commit
  4. 21 Jun, 2017 2 commits
  5. 19 Jun, 2017 1 commit
  6. 14 Jun, 2017 1 commit
  7. 12 Jun, 2017 1 commit
  8. 18 May, 2017 1 commit
  9. 12 May, 2017 1 commit
  10. 08 May, 2017 1 commit
    • Adam Klein's avatar
      Skip hole initialization of lexical variables when possible · ededfcd2
      Adam Klein authored
      This patch expands scope analysis to skip hole initialization
      when it can be determined statically that no hole checks will
      be generated at runtime.
      
      Two conditions must be met to safely eliminate hole initialization:
        - There must not exist a VariableProxy referencing this Variable
          whose HoleCheckMode is kRequired
        - The Variable must be stack allocated; any other allocation implies
          that it may be accessed from not-yet-analyzed scopes (other modules,
          inner functions, or eval code) and that code may require
          hole checks.
      
      The new logic required removing debug code in full-codegen which is
      now incorrect in some cases.
      
      Also fixed Variable's bitfield helpers to take no more space than needed.
      
      Bug: chromium:651637
      Change-Id: Ie5ac326af4e05b7a5c3c37cd4d0afba6a51a504d
      Reviewed-on: https://chromium-review.googlesource.com/494006
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#45170}
      ededfcd2
  11. 28 Apr, 2017 1 commit
  12. 20 Apr, 2017 1 commit
  13. 24 Mar, 2017 2 commits
  14. 22 Mar, 2017 1 commit
  15. 21 Mar, 2017 1 commit
  16. 14 Mar, 2017 1 commit
  17. 21 Feb, 2017 1 commit
  18. 17 Feb, 2017 1 commit
  19. 14 Feb, 2017 1 commit
  20. 13 Feb, 2017 5 commits
  21. 07 Feb, 2017 3 commits
  22. 06 Feb, 2017 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] Root feedback vectors at function literal site. · aea3ce3d
      mvstanton authored
      TypeFeedbackVectors are strongly rooted by a closure. However, in modern
      JavaScript closures are created and abandoned more freely. An important
      closure may not be present in the root-set at time of garbage collection,
      even though we've cached optimized code and use it regularly. For
      example, consider leaf functions in an event dispatching system. They may
      well be "hot," but tragically non-present when we collect the heap.
      
      Until now, we've relied on a weak root to cache the feedback vector in
      this case. Since there is no way to signal intent or relative importance,
      this weak root is as susceptible to clearing as any other weak root at
      garbage collection time.
      
      Meanwhile, the feedback vector has become more important. All of our
      ICs store their data there. Literal and regex boilerplates are stored there.
      If we lose the vector, then we not only lose optimized code built from
      it, we also lose the very feedback which allowed us to create that optimized
      code. Therefore it's vital to express that dependency through the root
      set.
      
      This CL does this by creating a strong link to a feedback
      vector at the instantiation site of the function closure.
      This instantiation site is in the code and feedback vector
      of the outer closure.
      
      BUG=v8:5456
      
      Review-Url: https://codereview.chromium.org/2674593003
      Cr-Commit-Position: refs/heads/master@{#42953}
      aea3ce3d
  23. 02 Feb, 2017 2 commits
    • bmeurer's avatar
      [stubs] Also port the CallICStub to CSA. · d68dfe86
      bmeurer authored
      Port the Call feedback machinery from the interpreter to the CallICStub
      as second step to unify the feedback collection. This removes a lot of
      hand-written native code, and makes the runtime miss handler obsolete.
      The next step will be to use the CallICStub from the interpreter as
      well.
      
      Drive-by-fix: Adjust CallIC/CallICTrampoline descriptors names.
      
      R=mvstanton@chromium.org
      BUG=v8:5049
      
      Review-Url: https://codereview.chromium.org/2670843002
      Cr-Commit-Position: refs/heads/master@{#42889}
      d68dfe86
    • bmeurer's avatar
      [stubs] Fix naming of CallIC and CallICTrampoline. · 9121f72a
      bmeurer authored
      Rename the CallIC factory method to CallICTrampoline and the
      CallICInOptimizedCode to CallIC to match the naming of the
      stubs and better reflect their functionality.
      
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2670073002
      Cr-Commit-Position: refs/heads/master@{#42876}
      9121f72a
  24. 30 Jan, 2017 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] Combine the literals array and the feedback vector. · 93f05b64
      mvstanton authored
      They have the same lifetime. It's a match!
      
      Both structures are native context dependent and dealt with (creation,
      clearing, gathering feedback) at the same time. By treating the spaces used
      for literal boilerplates as feedback vector slots, we no longer have to keep
      track of the materialized literal count elsewhere.
      
      A follow-on CL removes even more parser infrastructure related to this count.
      
      BUG=v8:5456
      
      Review-Url: https://codereview.chromium.org/2655853010
      Cr-Commit-Position: refs/heads/master@{#42771}
      93f05b64
  25. 27 Jan, 2017 1 commit
  26. 24 Jan, 2017 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] DeclareGlobals needs a literals array · d287c819
      mvstanton authored
      [RELAND with one change: until literal arrays are rooted in the outer
      feedback vector (coming in the next days), the runtime-scope.cc change
      is held off.]
      
      When a function is declared in global scope, the closure is created
      by the DeclareGlobals runtime service. It needs a pointer to the
      literals array, already allocated in the feedback vector. This
      fixes a bug where it's behavior wasn't in sync with CreateClosure,
      which accepts the literals from the vector.
      
      This enables a follow-on performance improvement in the CompileLazy
      builtin.
      
      BUG=680637
      
      Review-Url: https://codereview.chromium.org/2634283003
      Cr-Commit-Position: refs/heads/master@{#42620}
      d287c819
  27. 18 Jan, 2017 2 commits
    • ofrobots's avatar
      Revert remove dead hole check logic · 80234ee3
      ofrobots authored
      This reverts commits
      * 45c11887 "[fullcodegen] Remove dead hole check logic"
      * 2aaf217b "[crankshaft] Remove dead Variable hole-checking code"
      * f40a3817 "[crankshaft] Fix mips/mips64 build: remove unused variable"
      
      BUG=
      R=adamk@chromium.org,bmeurer@chromium.org,hablich@chromium.org
      
      Review-Url: https://codereview.chromium.org/2640793004
      Cr-Commit-Position: refs/heads/master@{#42476}
      80234ee3
    • mvstanton's avatar
      Back strongly rooted literals CLs out of the tree for branch cut · 80c9b69d
      mvstanton authored
      Due to outstanding performance issues, it's safer to revert these
      changes.
      
      Revert "PPC/s390: [TypeFeedbackVector] DeclareGlobals needs a literals array"
      Revert "[TypeFeedbackVector] DeclareGlobals needs a literals array"
      Revert "PPC/s390: [builtins] CompileLazy bailed out to the runtime entirely too often."
      Revert "[builtins] CompileLazy bailed out to the runtime entirely too often."
      
      Another CL is to follow that removes the main part of this work
      (after that revert, performance regressions should disappear.
      
      TBR=mstarzinger@chromium.org, leszeks@chromium.org, bmeurer@chromium.org
      BUG=680637
      
      Review-Url: https://codereview.chromium.org/2645543002
      Cr-Commit-Position: refs/heads/master@{#42456}
      80c9b69d
  28. 17 Jan, 2017 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] DeclareGlobals needs a literals array · b83c3d29
      mvstanton authored
      When a function is declared in global scope, the closure is created
      by the DeclareGlobals runtime service. It needs a pointer to the
      literals array, already allocated in the feedback vector. This
      fixes a bug where it's behavior wasn't in sync with CreateClosure,
      which accepts the literals from the vector.
      
      This enables a follow-on performance improvement in the CompileLazy
      builtin.
      
      BUG=680637
      
      Review-Url: https://codereview.chromium.org/2634283003
      Cr-Commit-Position: refs/heads/master@{#42408}
      b83c3d29
  29. 16 Jan, 2017 1 commit