Skip to content
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

Tracking issue for -Z profile #42524

Closed
alexcrichton opened this issue Jun 8, 2017 · 11 comments
Closed

Tracking issue for -Z profile #42524

alexcrichton opened this issue Jun 8, 2017 · 11 comments
Labels
A-CLI Area: Command-line interface (CLI) to the compiler A-code-coverage Area: Source-based code coverage (-Cinstrument-coverage) B-unstable Blocker: Implemented in the nightly compiler and unstable. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC S-tracking-needs-summary Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation.

Comments

@alexcrichton
Copy link
Member

This is intended to be a tracking issue for the profiling feature, built on the gcov-style support in LLVM first added in #38608 and later rebased in #42433.

@alexcrichton alexcrichton added B-unstable Blocker: Implemented in the nightly compiler and unstable. T-dev-tools Relevant to the dev-tools subteam, which will review and decide on the PR/issue. labels Jun 8, 2017
@Mark-Simulacrum Mark-Simulacrum added the C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC label Jul 22, 2017
@steveklabnik
Copy link
Member

Triage: not aware of any major move to stabilize this.

@glandium
Copy link
Contributor

glandium commented Feb 7, 2020

Is it expected that this doesn't work with --release?

@tylerhawkes
Copy link

Is there a way to change the path that the tests output to? I want to use this on some code that is cross compiled and needs to run on a device that only has a few writable paths. I'm currently getting this to work by replacing /target/aarch64... with ./arget/aarch64... in the binary since we can't change the length of the string.

I've never worked on the compiler before, but an option for this would be very useful.

@jackh726 jackh726 added T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. S-tracking-needs-summary Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation. and removed T-dev-tools Relevant to the dev-tools subteam, which will review and decide on the PR/issue. labels Mar 17, 2022
@workingjubilee workingjubilee added the A-CLI Area: Command-line interface (CLI) to the compiler label Mar 5, 2023
matthiaskrgr added a commit to matthiaskrgr/rust that referenced this issue Nov 1, 2024
…ukang

Remove support for `-Zprofile` (gcov-style coverage instrumentation)

Tracking issue: rust-lang#42524

MCP: rust-lang/compiler-team#798

---

This PR removes the unstable `-Zprofile` flag, which enables ”gcov-style” coverage instrumentation, along with its associated `-Zprofile-emit` configuration flag.

(The profile flag predates and is almost entirely separate from the stable `-Cinstrument-coverage` flag.)

Notably, the `-Zprofile` flag:
- Is largely untested in-tree, having only one run-make test that does not check whether its output is correct or useful.
- Has no known maintainer.
- Has seen no push towards stabilization.
- Has at least one severe regression reported in 2022 that apparently remains unaddressed.
  - rust-lang#100125
- Is confusingly named, since it appears to be more about coverage than performance profiling, and has nothing to do with PGO.
- Is fundamentally limited by relying on counters auto-inserted by LLVM, with no knowledge of Rust beyond debuginfo.
jieyouxu added a commit to jieyouxu/rust that referenced this issue Nov 1, 2024
…ukang

Remove support for `-Zprofile` (gcov-style coverage instrumentation)

Tracking issue: rust-lang#42524

MCP: rust-lang/compiler-team#798

---

This PR removes the unstable `-Zprofile` flag, which enables ”gcov-style” coverage instrumentation, along with its associated `-Zprofile-emit` configuration flag.

(The profile flag predates and is almost entirely separate from the stable `-Cinstrument-coverage` flag.)

Notably, the `-Zprofile` flag:
- Is largely untested in-tree, having only one run-make test that does not check whether its output is correct or useful.
- Has no known maintainer.
- Has seen no push towards stabilization.
- Has at least one severe regression reported in 2022 that apparently remains unaddressed.
  - rust-lang#100125
