[BOLT][NFC] Move LBREntry from DataReader to DataAggregator (#143287)

LBREntry is only used in DataAggregator.

Test Plan: NFC
This commit is contained in:
Amir Ayupov 2025-06-08 17:41:46 -07:00 committed by GitHub
parent 4fbf67f73b
commit c480dcddd9
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
3 changed files with 15 additions and 21 deletions

View File

@ -78,6 +78,13 @@ public:
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 @@ private:
/// 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 @@ public:
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

View File

@ -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;

View File

@ -972,7 +972,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())
@ -2398,16 +2398,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 {