v8/test/inspector/cpu-profiler
Jakob Gruber 3002ff44ee [coverage] Add dedicated FunctionLiteral counters
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}
2019-05-16 12:43:33 +00:00
..
console-profile-end-parameterless-crash-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-profile-end-parameterless-crash.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-profile-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
console-profile-wasm-expected.txt Reland "[inspector] Add wasm profiling test" 2019-02-20 12:35:53 +00:00
console-profile-wasm.js Reland "[inspector] Add wasm profiling test" 2019-02-20 12:35:53 +00:00
console-profile.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
coverage-block-expected.txt [coverage] Add dedicated FunctionLiteral counters 2019-05-16 12:43:33 +00:00
coverage-block.js [Test] Add --stress-flush-bytecode to gc-stress tester. 2018-12-13 18:37:56 +00:00
coverage-expected.txt [parser] Force func decl allocation for non-block code coverage 2019-02-15 11:49:26 +00:00
coverage.js [Test] Add --stress-flush-bytecode to gc-stress tester. 2018-12-13 18:37:56 +00:00
enable-disable-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
enable-disable.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
record-cpu-profile-expected.txt [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
record-cpu-profile.js [inspector] Refactor protocol-test.js 2017-05-19 00:35:45 +00:00
stop-without-preceeding-start-expected.txt Fix common misspellings 2017-08-02 09:35:28 +00:00
stop-without-preceeding-start.js Fix common misspellings 2017-08-02 09:35:28 +00:00