[llvm] [BOLT][Perf2bolt] Add support to generate pre-parsed perf data (PR #171144)

Ádám Kallai via llvm-commits llvm-commits at lists.llvm.org
Tue Mar 10 01:52:29 PDT 2026


================
@@ -154,19 +154,36 @@ class DataAggregator : public DataReader {
   /// Perf utility full path name
   std::string PerfPath;
 
+  enum PerfProcessType {
+    BUILDIDS = 0,
+    MAIN_EVENTS,
+    MEM_EVENTS,
+    MMAP_EVENTS,
+    TASK_EVENTS
+  };
+  friend raw_ostream &operator<<(raw_ostream &OS, const PerfProcessType &T);
+
   /// Perf process spawning bookkeeping
   struct PerfProcessInfo {
+    static constexpr StringLiteral BuildIDEventStr = "BUILDIDS";
+    static constexpr StringLiteral MainEventStr = "MAIN";
+    static constexpr StringLiteral MemEventStr = "MEM";
+    static constexpr StringLiteral MMapEventStr = "MMAP";
+    static constexpr StringLiteral TaskEventsStr = "TASK";
+
+    enum PerfProcessType Type;
     bool IsFinished{false};
-    sys::ProcessInfo PI;
-    SmallVector<char, 256> StdoutPath;
-    SmallVector<char, 256> StderrPath;
+    sys::ProcessInfo PI{};
+    SmallVector<char, 256> StdoutPath{};
+    SmallVector<char, 256> StderrPath{};
----------------
kaadam wrote:

I assigned its types to PerfProcessInfo below, so it is just for suppressing compiler warning about uninitialized fields.

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


More information about the llvm-commits mailing list