- 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}
-
- 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}
-
- 24 Sep, 2018 1 commit
-
-
Toon Verwaest authored
Change-Id: I05db378984b583d9dff3fe9fceb3adbf7e046e20 Reviewed-on: https://chromium-review.googlesource.com/1240338Reviewed-by:
Igor Sheludko <ishell@chromium.org> Commit-Queue: Toon Verwaest <verwaest@chromium.org> Cr-Commit-Position: refs/heads/master@{#56180}
-
- 18 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng Change-Id: I2204967cff3e50d967a9c6f4685f0df5a6ba84af Reviewed-on: https://chromium-review.googlesource.com/1226793Reviewed-by:
Toon Verwaest <verwaest@chromium.org> Reviewed-by:
Yang Guo <yangguo@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55976}
-
- 14 Sep, 2018 1 commit
-
-
Florian Sattler authored
Fixing clang-tidy warning. Bug: v8:8015 Change-Id: If9a66df529dc5870f6d5146d9a83d22367ffdc59 Reviewed-on: https://chromium-review.googlesource.com/1224114Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Florian Sattler <sattlerf@google.com> Cr-Commit-Position: refs/heads/master@{#55883}
-
- 24 Nov, 2017 1 commit
-
-
jgruber authored
This is a reland of 4d3bc552 Original change's description: > [coverage] add coverage for binary expressions > > Adds block-level coverage tracking for binary && and || > expressions. Introduces a BinaryOperation source-range > for tracking the operations themselves and an Expression > source-range, used for tracking NaryLogical expressions. > > This builds on work by jgruber@chromium.org in > the issue. > > TBR=marja@chromium.org > R=jgruber@chromium.org, rmcilroy@chromium.org > > Bug: v8:6660 > Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 > Reviewed-on: https://chromium-review.googlesource.com/754564 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49304} Bug: v8:6660 Change-Id: I1c8571660d6c501d526886867bd841c49d5c44fd Reviewed-on: https://chromium-review.googlesource.com/778288Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49613}
-
- 17 Nov, 2017 1 commit
-
-
Jakob Gruber authored
This reverts commit 4d3bc552. Reason for revert: https://crbug.com/785778 Original change's description: > [coverage] add coverage for binary expressions > > Adds block-level coverage tracking for binary && and || > expressions. Introduces a BinaryOperation source-range > for tracking the operations themselves and an Expression > source-range, used for tracking NaryLogical expressions. > > This builds on work by jgruber@chromium.org in > the issue. > > TBR=marja@chromium.org > R=jgruber@chromium.org, rmcilroy@chromium.org > > Bug: v8:6660 > Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 > Reviewed-on: https://chromium-review.googlesource.com/754564 > Commit-Queue: Jakob Gruber <jgruber@chromium.org> > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org> > Reviewed-by: Jakob Gruber <jgruber@chromium.org> > Cr-Commit-Position: refs/heads/master@{#49304} TBR=rmcilroy@chromium.org,marja@chromium.org,jgruber@chromium.org,ben@npmjs.com # Not skipping CQ checks because original CL landed > 1 day ago. Bug: v8:6660 Change-Id: Ie017c528604b2e01400f527511413eaea5786198 Reviewed-on: https://chromium-review.googlesource.com/776768Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Commit-Queue: Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49454}
-
- 10 Nov, 2017 1 commit
-
-
Benjamin authored
Adds block-level coverage tracking for binary && and || expressions. Introduces a BinaryOperation source-range for tracking the operations themselves and an Expression source-range, used for tracking NaryLogical expressions. This builds on work by jgruber@chromium.org in the issue. TBR=marja@chromium.org R=jgruber@chromium.org, rmcilroy@chromium.org Bug: v8:6660 Change-Id: I83a81f13a3514a734c06948b2d3e91138fb00e18 Reviewed-on: https://chromium-review.googlesource.com/754564 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Cr-Commit-Position: refs/heads/master@{#49304}
-
- 16 Oct, 2017 1 commit
-
-
Clemens Hammacher authored
Use the (D)CHECK_{EQ,NE,GT,...} macros instead of (D)CHECK with an embedded comparison. This gives better error messages and also does the right comparison for signed/unsigned mismatches. This will allow us to reenable the readability/check cpplint check. R=marja@chromium.org Bug: v8:6837, v8:6921 Change-Id: I17cf5cbbac3d2992c3b3588cc66e8564982453b6 Reviewed-on: https://chromium-review.googlesource.com/681355Reviewed-by:
Marja Hölttä <marja@chromium.org> Commit-Queue: Clemens Hammacher <clemensh@chromium.org> Cr-Commit-Position: refs/heads/master@{#48596}
-
- 30 Aug, 2017 1 commit
-
-
Adam Klein authored
CaseClause never made sense as an Expression; this CL allows us to remove several UNREACHABLEs and slim down the representation of CaseClause by removing its source position (which was only used in prettyprinting). The only real fallout of this change is that SourceRangeMap now stores its keys as ZoneObject*, rather than AstNode*, but since there's already compile time typechecking for inserting items into the map this shouldn't cause any ill effects. While modifying CaseClause, also removed the dead body_target() accessor (and related member variable). Thus this CL overall reduces the memory needed for each CaseClause by two words. Bug: v8:6092 Change-Id: I0021c0590a69e29305c41ec6105c8824ae0cc25b Reviewed-on: https://chromium-review.googlesource.com/639316Reviewed-by:
Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Marja Hölttä <marja@chromium.org> Reviewed-by:
Mythri Alle <mythria@chromium.org> Commit-Queue: Adam Klein <adamk@chromium.org> Cr-Commit-Position: refs/heads/master@{#47722}
-
- 27 Jul, 2017 1 commit
-
-
jgruber authored
These counters handle cases in which the catch/finally block contains a jump statement. Bug: v8:6000 Change-Id: Ic83f11ee431edabe61f129c9abc3adc12a79c338 Reviewed-on: https://chromium-review.googlesource.com/586595Reviewed-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@{#46945}
-
- 26 Jul, 2017 1 commit
-
-
jgruber authored
The yield* statement when used in combination with async iterators is not supported yet, as that is desugared into a more complex construct that doesn't offer a good dedicated bytecode to attach the source range information yet. Note that invocation counts of generator functions are incorrect as they count each resumption as an individual call. See https://crbug.com/v8/6594. Bug: v8:6000 Change-Id: I7ac7073473c9b64bb207cdbc4dab083ec1145656 Reviewed-on: https://chromium-review.googlesource.com/582690 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46890}
-
- 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}
-
- 13 Jul, 2017 1 commit
-
-
jgruber authored
Both labeled blocks: l0: { break l0; } and blocks containing jump statements (break, return, continue) require a continuation counter to correctly display coverage. Bug: v8:6000 Change-Id: I3ae8ddd3d9f6c087622482b86014dd583b774b71 Reviewed-on: https://chromium-review.googlesource.com/568024Reviewed-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@{#46644}
-
- 12 Jul, 2017 1 commit
-
-
jgruber authored
This CL moves collected source range information out of AST nodes and into a side table stored on ParseInfo. The side table is only created if block coverage is enabled, so there's almost no memory overhead in the standard case. Change-Id: I41871b8425ebbc6217d82d3ad26b5fc9e5d68ecb Reviewed-on: https://chromium-review.googlesource.com/566808 Commit-Queue: Jakob Gruber <jgruber@chromium.org> Reviewed-by:
Ross McIlroy <rmcilroy@chromium.org> Reviewed-by:
Georg Neis <neis@chromium.org> Cr-Commit-Position: refs/heads/master@{#46590}
-