[clang] [Profile] Refactor profile correlation. (PR #69656)

Zequan Wu via cfe-commits cfe-commits at lists.llvm.org
Wed Oct 25 11:15:13 PDT 2023


================
@@ -24,15 +24,38 @@
 
 using namespace llvm;
 
-/// Get the __llvm_prf_cnts section.
-Expected<object::SectionRef> getCountersSection(const object::ObjectFile &Obj) {
+namespace llvm {
+// Deprecated. Use -profile-correlate=debug-info.
+cl::opt<bool> DebugInfoCorrelate(
+    "debug-info-correlate",
+    cl::desc("Use debug info to correlate profiles (Deprecated). Use "
+             "-profile-correlate=debug-info instead."),
+    cl::init(false));
+
+cl::opt<InstrProfCorrelator::ProfCorrelatorKind> ProfileCorrelate(
+    "profile-correlate",
+    cl::desc("Use debug info or binary file to correlate profiles."),
+    cl::init(InstrProfCorrelator::NONE),
+    cl::values(clEnumValN(InstrProfCorrelator::NONE, "",
+                          "No profile correlation"),
+               clEnumValN(InstrProfCorrelator::DEBUG_INFO, "debug-info",
+                          "Use debug info to correlate")));
----------------
ZequanWu wrote:

> so keeping the option in InstrProfCorrelator.cpp works fine without linker error? That works for me.
Yes, PowerPCTests will linked successfully.

> What if we move it to `PGOInstrumentation.cpp`?
It still doesn't work. I guess the flags needs to be in one of those files: https://github.com/llvm/llvm-project/blob/7e34ee5291b935a1e37cd1b132552187d5c784d0/llvm/lib/ProfileData/CMakeLists.txt#L1


https://github.com/llvm/llvm-project/pull/69656


More information about the cfe-commits mailing list