- 10 Jan, 2020 1 commit
-
-
Sigurd Schneider authored
This CL adds timestamps to coverage updates. This is useful for clients, because between requesting a coverage update and collecting coverage data significant time may pass. This change allows precise attribution at what time a coverage update was taken. Change-Id: I65a9cccb0171e892b7dbe35d105d3ca246ba08d0 Bug: chromium:1022031 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1992435Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Reviewed-by:
Simon Zünd <szuend@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#65696}
-
- 16 May, 2019 2 commits
-
-
Jakob Gruber authored
Now that function counts are based on dedicated call counters instead of FeedbackVector::invocation_count, we can enable optimizations for block coverage modes. This significantly speeds up V8 with enabled coverage: Before this CL, the web-tooling-benchmark regressed by 70% (block count coverage vs. no coverage). With this CL, the regression is reduced to 40%. Bug: v8:6000,v8:9148 Change-Id: I6bb538bd66f32f016c66c1d1996bce3b25958232 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1615241 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61582}
-
Jakob Gruber authored
Prior to this CL, call counts at function scope were taken from the FeedbackVector::invocation_count field. This had two major drawbacks: 1. for generator functions, these count the number of resumptions instead of the number of calls; and 2. the invocation count is not maintained in optimized code. The solution implemented here is to add a dedicated call counter at function scope which is incremented exactly once each time the function is called. A minor complication is that our coverage output format expects function-scope counts in the dedicated CoverageFunction object, and not as a CoverageBlock. Thus function-scope block counts are initially marked with magic positions, and later recognized and rewritten during processing. This CL thus fixes reported generator function call counts and enables optimizations in block coverage modes (more to come in a follow-up). Drive-by: Don't report functions with empty source ranges. Bug: v8:6000,v8:9148,v8:9212 Cq-Include-Trybots: luci.chromium.try:linux_layout_tests_layout_ng Change-Id: Idbe5edb35a595cf12b6649314738ac00efd173b8 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1613996 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#61574}
-
- 05 Feb, 2019 1 commit
-
-
Leszek Swirski authored
Preserve coverage for unused functions by force marking them used when code coverage is enabled. Bug: chromium:927464 Change-Id: Ia973467d06f7268f4e98cc76d0bb98cc591e979c Reviewed-on: https://chromium-review.googlesource.com/c/1454717 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#59373}
-
- 25 Jan, 2019 1 commit
-
-
Leszek Swirski authored
Declare Variables with a name and position, rather than by passing through a VariableProxy. This allows us to not create dummy proxies for things like function declarations, and allows us to consider those declarations unused. As a side-effect, we also have to check if a variable is unused in the bytecode generator (as it will no longer be allocated), and we end up skip generating code/SFIs for dead variables/functions. Change-Id: I4c2c872473f23e124f9456b4b92f87159658f8e0 Reviewed-on: https://chromium-review.googlesource.com/c/1414916 Commit-Queue: Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Cr-Commit-Position: refs/heads/master@{#59088}
-
- 21 Dec, 2018 1 commit
-
-
Jakob Gruber authored
This changes a few bits about how continuation counters are handled. It introduces a new mechanism that allows removal of a continuation range after it has been created. If coverage is enabled, we run a first post-processing pass on the AST immediately after parsing, which removes problematic continuation ranges in two situations: 1. nested continuation counters - only the outermost stays alive. 2. trailing continuation counters within a block-like structure are removed if the containing structure itself has a continuation. R=bmeurer@chromium.org, jgruber@chromium.org, yangguo@chromium.org Bug: v8:8381, v8:8539 Change-Id: I6bcaea5060d8c481d7bae099f6db9f993cc30ee3 Reviewed-on: https://chromium-review.googlesource.com/c/1339119Reviewed-by:
Yang Guo <yangguo@chromium.org> Reviewed-by:
Leszek Swirski <leszeks@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#58443}
-
- 31 May, 2018 2 commits
-
-
Sergiy Byelozyorov authored
This reverts commit 003159e7. Reason for revert: breaks roll into Chromium: https://ci.chromium.org/p/chromium/builders/luci.chromium.try/linux_chromium_headless_rel/3140 Original change's description: > [inspector] RemoteObject.description should be empty for primitive type > > We currently report description field for numbers. On client side user > can calculate description as remoteObject.unserializableValue || > (remoteObject.value + ''). Let's report description only for objects to > simplify value -> remoteObject logic a bit. > > R=dgozman@chromium.org > TBR=jgruber@chromium.org > > Bug: chromium:595206 > Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel > Change-Id: I91356a44aa3024e20c8f966869abf4a41b88e4bc > Reviewed-on: https://chromium-review.googlesource.com/737485 > Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> > Reviewed-by: Pavel Feldman <pfeldman@chromium.org> > Cr-Commit-Position: refs/heads/master@{#53453} TBR=dgozman@chromium.org,pfeldman@chromium.org,kozyatinskiy@chromium.org Change-Id: Ifc184e1ac158d9ea7034922a7250444448fac49f No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:595206 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Reviewed-on: https://chromium-review.googlesource.com/1081207Reviewed-by:
Sergiy Byelozyorov <sergiyb@chromium.org> Commit-Queue: Sergiy Byelozyorov <sergiyb@chromium.org> Cr-Commit-Position: refs/heads/master@{#53461}
-
Alexey Kozyatinskiy authored
We currently report description field for numbers. On client side user can calculate description as remoteObject.unserializableValue || (remoteObject.value + ''). Let's report description only for objects to simplify value -> remoteObject logic a bit. R=dgozman@chromium.org TBR=jgruber@chromium.org Bug: chromium:595206 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel Change-Id: I91356a44aa3024e20c8f966869abf4a41b88e4bc Reviewed-on: https://chromium-review.googlesource.com/737485 Commit-Queue: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Pavel Feldman <pfeldman@chromium.org> Cr-Commit-Position: refs/heads/master@{#53453}
-
- 20 Nov, 2017 1 commit
-
-
jgruber authored
When collecting source ranges for conditionals (`a ? b : c`), include the '?' and ':' tokens in the then- and else ranges, respectively. Bug: v8:7098 Change-Id: I22315e2040c96c977e0b49e1fafe4228a6558471 Reviewed-on: https://chromium-review.googlesource.com/778321Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49484}
-
- 28 Aug, 2017 1 commit
-
-
Yang Guo authored
This is so that precise coverage starts with a clean slate. The old behavior can be emulated by calling getBestEffortCoverage before starting precise coverage. R=jgruber@chromium.org Bug: chromium:757998 Change-Id: Ib3ee2316966f676456198159bdcf8ba8b9d3896f Reviewed-on: https://chromium-review.googlesource.com/635084 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47629}
-
- 07 Aug, 2017 1 commit
-
-
Yang Guo authored
R=jgruber@chromium.org Change-Id: Iad6f815d2476c59a498b7f580ec664417e83c675 Reviewed-on: https://chromium-review.googlesource.com/600050 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47197}
-
- 02 Aug, 2017 1 commit
-
-
jgruber authored
Consider: function f() { return; } This CL ensures that the closing brace is considered as covered by introducing a special case for open-ended range rewrites when the parent range is the function range itself. Bug: v8:6000, v8:6661 Change-Id: I0be307759967e9f4df245a4f367326a37dda86fd Reviewed-on: https://chromium-review.googlesource.com/597651Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#47079}
-
- 31 Jul, 2017 1 commit
-
-
Jakob Gruber authored
Function-granularity coverage skips functions that are both uncovered and have an uncovered parent. This optimization needs to be tweaked once block coverage and incremental collection is in play, as it is possible to have a function with invocation_count == 0 (i.e. uncovered at function granularity) that still has relevant block-granularity coverage. Bug: v8:6000 Change-Id: I4cc81b8a6935aa58e29d383ed4fa749cbfe69352 Reviewed-on: https://chromium-review.googlesource.com/589508Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46991}
-
- 17 Jul, 2017 1 commit
-
-
jgruber authored
Bug: v8:6000 Change-Id: I2853d44d8bcf34b28630594cc9c2782046bd4b28 Reviewed-on: https://chromium-review.googlesource.com/573900Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46700}
-
- 14 Jul, 2017 1 commit
-
-
jgruber authored
Bug: v8:6000 Change-Id: I8c068383300ba869a87f836504c84ea08fcff87e Reviewed-on: https://chromium-review.googlesource.com/568307Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46675}
-
- 07 Jul, 2017 1 commit
-
-
jgruber authored
This adds a new binary block coverage mode (in addition to the existing count block coverage), as well as a few transformation passes to reduce the number of uselessly reported ranges. Bug: v8:6000 Change-Id: I4fb234ca015990d00aa2f1dccb87f76ba4748994 Reviewed-on: https://chromium-review.googlesource.com/552642 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Cr-Commit-Position: refs/heads/master@{#46463}
-
- 06 Jul, 2017 1 commit
-
-
jgruber authored
This CL adds a few transformations that clean up the set of reported source ranges. Duplicates, empty, and uncovered ranges are removed, and nested/consecutive ranges are merged if possible. BUG=v8:6000 Change-Id: I421ee35ce8292cfe84c1eea4f653762cea5d909d Reviewed-on: https://chromium-review.googlesource.com/558411Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46450}
-
- 23 Jun, 2017 2 commits
-
-
jgruber authored
Drive-by-fixes: Singleton ranges past EOF, disable optimization for block count mode. Bug: v8:6000 Change-Id: I718891f8821285ce3d7d8360faaa91a43de5b93d Reviewed-on: https://chromium-review.googlesource.com/541300Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#46168}
-
jgruber authored
This piggy-backs on top of existing precise and best-effort coverage to expose block coverage through the inspector protocol. Coverage collection now implicitly reports block-granularity coverage when available. A new 'isBlockCoverage' property on Inspector's FunctionCoverage type specifies the granularity of reported coverage. For now, only count-based block coverage is supported, but binary block coverage should follow soon. Support is still gated behind the --block-coverage flag. Bug: v8:6000 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I9c4d64e1d2a098e66178b3a68dcee800de0081af Reviewed-on: https://chromium-review.googlesource.com/532975 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by:
Dmitry Gozman <dgozman@chromium.org> Cr-Commit-Position: refs/heads/master@{#46157}
-
- 24 Mar, 2017 1 commit
-
-
yangguo authored
Only include function ranges for with non-0 counts or if the immediate outer function has non-0 count. R=caseq@chromium.org, jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2764073004 Cr-Original-Commit-Position: refs/heads/master@{#44079} Committed: https://chromium.googlesource.com/v8/v8/+/a7577ede0b74967727895eba5e06dbe1d01fb56d Review-Url: https://codereview.chromium.org/2764073004 Cr-Commit-Position: refs/heads/master@{#44120}
-
- 23 Mar, 2017 3 commits
-
-
machenbach authored
Revert of [debug] do not report unnecessary coverage data. (patchset #4 id:60001 of https://codereview.chromium.org/2764073004/ ) Reason for revert: breaks layout tests: https://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064/builds/14438 Original issue's description: > [debug] do not report unnecessary coverage data. > > Only include function ranges for with non-0 counts or if the immediate outer function has non-0 count. > > R=caseq@chromium.org, jgruber@chromium.org > BUG=v8:5808 > > Review-Url: https://codereview.chromium.org/2764073004 > Cr-Commit-Position: refs/heads/master@{#44079} > Committed: https://chromium.googlesource.com/v8/v8/+/a7577ede0b74967727895eba5e06dbe1d01fb56d TBR=caseq@chromium.org,jgruber@chromium.org,yangguo@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=v8:5808 Review-Url: https://codereview.chromium.org/2769063004 Cr-Commit-Position: refs/heads/master@{#44080}
-
yangguo authored
Only include function ranges for with non-0 counts or if the immediate outer function has non-0 count. R=caseq@chromium.org, jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2764073004 Cr-Commit-Position: refs/heads/master@{#44079}
-
yangguo authored
With precise binary code coverage, the reported count is either 0 or 1. We only report 1 the first time we collect coverage data after the function has been executed. Since we do not care about the accurate execution count, we can optimize the function once it has been executed once. Also change best effort coverage to be implicitly binary. R=caseq@chromium.org, jgruber@chromium.org, pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2766573003 Cr-Commit-Position: refs/heads/master@{#44074}
-
- 21 Mar, 2017 1 commit
-
-
yangguo authored
We used to clear invocation counts when enabling precise coverage. This is not necessary, and we could continue to use the existing invocation counts on the heap. The old behavior can be achieved by explicitly resetting the counts by polling coverage data. R=jgruber@chromium.org,caseq@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2768453002 Cr-Commit-Position: refs/heads/master@{#43964}
-
- 20 Mar, 2017 1 commit
-
-
Yang Guo authored
BUG=v8:5808 Change-Id: I7bb3c3655e17271b44de881416e150ef51811154 Reviewed-on: https://chromium-review.googlesource.com/457336 Commit-Queue: Yang Guo <yangguo@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#43939}
-
- 10 Mar, 2017 1 commit
-
-
yangguo authored
R=caseq@chromium.org, pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2741653003 Cr-Commit-Position: refs/heads/master@{#43710}
-
- 08 Mar, 2017 1 commit
-
-
yangguo authored
R=caseq@chromium.org, pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2733783002 Cr-Commit-Position: refs/heads/master@{#43662}
-
- 06 Mar, 2017 1 commit
-
-
yangguo authored
If the top-level function cannot be found, we previously assumed an invocation count of 1. This is wrong when we expect the invocation counts to be reset for precise coverage. TBR=jgruber@chromium.org R=caseq@chromium.org,pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2723003007 Cr-Commit-Position: refs/heads/master@{#43620}
-
- 25 Feb, 2017 1 commit
-
-
kozyatinskiy authored
R=dgozman@chromium.org, pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2715833003 Cr-Commit-Position: refs/heads/master@{#43426}
-
- 22 Feb, 2017 1 commit
-
-
yangguo authored
R=jgruber@chromium.org, kozyatinskiy@chromium.org, pfeldman@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2700743002 Cr-Commit-Position: refs/heads/master@{#43363}
-