- Is confusingly named, since it appears to be more about coverage than performance profiling, and has nothing to do with PGO.
- Is fundamentally limited by relying on counters auto-inserted by LLVM, with no knowledge of Rust beyond debuginfo.
GuillaumeGomez added a commit to GuillaumeGomez/rust that referenced this issue Nov 1, 2024
…ukang

Remove support for `-Zprofile` (gcov-style coverage instrumentation)

Tracking issue: rust-lang#42524

MCP: rust-lang/compiler-team#798

---

This PR removes the unstable `-Zprofile` flag, which enables ”gcov-style” coverage instrumentation, along with its associated `-Zprofile-emit` configuration flag.

(The profile flag predates and is almost entirely separate from the stable `-Cinstrument-coverage` flag.)

Notably, the `-Zprofile` flag:
- Is largely untested in-tree, having only one run-make test that does not check whether its output is correct or useful.
- Has no known maintainer.
- Has seen no push towards stabilization.
- Has at least one severe regression reported in 2022 that apparently remains unaddressed.
  - rust-lang#100125
- Is confusingly named, since it appears to be more about coverage than performance profiling, and has nothing to do with PGO.
- Is fundamentally limited by relying on counters auto-inserted by LLVM, with no knowledge of Rust beyond debuginfo.
rust-timer added a commit to rust-lang-ci/rust that referenced this issue Nov 2, 2024
Rollup merge of rust-lang#131829 - Zalathar:goodbye-zprofile, r=chenyukang

Remove support for `-Zprofile` (gcov-style coverage instrumentation)

Tracking issue: rust-lang#42524

MCP: rust-lang/compiler-team#798

---

This PR removes the unstable `-Zprofile` flag, which enables ”gcov-style” coverage instrumentation, along with its associated `-Zprofile-emit` configuration flag.

(The profile flag predates and is almost entirely separate from the stable `-Cinstrument-coverage` flag.)

Notably, the `-Zprofile` flag:
- Is largely untested in-tree, having only one run-make test that does not check whether its output is correct or useful.
- Has no known maintainer.
- Has seen no push towards stabilization.
- Has at least one severe regression reported in 2022 that apparently remains unaddressed.
  - rust-lang#100125
- Is confusingly named, since it appears to be more about coverage than performance profiling, and has nothing to do with PGO.
- Is fundamentally limited by relying on counters auto-inserted by LLVM, with no knowledge of Rust beyond debuginfo.
@workingjubilee
Copy link
Member

Removed: #131829

@workingjubilee workingjubilee closed this as not planned Won't fix, can't repro, duplicate, stale Nov 9, 2024
@workingjubilee workingjubilee added A-code-coverage Area: Source-based code coverage (-Cinstrument-coverage) and removed T-compiler Relevant to the compiler team, which will review and decide on the PR/issue. labels Nov 9, 2024
@whitequark
Copy link
Member

Aw, that's unfortunate.

@tshepang
Copy link
Member

tshepang commented Nov 9, 2024

@whitequark why so

@whitequark
Copy link
Member

As far as I understand there's no replacement?

@tshepang
Copy link
Member

tshepang commented Nov 9, 2024

was thinking this was for branch coverage, which has since been implemented

@whitequark
Copy link
Member

Oh. I missed that then!

@workingjubilee
Copy link
Member

@whitequark Yes, -Cinstrument-coverage should work and supports the llvm-cov style of handling coverage: https://doc.rust-lang.org/nightly/rustc/instrument-coverage.html

@whitequark
Copy link
Member

Oh that's fantastic work =^_^=

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
A-CLI Area: Command-line interface (CLI) to the compiler A-code-coverage Area: Source-based code coverage (-Cinstrument-coverage) B-unstable Blocker: Implemented in the nightly compiler and unstable. C-tracking-issue Category: An issue tracking the progress of sth. like the implementation of an RFC S-tracking-needs-summary Status: It's hard to tell what's been done and what hasn't! Someone should do some investigation.
Projects
None yet
Development

No branches or pull requests

9 participants