Skip to content

Conversation

Zalathar
Copy link
Contributor

The payload of coverage statements was historically a structure with several fields, so it was boxed to avoid bloating StatementKind.

Now that the payload is a single relatively-small enum, we can replace Box<Coverage> with just CoverageKind.

This patch also adds a size assertion for StatementKind, to avoid accidentally bloating it in the future.

@rustbot label +A-code-coverage

The payload of coverage statements was historically a structure with several
fields, so it was boxed to avoid bloating `StatementKind`.

Now that the payload is a single relatively-small enum, we can replace
`Box<Coverage>` with just `CoverageKind`.

This patch also adds a size assertion for `StatementKind`, to avoid
accidentally bloating it in the future.
@rustbot
Copy link
Collaborator

rustbot commented Mar 23, 2024

r? @matthewjasper

rustbot has assigned @matthewjasper.
They will have a look at your PR within the next two weeks and either review your PR or reassign to another reviewer.

Use r? to explicitly pick a reviewer

@rustbot rustbot added S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Mar 23, 2024
@rustbot
Copy link
Collaborator

rustbot commented Mar 23, 2024

Some changes occurred to MIR optimizations

cc @rust-lang/wg-mir-opt

This PR changes MIR

cc @oli-obk, @RalfJung, @JakobDegen, @davidtwco, @celinval, @vakaras

Some changes occurred in compiler/rustc_codegen_gcc

cc @antoyo, @GuillaumeGomez

@rustbot rustbot added the A-code-coverage Area: Source-based code coverage (-Cinstrument-coverage) label Mar 23, 2024
@Zalathar
Copy link
Contributor Author

Changes to rustc_codegen_gcc are trivial API adjustments.

(Maybe I should give CoverageInfoBuilderMethods a default implementation someday.)

Comment on lines -190 to -192
// Ignore `ConstEvalCounter`s
| StatementKind::ConstEvalCounter
// Ignore `Nop`s
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I noticed that these comments were preventing rustfmt from formatting this match, presumably due to rust-lang/rustfmt#4119.

Since these particular comments are low-value anyway, I worked around the issue by just deleting them.

@oli-obk
Copy link
Contributor

oli-obk commented Mar 24, 2024

r? @oli-obk

@bors r+ rollup

@bors
Copy link
Collaborator

bors commented Mar 24, 2024

📌 Commit ab92699 has been approved by oli-obk

It is now in the queue for this repository.

@bors bors added S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. and removed S-waiting-on-review Status: Awaiting review from the assignee but also interested parties. labels Mar 24, 2024
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this pull request Mar 24, 2024
Unbox and unwrap the contents of `StatementKind::Coverage`

The payload of coverage statements was historically a structure with several fields, so it was boxed to avoid bloating `StatementKind`.

Now that the payload is a single relatively-small enum, we can replace `Box<Coverage>` with just `CoverageKind`.

This patch also adds a size assertion for `StatementKind`, to avoid accidentally bloating it in the future.

`@rustbot` label +A-code-coverage
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 24, 2024
…iaskrgr

Rollup of 10 pull requests

Successful merges:

 - rust-lang#122737 (conditionally ignore fatal diagnostic in the SilentEmitter)
 - rust-lang#122757 (Fixed the `private-dependency` bug)
 - rust-lang#122886 (add test for rust-lang#90192)
 - rust-lang#122937 (Unbox and unwrap the contents of `StatementKind::Coverage`)
 - rust-lang#122949 (Add a regression test for rust-lang#117310)
 - rust-lang#122962 (Track run-make-support lib in common inputs stamp)
 - rust-lang#122977 (Rename `Arguments::as_const_str` to `as_statically_known_str`)
 - rust-lang#122983 (Fix build failure on ARM/AArch64/PowerPC/RISC-V FreeBSD/NetBSD)
 - rust-lang#122984 (panic-in-panic-hook: formatting a message that's just a string is risk-free)
 - rust-lang#122992 (std::thread: refine available_parallelism for solaris/illumos.)

r? `@ghost`
`@rustbot` modify labels: rollup
bors added a commit to rust-lang-ci/rust that referenced this pull request Mar 24, 2024
…iaskrgr

Rollup of 10 pull requests

