-
Notifications
You must be signed in to change notification settings - Fork 101
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
-Zcoverage is unimplemented #1494
Comments
LLVM's coverage infrastructure is LLVM specific and the exact data format even changes between LLVM versions. https://clang.llvm.org/docs/SourceBasedCodeCoverage.html#format-compatibility-guarantees
Implementing coverage support in cg_clif would be possible, but it will not be compatible with llvm-cov. And it will require writing a replacement for the LLVM profiler runtime and getting rustc to use this replacement. |
Thanks for your response. As already written before I did not expect this to work. I think the problematic part here is that Maybe a short term solution would be to just change the message so that it does not say anymore that it's unimplemented but not supported or something like that? Maybe even with a bit more context outlining that this is a llvm specific feature? |
Done |
I just stumbled on https://crates.io/crates/minicov which seem to implement most of the necessary format. It seems like that crate could be used to generate the relevant glue code to support this flag? |
Profiling support is split into two parts: an instrumentation pass in the compiler and a profiler runtime. Cg_clif misses the instrumentation pass, while minicov implements the profiler runtime. I am pretty sure cg_clif can reuse the LLVM profiler runtime in the profiler-builtins crate already, so using minicov doesn't really help here. Once the instrumentation pass is written for cg_clif, profiler-builtins and minicov could be used interchangably. |
Thanks for the clarification. To be honest it sounded already a bit too easy in the beginning. |
I've tried to use the
cranlift
rust backend for a project that records code coverage for tests. For this I run the following command:which resulted in the following error:
I expected that this would likely not work. I was just surprised that there is no issue for this yet, so I filled that one.
The text was updated successfully, but these errors were encountered: