[llvm] [llvm-objdump] Add support for symbolizing PGOBBAddrMap Info (PR #76386)
Rahman Lavaee via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 16 13:16:42 PST 2024
================
@@ -1264,10 +1264,53 @@ static SymbolInfoTy createDummySymbolInfo(const ObjectFile &Obj,
return SymbolInfoTy(Addr, Name, Type);
}
-static void
-collectBBAddrMapLabels(const std::unordered_map<uint64_t, BBAddrMap> &AddrToBBAddrMap,
- uint64_t SectionAddr, uint64_t Start, uint64_t End,
- std::unordered_map<uint64_t, std::vector<std::string>> &Labels) {
+struct BBAddrMapLabel {
+ std::string BlockLabel;
+ std::string PGOAnalysis;
+};
+
+static void constructPGOLabelString(std::string &PGOString,
+ const PGOAnalysisMap &PGOMap,
+ size_t BBEntryIndex) {
+ raw_string_ostream PGOSS(PGOString);
+
+ PGOSS << " (";
+ if (PGOMap.FeatEnable.FuncEntryCount && BBEntryIndex == 0) {
+ PGOSS << "Entry count: " << Twine(PGOMap.FuncEntryCount);
+ if (PGOMap.FeatEnable.BBFreq || PGOMap.FeatEnable.BrProb) {
+ PGOSS << ", ";
+ }
+ }
+
+ if (PGOMap.FeatEnable.BBFreq || PGOMap.FeatEnable.BrProb) {
+ const PGOAnalysisMap::PGOBBEntry &PGOBBEntry =
+ PGOMap.BBEntries[BBEntryIndex];
----------------
rlavaee wrote:
Add assertion to make sure this is in range.
https://github.com/llvm/llvm-project/pull/76386
More information about the llvm-commits
mailing list