- 06 Jul, 2022 1 commit
-
-
Manos Koukoutos authored
Mainly src/compiler-dispatcher, src/d8, src/debug, src/runtime. Drive-by: Restore CONDITIONAL_WRITE_BARRIER invocation, which was accidentally changed. Bug: v8:13006 Change-Id: If07334b654b9ba2d4bec14a11cfdeeb1aa953b7d Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3745402 Commit-Queue: Manos Koukoutos <manoskouk@chromium.org> Reviewed-by: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/main@{#81556}
-
- 13 Sep, 2019 1 commit
-
-
Clemens Hammacher authored
After https://crrev.com/c/1800575 and https://crrev.com/c/1803343, which tried to fix this on occuring compile errors, this CL systematically adds the <memory> include to each header that uses {std::unique_ptr}. R=sigurds@chromium.org TBR=mlippautz@chromium.org,alph@chromium.org,rmcilroy@chromium.org,verwaest@chromium.org Bug: v8:9396 Change-Id: If7f9c3140842f9543135dddd7344c0f357999da0 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1803349Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Sigurd Schneider <sigurds@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Commit-Queue: Sigurd Schneider <sigurds@chromium.org> Cr-Commit-Position: refs/heads/master@{#63767}
-
- 23 May, 2019 2 commits
-
-
Yang Guo authored
TBR=bmeurer@chromium.org,leszeks@chromium.org Bug: v8:9247 Change-Id: I8d14d0192ea8c705f8274e8e61a162531826edb6 Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1624220Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#61769}
-
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}
-
- 16 May, 2019 1 commit
-
-
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}
-
- 27 Feb, 2019 1 commit
-
-
Maya Lekova authored
Moved CoverageMode and TypeProfileMode enums to interface-types.h to save one include in isolate.h. This reduces the expanded lines of code count by ~45k. Bug: v8:8834 R=yangguo@chromium.org Change-Id: I399fe8cf66b1aec79bcb5831afd46a74e358244d Reviewed-on: https://chromium-review.googlesource.com/c/1489072Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Maya Lekova <mslekova@chromium.org> Cr-Commit-Position: refs/heads/master@{#59886}
-
- 12 Oct, 2018 1 commit
-
-
Jakob Kummerow authored
This makes it possible for handles.h to #include objects.h, which upcoming changes will need. Bug: v8:3770 Change-Id: I4f500736028668749bb73fb24f9732df757e97d0 Reviewed-on: https://chromium-review.googlesource.com/c/1278487Reviewed-by: Michael Stanton <mvstanton@chromium.org> Commit-Queue: Jakob Kummerow <jkummerow@chromium.org> Cr-Commit-Position: refs/heads/master@{#56615}
-
- 18 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: I1fdd9210d92725701f413ff410e3a39d96bccf66 Reviewed-on: https://chromium-review.googlesource.com/1224111 Commit-Queue: Florian Sattler <sattlerf@google.com> Reviewed-by: Yang Guo <yangguo@chromium.org> Cr-Commit-Position: refs/heads/master@{#55986}
-
- 11 Sep, 2017 2 commits
-
-
Franziska Hinkelmann authored
If Coverage goes out of scope, ScriptData, FunctionData, or BlockData still rely on Coverage's coverage_. Make coverage_ a shared_ptr owned by all four classes. Bug: Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ifab5d05184cc5db0fd0a935254b967286295e63f Reviewed-on: https://chromium-review.googlesource.com/657381Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#47938}
-
Franziska Hinkelmann authored
Bug: v8:5933 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: If7d69844a309285ff53edb38688c3c647217fea2 Reviewed-on: https://chromium-review.googlesource.com/657379Reviewed-by: Yang Guo <yangguo@chromium.org> Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Cr-Commit-Position: refs/heads/master@{#47937}
-
- 08 Sep, 2017 1 commit
-
-
Franziska Hinkelmann authored
JavaScript is a dynamically typed language. But most code is written with fixed types in mind. When debugging JavaScript, it is helpful to know the types of variables and parameters at runtime. It is often hard to infer types for complex code. Type profiling provides this information at runtime. Node.js uses the inspector protocol. This CL allows Node.js users to access and analyse type profile for via Node modules or the in-procress api. Type Profile helps developers to analyze their code for correctness and performance. Design doc: https://docs.google.com/a/google.com/document/d/1O1uepXZXBI6IwiawTrYC3ohhiNgzkyTdjn3R8ysbYgk/edit?usp=sharing Add `takeTypeProfile` to the inspector protocol. It returns a list of TypeProfileForScripts, which in turn contains the type profile for each function. We can use TypeProfile data to annotate JavaScript code. Sample script with data from TypeProfile: function f(/*Object, number, undefined*/a, /*Array, number, null*/b, /*boolean, Object, symbol*/c) { return 'bye'; /*string*/}; f({}, [], true); f(3, 2.3, {a: 42}); f(undefined, null, Symbol('hello'));/*string*/ Bug: v8:5933 Cq-Include-Trybots: master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: I626bfb886b752f90b9c86cc6953601558b18b60d Reviewed-on: https://chromium-review.googlesource.com/508588 Commit-Queue: Franziska Hinkelmann <franzih@chromium.org> Reviewed-by: Pavel Feldman <pfeldman@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Aleksey Kozyatinskiy <kozyatinskiy@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#47920}
-
- 23 Jun, 2017 1 commit
-
-
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}
-
- 21 Jun, 2017 1 commit
-
-
jgruber authored
This CL improves reported source range precision in a couple of ways: Source ranges are now standardized to consist of an inclusive start index and an exclusive end index (similar to what's reported for functions). For example: 0123456789 // Offset. { f(); } // Block represented as range {0,8}. Duplicate singleton ranges (i.e. same start and end offsets) are now merged (this only becomes relevant once jump statement coverage is added). For example: for (.) break; // Break- and loop continuation have same positions. SourceRangeScope incorrectly collected starting position (unconditionally) and end position (when no semi-colon was present). 01234567890123 // Offset. for (.) break // Loop body range is {8,13}, was {6,9}. Bug: v8:6000 Change-Id: I62e7c70cc894a20f318330a2fbbcedc47da2b5db Reviewed-on: https://chromium-review.googlesource.com/541358 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by: Marja Hölttä <marja@chromium.org> Cr-Commit-Position: refs/heads/master@{#46095}
-
- 06 Jun, 2017 1 commit
-
-
jgruber authored
This CL implements general infrastructure for block coverage together with initial support for if-statements. Coverage output can be generated in lcov format by d8 as follows: $ d8 --block-coverage --lcov=$(echo ~/simple-if.lcov) ~/simple-if.js $ genhtml ~/simple-if.lcov -o ~/simple-if $ chrome ~/simple-if/index.html A high level overview of the implementation follows: The parser now collects source ranges unconditionally for relevant AST nodes. Memory overhead is very low and this seemed like the cleanest and simplest alternative. Bytecode generation uses these ranges to allocate coverage slots and insert IncBlockCounter instructions (e.g. at the beginning of then- and else blocks for if-statements). The slot-range mapping is generated here and passed on through CompilationInfo, and is later accessible through the SharedFunctionInfo. The IncBlockCounter bytecode fetches the slot-range mapping (called CoverageInfo) from the shared function info and simply increments the counter. We don't collect native-context-specific counts as they are irrelevant to our use-cases. Coverage information is finally generated on-demand through Coverage::Collect. The only current consumer is a d8 front-end with lcov-style output, but the short-term goal is to expose this through the inspector protocol. BUG=v8:6000 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2882973002 Cr-Commit-Position: refs/heads/master@{#45737}
-
- 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
This is in preparation of adding precise binary mode. BUG=v8:5808 Review-Url: https://codereview.chromium.org/2765813002 Cr-Commit-Position: refs/heads/master@{#43974}
-
- 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}
-
- 16 Feb, 2017 1 commit
-
-
yangguo authored
The inspector uses V8's API handles and should not access V8 internals. This change makes sure it can use the coverage data in an encapsulated way. R=jgruber@chromium.org, kozyatinskiy@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2696163002 Cr-Commit-Position: refs/heads/master@{#43231}
-
- 15 Feb, 2017 1 commit
-
-
yangguo authored
Use d8 with --lcov=<file> to append coverage info to a file. The result can be fed into genhtml(1). R=jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2695823003 Cr-Commit-Position: refs/heads/master@{#43207}
-
- 14 Feb, 2017 1 commit
-
-
yangguo authored
R=jgruber@chromium.org, kozyatinskiy@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2694623003 Cr-Commit-Position: refs/heads/master@{#43175}
-
- 10 Feb, 2017 1 commit
-
-
yangguo authored
Collecting precise invocation counts need to be explicitly enabled. Once enabled, we disable optimization (optimized code does not increment invocation count, and may inline callees), and make sure feedback vectors interesting for code coverage is not garbage-collected. R=hpayer@chromium.org, jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2686063002 Cr-Commit-Position: refs/heads/master@{#43082}
-
- 09 Feb, 2017 1 commit
-
-
yangguo authored
Collect code coverage from the available invocation counts. The granularity is at function level, and invocation counts may be lost to GC. Coverage::Collect returns a std::vector of Coverage::ScriptData. Each ScriptData contains a script ID and a std::vector of Coverage::RangeEntry. Each RangeEntry consists of a end position and the invocation count. The start position is implicit from the end position of the previous RangeEntry, or 0 if it's the first RangeEntry. R=jgruber@chromium.org BUG=v8:5808 Review-Url: https://codereview.chromium.org/2689493002 Cr-Commit-Position: refs/heads/master@{#43072}
-