Successful merges:

 - rust-lang#122737 (conditionally ignore fatal diagnostic in the SilentEmitter)
 - rust-lang#122757 (Fixed the `private-dependency` bug)
 - rust-lang#122886 (add test for rust-lang#90192)
 - rust-lang#122937 (Unbox and unwrap the contents of `StatementKind::Coverage`)
 - rust-lang#122949 (Add a regression test for rust-lang#117310)
 - rust-lang#122962 (Track run-make-support lib in common inputs stamp)
 - rust-lang#122977 (Rename `Arguments::as_const_str` to `as_statically_known_str`)
 - rust-lang#122983 (Fix build failure on ARM/AArch64/PowerPC/RISC-V FreeBSD/NetBSD)
 - rust-lang#122984 (panic-in-panic-hook: formatting a message that's just a string is risk-free)
 - rust-lang#122992 (std::thread: refine available_parallelism for solaris/illumos.)

r? `@ghost`
`@rustbot` modify labels: rollup
@bors bors merged commit 19d3827 into rust-lang:master Mar 24, 2024
@rustbot rustbot added this to the 1.79.0 milestone Mar 24, 2024
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Mar 24, 2024
Rollup merge of rust-lang#122937 - Zalathar:unbox, r=oli-obk

Unbox and unwrap the contents of `StatementKind::Coverage`

The payload of coverage statements was historically a structure with several fields, so it was boxed to avoid bloating `StatementKind`.

Now that the payload is a single relatively-small enum, we can replace `Box<Coverage>` with just `CoverageKind`.

This patch also adds a size assertion for `StatementKind`, to avoid accidentally bloating it in the future.

``@rustbot`` label +A-code-coverage
@Zalathar Zalathar deleted the unbox branch March 24, 2024 22:38
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 16, 2024
A redundant size assertion for `StatementKind` was added in rust-lang#122937, because
the existing assertion was in a different module.

This patch cleans that up, and also moves the `TerminatorKind` assertion into
the same module where it belongs, to avoid the same thing happening again.
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 16, 2024
A redundant size assertion for `StatementKind` was added in rust-lang#122937, because
the existing assertion was in a different file.

This patch cleans that up, and also moves the `TerminatorKind` assertion into
the same module where it belongs, to avoid the same thing happening again.
Zalathar added a commit to Zalathar/rust that referenced this pull request Apr 16, 2024
A redundant size assertion for `StatementKind` was added in rust-lang#122937, because
the existing assertion was in a different file.

This patch cleans that up, and also moves the `TerminatorKind` assertion into
the same file where it belongs, to avoid the same thing happening again.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this pull request Apr 16, 2024
Move size assertions for `mir::syntax` types into the same file

A redundant size assertion for `StatementKind` was added in rust-lang#122937, because the existing assertion was in a different file.

This PR cleans that up, and also moves the `TerminatorKind` assertion into the same file where it belongs, to avoid the same thing happening again.

r? `@nnethercote`
rust-timer added a commit to rust-lang-ci/rust that referenced this pull request Apr 16, 2024
Rollup merge of rust-lang#124006 - Zalathar:static-assert, r=nnethercote

Move size assertions for `mir::syntax` types into the same file

A redundant size assertion for `StatementKind` was added in rust-lang#122937, because the existing assertion was in a different file.

This PR cleans that up, and also moves the `TerminatorKind` assertion into the same file where it belongs, to avoid the same thing happening again.

r? `@nnethercote`
GuillaumeGomez pushed a commit to GuillaumeGomez/rust that referenced this pull request Jul 10, 2024
Unbox and unwrap the contents of `StatementKind::Coverage`

The payload of coverage statements was historically a structure with several fields, so it was boxed to avoid bloating `StatementKind`.

Now that the payload is a single relatively-small enum, we can replace `Box<Coverage>` with just `CoverageKind`.

This patch also adds a size assertion for `StatementKind`, to avoid accidentally bloating it in the future.

``@rustbot`` label +A-code-coverage
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-code-coverage Area: Source-based code coverage (-Cinstrument-coverage) S-waiting-on-bors Status: Waiting on bors to run and complete tests. Bors will change the label on completion. T-compiler Relevant to the compiler team, which will review and decide on the PR/issue.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

6 participants