-
Notifications
You must be signed in to change notification settings - Fork 106
New issue
Have a question about this project? # for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “#”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? # 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: