[llvm-branch-commits] [llvm] Add initial support for SPE brstack format (PR #129231)

Paschalis Mpeis via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Tue Mar 11 09:13:59 PDT 2025


================
@@ -88,6 +89,45 @@ struct PerfSpeEventsTestHelper : public testing::Test {
 
     return SampleSize == DA.BasicSamples.size();
   }
+
+  /// Compare LBREntries
+  bool checkLBREntry(const LBREntry &Lhs, const LBREntry &Rhs) {
+    return Lhs.From == Rhs.From && Lhs.To == Rhs.To &&
+           Lhs.Mispred == Rhs.Mispred;
+  }
+
+  /// Parse and check SPE brstack as LBR
+  void parseAndCheckBrstackEvents(
+      uint64_t PID,
+      const std::vector<SmallVector<LBREntry, 2>> &ExpectedSamples) {
+    int NumSamples = 0;
+
+    DataAggregator DA("<pseudo input>");
+    DA.ParsingBuf = opts::ReadPerfEvents;
+    DA.BC = BC.get();
+    DataAggregator::MMapInfo MMap;
+    DA.BinaryMMapInfo.insert(std::make_pair(PID, MMap));
+
+    // Process buffer.
+    while (DA.hasData()) {
----------------
paschalis-mpeis wrote:

Right. To do this we need to expand our context further, creating mock functions with valid addresses, allowing those branches to be parsed+stored in `BranchLBRs`.

That may be too much work; if that's the case we can skip.

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


More information about the llvm-branch-commits mailing list