[flang-commits] [clang] [flang] Add IR Profile-Guided Optimization (IR PGO) support to the Flang compiler (PR #136098)

via flang-commits flang-commits at lists.llvm.org
Wed Apr 23 19:07:12 PDT 2025


================
@@ -148,6 +148,55 @@ class CodeGenOptions : public CodeGenOptionsBase {
   /// OpenMP is enabled.
   using DoConcurrentMappingKind = flangomp::DoConcurrentMappingKind;
 
+  enum ProfileInstrKind {
+    ProfileNone,       // Profile instrumentation is turned off.
+    ProfileClangInstr, // Clang instrumentation to generate execution counts
+                       // to use with PGO.
+    ProfileIRInstr,    // IR level PGO instrumentation in LLVM.
+    ProfileCSIRInstr, // IR level PGO context sensitive instrumentation in LLVM.
+  };
+
+
+  /// Name of the profile file to use as output for -fprofile-instr-generate,
+  /// -fprofile-generate, and -fcs-profile-generate.
+  std::string InstrProfileOutput;
+
+  /// Name of the profile file to use as input for -fmemory-profile-use.
+  std::string MemoryProfileUsePath;
+
+  unsigned int DebugInfoForProfiling;
+
+  unsigned int AtomicProfileUpdate;
+
+  /// Name of the profile file to use as input for -fprofile-instr-use
+  std::string ProfileInstrumentUsePath;
----------------
fanju110 wrote:

I refer to clang's usage. clang defines ProfileInstrumentUsePath in clang/include/Basic/CodeGenOptions.h using std::string.

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


More information about the flang-commits mailing list