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

Ádám Kallai via llvm-branch-commits llvm-branch-commits at lists.llvm.org
Thu Apr 10 06:48:06 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()) {
----------------
kaadam wrote:

I kept the original approach, since I haven't find good way to create such a simple ELF mock binary that test BranchLBRs functionality properly.  Maybe better to add a new test, to check BranchLBRs in different manner.

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


More information about the llvm-branch-commits mailing list