[llvm-branch-commits] [BOLT][NFC] Move LBREntry from DataReader to DataAggregator (PR #143287)
via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Sat Jun 7 14:28:15 PDT 2025
llvmbot wrote:
<!--LLVM PR SUMMARY COMMENT-->
@llvm/pr-subscribers-bolt
Author: Amir Ayupov (aaupov)
<details>
<summary>Changes</summary>
LBREntry is only used in DataAggregator.
Test Plan: NFC
---
Full diff: https://github.com/llvm/llvm-project/pull/143287.diff
3 Files Affected:
- (modified) bolt/include/bolt/Profile/DataAggregator.h (+13-1)
- (modified) bolt/include/bolt/Profile/DataReader.h (-12)
- (modified) bolt/lib/Profile/DataAggregator.cpp (+2-8)
``````````diff
diff --git a/bolt/include/bolt/Profile/DataAggregator.h b/bolt/include/bolt/Profile/DataAggregator.h
index cb8e81b829a09..3f07a6dc03a4f 100644
--- a/bolt/include/bolt/Profile/DataAggregator.h
+++ b/bolt/include/bolt/Profile/DataAggregator.h
@@ -78,6 +78,13 @@ class DataAggregator : public DataReader {
static bool checkPerfDataMagic(StringRef FileName);
private:
+ struct LBREntry {
+ uint64_t From;
+ uint64_t To;
+ bool Mispred;
+ };
+ friend raw_ostream &operator<<(raw_ostream &OS, const LBREntry &);
+
struct PerfBranchSample {
SmallVector<LBREntry, 32> LBR;
};
@@ -476,7 +483,6 @@ class DataAggregator : public DataReader {
/// Debugging dump methods
void dump() const;
- void dump(const LBREntry &LBR) const;
void dump(const PerfBranchSample &Sample) const;
void dump(const PerfMemSample &Sample) const;
@@ -504,6 +510,12 @@ class DataAggregator : public DataReader {
friend class YAMLProfileWriter;
};
+
+inline raw_ostream &operator<<(raw_ostream &OS,
+ const DataAggregator::LBREntry &L) {
+ OS << formatv("{0:x} -> {1:x}/{2}", L.From, L.To, L.Mispred ? 'M' : 'P');
+ return OS;
+}
} // namespace bolt
} // namespace llvm
diff --git a/bolt/include/bolt/Profile/DataReader.h b/bolt/include/bolt/Profile/DataReader.h
index 60316ff09ae35..6f527ba3931d4 100644
--- a/bolt/include/bolt/Profile/DataReader.h
+++ b/bolt/include/bolt/Profile/DataReader.h
@@ -32,18 +32,6 @@ namespace bolt {
class BinaryFunction;
-struct LBREntry {
- uint64_t From;
- uint64_t To;
- bool Mispred;
-};
-
-inline raw_ostream &operator<<(raw_ostream &OS, const LBREntry &LBR) {
- OS << "0x" << Twine::utohexstr(LBR.From) << " -> 0x"
- << Twine::utohexstr(LBR.To);
- return OS;
-}
-
struct Location {
bool IsSymbol;
StringRef Name;
diff --git a/bolt/lib/Profile/DataAggregator.cpp b/bolt/lib/Profile/DataAggregator.cpp
index 52452a3bb0d46..b1172fd13bc72 100644
--- a/bolt/lib/Profile/DataAggregator.cpp
+++ b/bolt/lib/Profile/DataAggregator.cpp
@@ -967,7 +967,7 @@ bool DataAggregator::recordExit(BinaryFunction &BF, uint64_t From, bool Mispred,
return true;
}
-ErrorOr<LBREntry> DataAggregator::parseLBREntry() {
+ErrorOr<DataAggregator::LBREntry> DataAggregator::parseLBREntry() {
LBREntry Res;
ErrorOr<StringRef> FromStrRes = parseString('/');
if (std::error_code EC = FromStrRes.getError())
@@ -2394,16 +2394,10 @@ std::error_code DataAggregator::writeBATYAML(BinaryContext &BC,
void DataAggregator::dump() const { DataReader::dump(); }
-void DataAggregator::dump(const LBREntry &LBR) const {
- Diag << "From: " << Twine::utohexstr(LBR.From)
- << " To: " << Twine::utohexstr(LBR.To) << " Mispred? " << LBR.Mispred
- << "\n";
-}
-
void DataAggregator::dump(const PerfBranchSample &Sample) const {
Diag << "Sample LBR entries: " << Sample.LBR.size() << "\n";
for (const LBREntry &LBR : Sample.LBR)
- dump(LBR);
+ Diag << LBR << '\n';
}
void DataAggregator::dump(const PerfMemSample &Sample) const {
``````````
</details>
https://github.com/llvm/llvm-project/pull/143287
More information about the llvm-branch-commits
mailing list