-
Notifications
You must be signed in to change notification settings - Fork 12.7k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Unbox and unwrap the contents of StatementKind::Coverage
#122937
Conversation
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 has assigned @matthewjasper. Use |
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 |
Changes to (Maybe I should give |
// Ignore `ConstEvalCounter`s | ||
| StatementKind::ConstEvalCounter | ||
// Ignore `Nop`s |
There was a problem hiding this comment.
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.
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
…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
…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
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
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.
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.
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.
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`
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`
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
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 justCoverageKind
.This patch also adds a size assertion for
StatementKind
, to avoid accidentally bloating it in the future.@rustbot label +A-code-coverage