- 23 May, 2019 2 commits
-
-
Clemens Hammacher authored
This CL was generated by an automatic clang AST rewriter using this matcher expression: callExpr( callee( cxxMethodDecl( hasName("operator->"), ofClass(isSameOrDerivedFrom("v8::internal::Object")) ) ), argumentCountIs(1) ) The "->" at the expression location was then rewritten to ".". R=jkummerow@chromium.org TBR=mstarzinger@chromium.org,verwaest@chromium.org,yangguo@chromium.org Bug: v8:9183, v8:3770 No-Try: true No-Tree-Checks: true Change-Id: I0a7ecabdeafe51d0cf427f5280af0c7cab96869e Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624209Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#61764}
-
Yang Guo authored
Bug: v8:9247 Change-Id: I0023200c54fa6499ae4e2cf5e4c89407cc35f187 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624218Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61762}
-
- 22 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 Change-Id: I79e0553e8a0d6dac2aa16b94a6c0e05b6ccde4a1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621934 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Clemens Hammacher <clemensh@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#61725}
-
- 21 May, 2019 1 commit
-
-
Yang Guo authored
Bug: v8:9247 TBR=bmeurer@chromium.org,neis@chromium.org NOPRESUBMIT=true Change-Id: Ia1e49d1aac09c4ff9e05d58fab9d08dd71198878 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1621931Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61682}
-
- 16 May, 2019 1 commit
-
-
Yang Guo authored
R=jkummerow@chromium.org, neis@chromium.org, rmcilroy@chromium.org, ulan@chromium.org Bug: v8:9247 Change-Id: If55cdec37c031df5ae101fdf93082f32ca5beade Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613992Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61573}
-
- 25 Mar, 2019 3 commits
-
-
Benedikt Meurer authored
The --type_info_threshold is no longer supported for a long time and doesn't do anything useful nowadays, so no point in having that around. Drive-by-fix: Remove the FeedbackVector::ComputeCounts() logic, since it's dead code anyways by now. Bug: v8:8834 Change-Id: I05f7517b3b82e34c0a83357337a456ab9c9f1f42 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538128 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60442}
-
Benedikt Meurer authored
Before this change we had essentially two optimization limits, one hard limit in the TurboFan pipeline (128KiB), and a soft limit in the runtime profiler (60KiB). The hard limit was only relevant to --always-opt and other internal test infrastructure, and the soft limit was always enforced on regular JavaScript, but didn't properly disable further optimization for the function (so for example --trace-opt would continuesly report attempts to optimize the function). Now with this change we only have the hard limit, set to 60KiB, in the TurboFan pipeline and use that consistently. Bug: v8:8598 Change-Id: I9e2ae7cb67de4a2256d3a7b9c3aee3dab60c2ec1 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538127 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Jaroslav Sevcik <jarin@chromium.org> Auto-Submit: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Cr-Commit-Position: refs/heads/master@{#60436}
-
Benedikt Meurer authored
Add tracing support for the %StackGuard() and %Interrupt() runtime calls and the individual actions performed in StackGuard::HandleInterrupts(). This includes: - "V8.GCHandleGCRequest" (in "disabled-by-default-v8.gc") when the GC_REQUEST bit is set. - "V8.WasmGrowSharedMemory" (in "disabled-by-default-v8.wasm") when the GROW_SHARED_MEMORY bit is set. - "V8.TerminateExecution" (in "v8.execute") when the TERMINATE_EXECUTION bit is set. - "V8.GCDeoptMarkedAllocationSites" (in "disabled-by-default-v8.gc") when the DEOPT_MARKED_ALLOCATION_SITES bit is set. - "V8.InstallOptimizedFunctions" (in "disabled-by-default-v8.compile") when the INSTALL_CODE bit is set. - "V8.InvokeApiInterruptCallbacks" (in "v8.execute") when the API_INTERRUPT bit is set. Now we also emit a trace event "V8.MarkCandidatesForOptimization" (in "disabled-by-default-v8.compile") in addition to the above from the RuntimeProfiler when we mark candidates for optimization at the end of each stack check. An example of the "V8.InstallOptimizedFunctions" in action (in the trace viewer) can be seen here: https://i.paste.pics/094a04af035eedc0690cd4079afa28f1.png This supersedes the previously introduced --trace-interrupts CLI flag, which is thus removed as part of this change. Bug: v8:8598 Change-Id: I3c3375d00b07cbe700b6912097d7264031ace802 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1538116 Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Peter Marshall <petermarshall@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#60428}
-
- 08 Dec, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: I1d74ffe9e5478b4b8bc0acbf088d20919d458d50 Reviewed-on: https://chromium-review.googlesource.com/c/1363822 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Andreas Haas <ahaas@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#58112}
-
- 07 Dec, 2018 3 commits
-
-
Jakob Gruber authored
This is a reland of f849396c Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} Tbr: mstarzinger@chromium.org,yangguo@chromium.org,jkummerow@chromium.org,bmeurer@chromium.org Bug: v8:7777, v8:5784 Change-Id: I005ee2a820d49a75a90481d262a310e4ccfd1391 Reviewed-on: https://chromium-review.googlesource.com/c/1367746Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58101}
-
Jakob Gruber authored
This reverts commit f849396c. Reason for revert: arm64: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/24229 Original change's description: > [nojit] Remove code stubs > > All stubs have been migrated to builtins. This CL removes most related > code. > > Bug: v8:7777, v8:5784 > Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad > Reviewed-on: https://chromium-review.googlesource.com/c/1365284 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org> > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Yang Guo <yangguo@chromium.org> > Cr-Commit-Position: refs/heads/master@{#58093} TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,jarin@chromium.org,jgruber@chromium.org,bmeurer@chromium.org Change-Id: I52c3abd3f4e5872fe26ed7e527a58b118e02b387 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:7777, v8:5784 Reviewed-on: https://chromium-review.googlesource.com/c/1367804Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58095}
-
Jakob Gruber authored
All stubs have been migrated to builtins. This CL removes most related code. Bug: v8:7777, v8:5784 Change-Id: I4470cfef34788e6c8e0fd5fd09e40e250d088dad Reviewed-on: https://chromium-review.googlesource.com/c/1365284 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#58093}
-
- 30 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
to the new design. Bug: v8:3770 Change-Id: I63291cc8eccfa1da20e84c6d3e9f48f253409396 Reviewed-on: https://chromium-review.googlesource.com/c/1355627 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#57981}
-
- 28 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If405611d359d29ae1958beebd9202e068434a621 Reviewed-on: https://chromium-review.googlesource.com/c/1350286 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57918}
-
- 24 Nov, 2018 1 commit
-
-
Jakob Kummerow authored
Bug: v8:3770 Change-Id: If5328a4c63d8efe0ce7a0c5a744666c79c02e1ee Reviewed-on: https://chromium-review.googlesource.com/c/1345912 Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#57804}
-
- 20 Nov, 2018 1 commit
-
-
Mythri authored
This cl updates: 1. Adds a new feedback cell map to specify that no feedback is collected 2. Checks if feedback vectors are valid before using then when creating closures 3. Runtime profiler to only tier up functions with feedback 4. Interpreter entry trampoline to check for feedback vector before using it. Bug: v8:8394 Change-Id: I0248c8cd35d841c2744b22f4c672fa2e82033f6e Reviewed-on: https://chromium-review.googlesource.com/c/1339866 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#57648}
-
- 02 Nov, 2018 2 commits
-
-
Ross McIlroy authored
This is a reland of 7350e7b2 Disabled LayoutTest that was causing issues and will rebaseline once this has rolled. Original change's description: > Get BytecodeArray via current frame where possible. > > With BytecodeArray flushing the SFI->BytecodeArray pointer will become pseudo weak. > Instead of getting the bytecode array from the SFI, get it from the frame instead > (which is a strong pointer). Note: This won't actually change behaviour since the > fact that the bytecode array was on the frame will retain it strongly, however it > makes the contract that the BytecodeArray must exist at these points more explicit. > > Updates code in runtime-profiler.cc, frames.cc and runtime-test.cc to do this. > > BUG=v8:8395 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel > Change-Id: Id7a3e6857abd0e89bf238e9b0b01de4461df54e1 > Reviewed-on: https://chromium-review.googlesource.com/c/1310193 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Mythri Alle <mythria@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57198} TBR=mythria@chromium.org Bug: v8:8395 Change-Id: I63044138f876a1cdfb8bb71499732a257f30d29a Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/c/1314336Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#57219}
-
Maya Lekova authored
This reverts commit 7350e7b2. Reason for revert: Braking layout test, blocking the roll, see https://bugs.chromium.org/p/v8/issues/detail?id=8405 Original change's description: > Get BytecodeArray via current frame where possible. > > With BytecodeArray flushing the SFI->BytecodeArray pointer will become pseudo weak. > Instead of getting the bytecode array from the SFI, get it from the frame instead > (which is a strong pointer). Note: This won't actually change behaviour since the > fact that the bytecode array was on the frame will retain it strongly, however it > makes the contract that the BytecodeArray must exist at these points more explicit. > > Updates code in runtime-profiler.cc, frames.cc and runtime-test.cc to do this. > > BUG=v8:8395 > > Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel > Change-Id: Id7a3e6857abd0e89bf238e9b0b01de4461df54e1 > Reviewed-on: https://chromium-review.googlesource.com/c/1310193 > Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Mythri Alle <mythria@chromium.org> > Cr-Commit-Position: refs/heads/master@{#57198} TBR=rmcilroy@chromium.org,mythria@chromium.org Change-Id: Ie5db0ec1d68ca01d62e9880a4476704ad4d013b5 No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: v8:8395 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/c/1314330Reviewed-by:
Maya Lekova <mslekova@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#57205}
-
- 01 Nov, 2018 1 commit
-
-
Ross McIlroy authored
With BytecodeArray flushing the SFI->BytecodeArray pointer will become pseudo weak. Instead of getting the bytecode array from the SFI, get it from the frame instead (which is a strong pointer). Note: This won't actually change behaviour since the fact that the bytecode array was on the frame will retain it strongly, however it makes the contract that the BytecodeArray must exist at these points more explicit. Updates code in runtime-profiler.cc, frames.cc and runtime-test.cc to do this. BUG=v8:8395 Cq-Include-Trybots: luci.chromium.try:linux_chromium_headless_rel;master.tryserver.blink:linux_trusty_blink_rel Change-Id: Id7a3e6857abd0e89bf238e9b0b01de4461df54e1 Reviewed-on: https://chromium-review.googlesource.com/c/1310193 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#57198}
-
- 10 Apr, 2018 1 commit
-
-
Matheus Marchini authored
Before Turbofan/Ignition it was possible to use external profilers to sample running V8/Node.js processes and generate reports/FlameGraphs from that. It's still possible to do so, but non-optimized JavaScript functions appear in the stack as InterpreterEntryTrampoline. This commit adds a runtime flag which makes interpreted frames visible on the process' native stack as distinguishable functions, making the sampled data gathered by external profilers such as Linux perf and DTrace more useful. R=bmeurer@google.com, franzih@google.com, jarin@google.com, yangguo@google.com Bug: v8:7155 Change-Id: I3dc8876aa3cd9f1b9766624842a7cc354ccca415 Reviewed-on: https://chromium-review.googlesource.com/959081 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#52533}
-
- 17 Oct, 2017 1 commit
-
-
Marja Hölttä authored
OSR for functions which use arguments no longer needs to be disabled, since TurboFan handles the case. Bug: Change-Id: I121f1190a142c18f113bd5f875e258812645c43f Reviewed-on: https://chromium-review.googlesource.com/721661Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Commit-Queue: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#48631}
-
- 19 Sep, 2017 1 commit
-
-
Mythri authored
Runtime profiler uses bytecode array size for the tiering up decisions. Bytecode array size includes the header size as well. Inlining heuristics use bytecode array length instead. Bytecode array length is just the size of bytecode not inlcuding any headers. This change is to keep both of them in sync to avoid confusion. Also, the header contains several pointers and hence the size changes depending on the size of kPointerSize. Bug: Change-Id: I22a9cf5e0bb9d6853c6a8be8d69c9ff459418a0d Reviewed-on: https://chromium-review.googlesource.com/670724Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#48081}
-
- 13 Sep, 2017 1 commit
-
-
Ross McIlroy authored
BUG=v8:6409 Change-Id: I9e06388c683e283a1922fb436dceb244f5093042 Reviewed-on: https://chromium-review.googlesource.com/664857Reviewed-by:
Michael Stanton <mvstanton@chromium.org> Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47993}
-
- 11 Sep, 2017 1 commit
-
-
Mike Stanton authored
Since we don't have a full-codegen compiler anymore, we no longer generate Code::FUNCTION kind. Nice! Here is some cleanup. Bug: v8:6409 Change-Id: I05634e4ca85c4037b49a4346f4e8bae8042b8762 Reviewed-on: https://chromium-review.googlesource.com/657817 Commit-Queue: Michael Stanton <mvstanton@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#47951}
-
- 05 Sep, 2017 2 commits
-
-
Leszek Swirski authored
Now that FCG is gone, we don't need to have a code-size multiplier to distinguish Ignition and FCG code sizes. Bug: v8:6409 Change-Id: I05e5fa2483bfc17e91de22736b66ad27a5aab49b Reviewed-on: https://chromium-review.googlesource.com/649149 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#47819}
-
Mythri authored
This cl: https://chromium-review.googlesource.com/c/538614/ changes the number of ticks required for tiering up based on the size of function. An earlier cl: https://chromium-review.googlesource.com/c/529165/ also resets ticks when type feedback changes. So, it is reasonable to assume that a function which has necessary number of ticks has the required type feedback for optimizing. Hence, removing the check for type feedback from the tierinup decision. Bug: Change-Id: Ia350ad4dfba5f93f1a17bdc0c309bf6b41b0c1c9 Reviewed-on: https://chromium-review.googlesource.com/647851Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#47816}
-
- 31 Aug, 2017 1 commit
-
-
Benedikt Meurer authored
Since fullcodegen was removed, all baseline code runs in Ignition now, so the code_is_interpreted parameter to FeedbackVector::ComputeCounts is no longer needed. Bug: v8:6409 Change-Id: I27842a4978079f8166f22db6c695b352a38e1d87 Reviewed-on: https://chromium-review.googlesource.com/646106Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#47748}
-
- 10 Aug, 2017 1 commit
-
-
Ross McIlroy authored
Removes the pathways to use Full-Codegen from compiler.cc. Also removes all paths to optimize using AstGraphBuilder, which relies on Full-codegen. Cleans up ast-numbering, runtime-profiler and some runtime functions to remove now dead code. This makes Full-codegen and AstGraphBuilder dead, but doesn't remove their code yet, that will be done in a followup CL to keep things reviewable. BUG=v8:6409 Change-Id: I3901ff17d960b2bb084cef0cb39fa16cb8419881 Reviewed-on: https://chromium-review.googlesource.com/583328 Commit-Queue: Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47277}
-
- 03 Aug, 2017 1 commit
-
-
Michael Starzinger authored
R=tebbi@chromium.org Change-Id: I9d22e0731da3e170fe40aa34667ff8948e11bb5c Reviewed-on: https://chromium-review.googlesource.com/595972Reviewed-by:
Tobias Tebbi <tebbi@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#47124}
-
- 28 Jul, 2017 1 commit
-
-
Leszek Swirski authored
With TurboFan, there should no longer be any deopt loops (aside from bugs). So, the "too many deopts" bailout is no longer needed, at least in its current form. This fixes an issue where deopt counts are leaked between native contexts, resulting in optimization being disabled unnecessarily. Bug: v8:6402 Change-Id: Ia06374ae6b5c2d473bcdd8eef1284bf02766c2fb Reviewed-on: https://chromium-review.googlesource.com/588894 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Cr-Commit-Position: refs/heads/master@{#46961}
-
- 25 Jul, 2017 1 commit
-
-
Leszek Swirski authored
Reland of https://chromium-review.googlesource.com/c/544888/. Instead of counting profiler ticks on the shared function info (which is shared between native contexts), count them on the feedback vector (which is not). This allows us to continue pushing optimization decisions off the SFI, onto the feedback vector. Note that a side-effect of this is that ICs don't have to walk the stack to reset profiler ticks, as they can access the feedback vector directly from their feedback nexus. Change-Id: I7aa6baed03f726843d1b62629c72b74f05114b48 Reviewed-on: https://chromium-review.googlesource.com/579051 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Igor Sheludko <ishell@chromium.org> Cr-Commit-Position: refs/heads/master@{#46868}
-
- 17 Jul, 2017 1 commit
-
-
Leszek Swirski authored
This reverts commit a2fcdc7c. Reason for revert: Large regressions in RCS (https://chromeperf.appspot.com/group_report?bug_id=740126) Original change's description: > [runtime] Move profiler ticks from SFI to feedback vector > > Instead of counting profiler ticks on the shared function info (which is > shared between native contexts), count them on the feedback vector > (which is not). This allows us to continue pushing optimization > decisions off the SFI, onto the feedback vector. > > Note that a side-effect of this is that ICs don't have to walk the stack > to reset profiler ticks, as they can access the feedback vector directly > from their feedback nexus. > > Change-Id: I232ae9e759fca75cd89d393148a4ff42caa2646f > Reviewed-on: https://chromium-review.googlesource.com/544888 > Reviewed-by: Igor Sheludko <ishell@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Cr-Commit-Position: refs/heads/master@{#46411} TBR=rmcilroy@chromium.org,leszeks@chromium.org,ishell@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Change-Id: Id587e4172e300c420f93c49744a2a0e66696edf8 Reviewed-on: https://chromium-review.googlesource.com/574227 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46702}
-
- 05 Jul, 2017 1 commit
-
-
Leszek Swirski authored
Instead of counting profiler ticks on the shared function info (which is shared between native contexts), count them on the feedback vector (which is not). This allows us to continue pushing optimization decisions off the SFI, onto the feedback vector. Note that a side-effect of this is that ICs don't have to walk the stack to reset profiler ticks, as they can access the feedback vector directly from their feedback nexus. Change-Id: I232ae9e759fca75cd89d393148a4ff42caa2646f Reviewed-on: https://chromium-review.googlesource.com/544888Reviewed-by:
Igor Sheludko <ishell@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#46411}
-
- 21 Jun, 2017 1 commit
-
-
Mythri authored
Currently, the number of ticks to wait before optimizing is a constant (if sufficient feedback is available). This cl changes it so that, larger functions would have to wait longer for optimizing. The number of ticks required scales linearly with the function size. Bug: Change-Id: Id27bea715cf15960667cf63381b1cbe8dac94428 Reviewed-on: https://chromium-review.googlesource.com/538614 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46097}
-
- 19 Jun, 2017 1 commit
-
-
Leszek Swirski authored
For interpreted functions, use the optimized code slot in the feedback vector to store an optimization marker (optimize/in optimization queue) rather than changing the JSFunction's code object. Then, adapt the self-healing mechanism to also dispatch based on this optimization marker. Similarly, replace SFI marking with optimization marker checks in CompileLazy. This allows JSFunctions to share optimization information (replacing shared function marking) without leaking this information across native contexts. Non I+TF functions (asm.js or --no-turbo) use a CheckOptimizationMarker shim which generalises the old CompileOptimized/InOptimizationQueue builtins and also checks the same optimization marker as CompileLazy and InterpreterEntryTrampoline. This is a reland of https://chromium-review.googlesource.com/c/509716 Change-Id: I02b790544596562373da4c9c9f6afde5fb3bcffe Reviewed-on: https://chromium-review.googlesource.com/535460Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#45997}
-
- 13 Jun, 2017 3 commits
-
-
Leszek Swirski authored
This reverts commit e39c9e02. Reason for revert: Breaks https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20debug/builds/15561 Original change's description: > [compiler] Drive optimizations with feedback vector > > For interpreted functions, use the optimized code slot in the feedback vector > to store an optimization marker (optimize/in optimization queue) rather than > changing the JSFunction's code object. Then, adapt the self-healing mechanism > to also dispatch based on this optimization marker. Similarly, replace SFI > marking with optimization marker checks in CompileLazy. > > This allows JSFunctions to share optimization information (replacing shared > function marking) without leaking this information across native contexts. Non > I+TF functions (asm.js or --no-turbo) use a CheckOptimizationMarker shim which > generalises the old CompileOptimized/InOptimizationQueue builtins and also > checks the same optimization marker as CompileLazy and > InterpreterEntryTrampoline. > > Change-Id: I6826bdde7ab9a919cdb6b69bc0ebc6174bcb91ae > Reviewed-on: https://chromium-review.googlesource.com/509716 > Commit-Queue: Leszek Swirski <leszeks@chromium.org> > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Cr-Commit-Position: refs/heads/master@{#45901} TBR=rmcilroy@chromium.org,mstarzinger@chromium.org,leszeks@chromium.org No-Presubmit: true No-Tree-Checks: true No-Try: true Change-Id: Ib6c2b4d90fc5f659a6dcaf3fd30321507ca9cb94 Reviewed-on: https://chromium-review.googlesource.com/532916Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#45903}
-
Leszek Swirski authored
For interpreted functions, use the optimized code slot in the feedback vector to store an optimization marker (optimize/in optimization queue) rather than changing the JSFunction's code object. Then, adapt the self-healing mechanism to also dispatch based on this optimization marker. Similarly, replace SFI marking with optimization marker checks in CompileLazy. This allows JSFunctions to share optimization information (replacing shared function marking) without leaking this information across native contexts. Non I+TF functions (asm.js or --no-turbo) use a CheckOptimizationMarker shim which generalises the old CompileOptimized/InOptimizationQueue builtins and also checks the same optimization marker as CompileLazy and InterpreterEntryTrampoline. Change-Id: I6826bdde7ab9a919cdb6b69bc0ebc6174bcb91ae Reviewed-on: https://chromium-review.googlesource.com/509716 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#45901}
-
Leszek Swirski authored
With the deprecation of Crankshaft, it's no longer necessary for FullCodeGen to keep track of its runtime profiler ticks on the code object, and we can instead unify the behaviour of FCG and Ignition to both increment the SFI counter instead. Bug: v8:6408 Change-Id: Idcdd673aa39af06fe15a0fc14dfda2afafb5e417 Reviewed-on: https://chromium-review.googlesource.com/528117Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Leszek Swirski <leszeks@chromium.org> Cr-Commit-Position: refs/heads/master@{#45892}
-
- 06 Jun, 2017 1 commit
-
-
Mythri authored
Introduces ThrowReferenceErrorIfHole / ThrowSuperNotCalledIfHole / ThrowSuperAlreadyCalledIfNotHole bytecodes to handle hole checks. In the bytecode-graph builder they are handled by introducing a deopt point instead of adding explicit control flow. JumpIfNotHole / JumpIfNotHoleConstant bytecodes are removed since they are no longer required. Bug: v8:4280, v8:6383 Change-Id: I58b70c556b0ffa30e41a0cd44016874c3e9c5fe1 Reviewed-on: https://chromium-review.googlesource.com/509613 Commit-Queue: Mythri Alle <mythria@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Reviewed-by:
Jaroslav Sevcik <jarin@chromium.org> Reviewed-by:
Michael Lippautz <mlippautz@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#45720}
-
- 15 May, 2017 1 commit
-
-
Mythri authored
Crankshaft flag and opt flag mostly serve the same purpose. Using crankshaft to mean use optimizing compiler is a bit confusing. This cl: https://chromium-review.googlesource.com/c/490206/ fixes the tests to use opt instead of crankshaft flag. One difference between --no-crankshaft and --no-opt would be that --no-opt would mean no optimizations at all where as with --no-crankshaft would mean we can force optimizations using %OptimizeFunctionOnNextCall. Bug: v8:6325 Change-Id: If17393ac5b6af4ea6e9a98e092f0261c2e0899c5 Reviewed-on: https://chromium-review.googlesource.com/490307Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Michael Starzinger <mstarzinger@chromium.org> Reviewed-by:
Benedikt Meurer <bmeurer@chromium.org> Commit-Queue: Mythri Alle <mythria@chromium.org> Cr-Commit-Position: refs/heads/master@{#45298}
-