1. 15 Nov, 2016 1 commit
  2. 09 Nov, 2016 1 commit
  3. 08 Nov, 2016 1 commit
  4. 04 Nov, 2016 1 commit
    • mythria's avatar
      Check if the frame is optimized before marking a function for optimization. · 8daff84d
      mythria authored
      When checking for marking a function for optimization, we had a check if
      the function is already optimized to return early. This works in non-OSR
      cases. For Turbofan OSR even when the current execution of the function
      has already been optimized, the function itself will not be replaced
      with optimized code. Hence, we may end up checking a function that is
      already marked for optimization again. A check for the frame being optimized
      avoids these checks.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2450233002
      Cr-Commit-Position: refs/heads/master@{#40760}
      8daff84d
  5. 02 Nov, 2016 1 commit
    • bmeurer's avatar
      [compiler] Sanitize IC counts for vector based ICs. · 5ef1bddf
      bmeurer authored
      All vector ICs use the TypeFeedbackVector::ComputeCounts method now,
      while the remaining patching ICs still use the traditional way of
      counting on the TypeFeedbackInfo hanging off the fullcodegen code
      object. This fixes the problem that counts were sometimes off.
      
      Drive-by-fix: Move FullCodeGenerator::CallIC to fullcodegen.cc.
      
      R=yangguo@chromium.org
      
      Review-Url: https://codereview.chromium.org/2472653002
      Cr-Commit-Position: refs/heads/master@{#40690}
      5ef1bddf
  6. 26 Oct, 2016 1 commit
    • mythria's avatar
      [Interpreter] Tune runtime profiler parameters for turbofan and OSR. · 46a1b34e
      mythria authored
      Turbofan requires a different tuning when compared to crankshaft. Crankshaft
      typically has faster compilation times when compared to turbofan. Hence,
      added a new parameter, so that crankshaft and turbofan can be tuned
      independently.
      
      OSRing too soon is not good for performance, especially for sunspider
      benchmarks. Since they are really small functions and optimizing them is
      more expensive than just executing unoptimized code. Tuning the code size
      threshold of the functions that can be OSRed from ignition.
      
      BUG=v8:4280,chromium:659111
      
      Review-Url: https://codereview.chromium.org/2445203003
      Cr-Commit-Position: refs/heads/master@{#40598}
      46a1b34e
  7. 19 Oct, 2016 1 commit
  8. 23 Sep, 2016 1 commit
  9. 20 Sep, 2016 1 commit
    • mvstanton's avatar
      [TypeFeedbackVector] special ic slots for interpreter compare/binary ops. · b88d132f
      mvstanton authored
      Full code uses patching ICs for this feedback, and the interpreter uses
      the type feedback vector. It's a good idea to code the vector slots
      appropriately as ICs so that the runtime profiler can better gauge if
      the function is ready for tiering up from Ignition to TurboFan.
      
      As is, the feedback is stored in "general" slots which can't be
      characterized by the runtime profiler into feedback states.
      
      This CL addresses that problem. Note that it's also important to
      carefully exclude these slots from the profiler's consideration when
      determining if you want to optimize from Full code.
      
      BUG=
      
      Review-Url: https://codereview.chromium.org/2342853002
      Cr-Commit-Position: refs/heads/master@{#39555}
      b88d132f
  10. 31 Aug, 2016 1 commit
  11. 16 Aug, 2016 1 commit
  12. 10 Aug, 2016 1 commit
    • mstarzinger's avatar
      [interpreter] Switch profiler to use frames for OSR. · 685210ec
      mstarzinger authored
      This switches the interface of the runtime profiler to use frames as
      opposed to functions for performing on-stack replacement. Requests for
      such replacements need to target a specific frame. This will enable us
      to activate bytecode as well as baseline code for the same function.
      
      The existing %OptimizeOsr runtime function also had to adapted and now
      takes an optional stack depth to target a specific stack frame.
      
      R=bmeurer@chromium.org
      BUG=v8:4764
      
      Review-Url: https://codereview.chromium.org/2230783004
      Cr-Commit-Position: refs/heads/master@{#38548}
      685210ec
  13. 05 Aug, 2016 1 commit
    • mstarzinger's avatar
      [interpreter] Fix profiler when hitting OSR frame. · f00b42ae
      mstarzinger authored
      This fixes the runtime profiler to no longer assume that seeing an
      optimized frame on the stack implies the underlying function is not
      being interpreted when entered normally. This no longer holds with code
      generated for OSR directly from bytecode (not installed on function).
      
      R=rmcilroy@chromium.org
      TEST=mjsunit/regress/regress-crbug-632800
      BUG=chromium:632800
      
      Review-Url: https://codereview.chromium.org/2208603005
      Cr-Commit-Position: refs/heads/master@{#38360}
      f00b42ae
  14. 01 Aug, 2016 1 commit
  15. 29 Jul, 2016 1 commit
  16. 25 Jul, 2016 2 commits
  17. 21 Jul, 2016 2 commits
  18. 22 Jun, 2016 1 commit
  19. 27 May, 2016 1 commit
  20. 16 May, 2016 1 commit
  21. 25 Apr, 2016 1 commit
    • mstarzinger's avatar
      [compiler] Add baseline tier to compilation pipeline. · 3fc0224c
      mstarzinger authored
      This adds a baseline tier to the compilation pipeline. Currently this
      tier is used to model a path from the interpreter to optimized code via
      full-codegen code (to ensure sufficient type feedback). Switching from
      the unoptimized tier to the baseline tier is limited to happen only when
      there are no activations of the given function on the stack.
      
      R=rmcilroy@chromium.org,bmeurer@chromium.org
      
      Review URL: https://codereview.chromium.org/1903273004
      
      Cr-Commit-Position: refs/heads/master@{#35757}
      3fc0224c
  22. 22 Mar, 2016 1 commit
  23. 19 Feb, 2016 1 commit
    • rmcilroy's avatar
      [Interpreter] Enable runtime profiler support for Ignition. · b62bf1e6
      rmcilroy authored
      Adds a profiling counter to each BytecodeArray object, and adds
      code to Jump and Return bytecode handlers to update this
      counter by the size of the jump or the distance from the return
      to the start of the function. This is more accurate than fullcodegen's
      approach since it takes forward jumps into account as well as back-edges.
      
      Modifies RuntimeProfiler to track ticks for interpreted frames.
      Currently we use the SharedFunctionInfo::profiler_ticks() instead
      of adding another to tick field to avoid adding another field to
      BytecodeArray since SharedFunctionInfo::profiler_ticks() is only
      used by Crankshaft otherwise so we shouldn't need both for
      
      BUG=v8:4689
      LOG=N
      
      Review URL: https://codereview.chromium.org/1707693003
      
      Cr-Commit-Position: refs/heads/master@{#34166}
      b62bf1e6
  24. 05 Feb, 2016 1 commit
    • mvstanton's avatar
      Revert of Type Feedback Vector lives in the closure (patchset #2 id:40001 of... · 3f36e658
      mvstanton authored
      Revert of Type Feedback Vector lives in the closure (patchset #2 id:40001 of https://codereview.chromium.org/1668103002/ )
      
      Reason for revert:
      Must revert for now due to chromium api natives issues.
      
      Original issue's description:
      > Type Feedback Vector lives in the closure
      >
      > (RELAND: the problem before was a missing write barrier for adding the code
      > entry to the new closure. It's been addressed with a new macro instruction
      > and test. The only change to this CL is the addition of two calls to
      > __ RecordWriteCodeEntryField() in the platform CompileLazy builtin.)
      >
      > We get less "pollution" of type feedback if we have one vector per native
      > context, rather than one for the whole system. This CL moves the vector
      > appropriately.
      >
      > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      > vector actually lives in the first slot of the literals array (indeed there is
      > great commonality between those arrays, they can be thought of as the same
      > thing). So we make greater effort to ensure there is a valid literals array
      > after compilation.
      >
      > This meant, for performance reasons, that we needed to extend
      > FastNewClosureStub to support creating closures with literals. And ultimately,
      > it drove us to move the optimized code map lookup out of FastNewClosureStub
      > and into the compile lazy builtin.
      >
      > The heap change is trivial so I TBR Hannes for it...
      > Also, Yang has had a look at the debugger changes already and approved 'em. So he is TBR style too.
      > And Benedikt reviewed it as well.
      >
      > TBR=hpayer@chromium.org, yangguo@chromium.org, bmeurer@chromium.org
      >
      > BUG=
      >
      > Committed: https://crrev.com/bb31db3ad6de16f86a61f6c7bbfd3274e3d957b5
      > Cr-Commit-Position: refs/heads/master@{#33741}
      
      TBR=bmeurer@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1670813005
      
      Cr-Commit-Position: refs/heads/master@{#33766}
      3f36e658
  25. 04 Feb, 2016 1 commit
    • mvstanton's avatar
      Type Feedback Vector lives in the closure · bb31db3a
      mvstanton authored
      (RELAND: the problem before was a missing write barrier for adding the code
      entry to the new closure. It's been addressed with a new macro instruction
      and test. The only change to this CL is the addition of two calls to
      __ RecordWriteCodeEntryField() in the platform CompileLazy builtin.)
      
      We get less "pollution" of type feedback if we have one vector per native
      context, rather than one for the whole system. This CL moves the vector
      appropriately.
      
      We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      vector actually lives in the first slot of the literals array (indeed there is
      great commonality between those arrays, they can be thought of as the same
      thing). So we make greater effort to ensure there is a valid literals array
      after compilation.
      
      This meant, for performance reasons, that we needed to extend
      FastNewClosureStub to support creating closures with literals. And ultimately,
      it drove us to move the optimized code map lookup out of FastNewClosureStub
      and into the compile lazy builtin.
      
      The heap change is trivial so I TBR Hannes for it...
      Also, Yang has had a look at the debugger changes already and approved 'em. So he is TBR style too.
      And Benedikt reviewed it as well.
      
      TBR=hpayer@chromium.org, yangguo@chromium.org, bmeurer@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1668103002
      
      Cr-Commit-Position: refs/heads/master@{#33741}
      bb31db3a
  26. 27 Jan, 2016 2 commits
    • mvstanton's avatar
      Revert of Type Feedback Vector lives in the closure (patchset #2 id:20001 of... · a7027851
      mvstanton authored
      Revert of Type Feedback Vector lives in the closure (patchset #2 id:20001 of https://codereview.chromium.org/1642613002/ )
      
      Reason for revert:
      Bug: failing to use write barrier when writing code entry into closure.
      
      Original issue's description:
      > Reland of Type Feedback Vector lives in the closure
      >
      > (Fixed a bug found by nosnap builds.)
      >
      > We get less "pollution" of type feedback if we have one vector per native
      > context, rather than one for the whole system. This CL moves the vector
      > appropriately.
      >
      > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      > vector actually lives in the first slot of the literals array (indeed there is
      > great commonality between those arrays, they can be thought of as the same
      > thing). So we make greater effort to ensure there is a valid literals array
      > after compilation.
      >
      > This meant, for performance reasons, that we needed to extend
      > FastNewClosureStub to support creating closures with literals. And ultimately,
      > it drove us to move the optimized code map lookup out of FastNewClosureStub
      > and into the compile lazy builtin.
      >
      > The heap change is trivial so I TBR Hannes for it...
      >
      > TBR=hpayer@chromium.org
      > BUG=
      >
      > Committed: https://crrev.com/d984b3b0ce91e55800f5323b4bb32a06f8a5aab1
      > Cr-Commit-Position: refs/heads/master@{#33548}
      
      TBR=bmeurer@chromium.org,yangguo@chromium.org
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1643533003
      
      Cr-Commit-Position: refs/heads/master@{#33556}
      a7027851
    • mvstanton's avatar
      Reland of Type Feedback Vector lives in the closure · d984b3b0
      mvstanton authored
      (Fixed a bug found by nosnap builds.)
      
      We get less "pollution" of type feedback if we have one vector per native
      context, rather than one for the whole system. This CL moves the vector
      appropriately.
      
      We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      vector actually lives in the first slot of the literals array (indeed there is
      great commonality between those arrays, they can be thought of as the same
      thing). So we make greater effort to ensure there is a valid literals array
      after compilation.
      
      This meant, for performance reasons, that we needed to extend
      FastNewClosureStub to support creating closures with literals. And ultimately,
      it drove us to move the optimized code map lookup out of FastNewClosureStub
      and into the compile lazy builtin.
      
      The heap change is trivial so I TBR Hannes for it...
      
      TBR=hpayer@chromium.org
      BUG=
      
      Review URL: https://codereview.chromium.org/1642613002
      
      Cr-Commit-Position: refs/heads/master@{#33548}
      d984b3b0
  27. 26 Jan, 2016 2 commits
    • mvstanton's avatar
      Revert of Type Feedback Vector lives in the closure (patchset #12 id:260001 of... · e2e7dc32
      mvstanton authored
      Revert of Type Feedback Vector lives in the closure (patchset #12 id:260001 of https://codereview.chromium.org/1563213002/ )
      
      Reason for revert:
      FAilure on win32 bot, need to investigate webkit failures.
      
      Original issue's description:
      > Type Feedback Vector lives in the closure
      >
      > We get less "pollution" of type feedback if we have one vector per native
      > context, rather than one for the whole system. This CL moves the vector
      > appropriately.
      >
      > We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      > vector actually lives in the first slot of the literals array (indeed there is
      > great commonality between those arrays, they can be thought of as the same
      > thing). So we make greater effort to ensure there is a valid literals array
      > after compilation.
      >
      > This meant, for performance reasons, that we needed to extend
      > FastNewClosureStub to support creating closures with literals. And ultimately,
      > it drove us to move the optimized code map lookup out of FastNewClosureStub
      > and into the compile lazy builtin.
      >
      > The heap change is trivial so I TBR Hannes for it...
      >
      > TBR=hpayer@chromium.org
      >
      > BUG=
      >
      > Committed: https://crrev.com/a5200f7ed4d11c6b882fa667da7a1864226544b4
      > Cr-Commit-Position: refs/heads/master@{#33518}
      
      TBR=bmeurer@chromium.org,akos.palfi@imgtec.com
      # Skipping CQ checks because original CL landed less than 1 days ago.
      NOPRESUBMIT=true
      NOTREECHECKS=true
      NOTRY=true
      BUG=
      
      Review URL: https://codereview.chromium.org/1632993003
      
      Cr-Commit-Position: refs/heads/master@{#33520}
      e2e7dc32
    • mvstanton's avatar
      Type Feedback Vector lives in the closure · a5200f7e
      mvstanton authored
      We get less "pollution" of type feedback if we have one vector per native
      context, rather than one for the whole system. This CL moves the vector
      appropriately.
      
      We rely more heavily on the Optimized Code Map in the SharedFunctionInfo. The
      vector actually lives in the first slot of the literals array (indeed there is
      great commonality between those arrays, they can be thought of as the same
      thing). So we make greater effort to ensure there is a valid literals array
      after compilation.
      
      This meant, for performance reasons, that we needed to extend
      FastNewClosureStub to support creating closures with literals. And ultimately,
      it drove us to move the optimized code map lookup out of FastNewClosureStub
      and into the compile lazy builtin.
      
      The heap change is trivial so I TBR Hannes for it...
      
      TBR=hpayer@chromium.org
      
      BUG=
      
      Review URL: https://codereview.chromium.org/1563213002
      
      Cr-Commit-Position: refs/heads/master@{#33518}
      a5200f7e
  28. 09 Dec, 2015 1 commit
  29. 26 Nov, 2015 1 commit
  30. 04 Nov, 2015 1 commit
  31. 20 Aug, 2015 1 commit
  32. 12 Aug, 2015 1 commit
  33. 10 Aug, 2015 1 commit
    • mstarzinger's avatar
      [heap] Avoid overzealous inclusion of heap internal headers. · 65c8ecc6
      mstarzinger authored
      This is a first step towards constraining down the heap interface to
      just the heap.h file. Note that many includes still leak through that
      file to the global "src" directory, but there now is a single place
      controlling which declarations leak that way. Especially inclusion of
      inline header files within "heap" has been limited drastically.
      
      R=hpayer@chromium.org,mlippautz@chromium.org
      
      Review URL: https://codereview.chromium.org/1281233003
      
      Cr-Commit-Position: refs/heads/master@{#30092}
      65c8ecc6
  34. 24 Jul, 2015 1 commit
  35. 13 Jul, 2015 1 commit
  36. 01 Jun, 2015 1 commit