[llvm] [llvm-profgen] Add support for ETM trace decoding (PR #191584)

Amir Ayupov via llvm-commits llvm-commits at lists.llvm.org
Mon Apr 13 21:59:53 PDT 2026


================
@@ -1369,5 +1376,58 @@ void PerfScriptReader::parsePerfTraces() {
 
 SmallVector<CleanupInstaller, 2> PerfScriptReader::TempFileCleanups;
 
+void ETMReader::recordProcessedRange(uint64_t Start, uint64_t End,
+                                     uint64_t Count) {
+  if (!SampleCounters.empty()) {
+    auto &Counter = SampleCounters.begin()->second;
+    Counter.recordRangeCount(Start, End, Count);
+  }
+}
+
+class ETMCallback : public ETMDecoder::Callback {
+  ETMReader *Reader;
+
+public:
+  ETMCallback(ETMReader *R) : Reader(R) {}
+  void processInstructionRange(uint64_t Start, uint64_t End) override {
+    Reader->recordProcessedRange(Start, End, 1);
+  }
+};
+
+void ETMReader::parsePerfTraces() {
----------------
aaupov wrote:

Did you mean `parseETMTrace` here?

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


More information about the llvm-commits mailing list