================
@@ -1784,6 +1784,12 @@ defm debug_info_for_profiling : 
BoolFOption<"debug-info-for-profiling",
   PosFlag<SetTrue, [], [ClangOption, CC1Option],
           "Emit extra debug info to make sample profile more accurate">,
   NegFlag<SetFalse>>;
+def fprofile_generate_cold_function_coverage : Flag<["-"], 
"fprofile-generate-cold-function-coverage">, 
----------------
wlei-llvm wrote:

> I meant, why not just use `clang ... -mllvm 
> -instrument-cold-function-coverage`? Is this a clang - only feature (i.e. 
> rust can't use it?) Is it just for symmetry with the current PGO flags?
> 
> (This is not a pushback, mainly curious. Also the patch would be quite 
> smaller if you didn't need to pass through the flags from clang to llvm)

I see, thanks for the suggestion!  We also need to link runtime 
lib(`compiler_rt.profile.a`)
but yeah, I agree it's possible to pass directly to llvm and linker without 
through clang. Then the full command line would be like 
```
clang ... -mllvm -instrument-cold-function-coverage -mllvm 
-instrument-sample-cold-function-path=<file-path> -mllvm 
--pgo-function-entry-coverage 
ld.lld ... --u__llvm_runtime_variable  
.../lib/x86_64-unknown-linux-gnu/libclang_rt.profile.a
```
So yes, adding the clang driver flag is kind of to mirror current[ IRPGO 
flags](https://fburl.com/na3cp3gn), for easy maintenance purpose(given that 
`-fprofile-generate` doesn't work with `-fprofile-sample-use`) and also to 
centralize the configuration for the convenience. IMO, the `compiler_rt` is 
probably the main blocker here, I didn't find an easy way to bundle it with a 
llvm flag. 

Appreciate any further suggestions!

https://github.com/llvm/llvm-project/pull/109837
_______________________________________________
cfe-commits mailing list
cfe-commits@lists.llvm.org
https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits

Reply via email to