[llvm-branch-commits] [llvm] [BOLT] Map branch source address to the containing basic block in BAT YAML (PR #91273)
Maksim Panchenko via llvm-branch-commits
llvm-branch-commits at lists.llvm.org
Fri May 10 17:45:55 PDT 2024
================
@@ -2378,21 +2378,24 @@ std::error_code DataAggregator::writeBATYAML(BinaryContext &BC,
return CSI;
};
+ // Lookup containing basic block offset and index
+ auto getBlock = [&BlockMap](uint32_t Offset) {
+ auto BlockIt = BlockMap.upper_bound(Offset);
+ assert(BlockIt != BlockMap.begin());
+ --BlockIt;
+ return std::pair(BlockIt->first, BlockIt->second.getBBIndex());
+ };
+
for (const auto &[FromOffset, SuccKV] : Branches.IntraIndex) {
- if (!BlockMap.isInputBlock(FromOffset))
- continue;
- const unsigned Index = BlockMap.getBBIndex(FromOffset);
+ const auto &[_, Index] = getBlock(FromOffset);
----------------
maksfb wrote:
Do we expect `getBlock()` to always return a good value? There's no chance for malformed input to trigger the assertion above?
https://github.com/llvm/llvm-project/pull/91273
More information about the llvm-branch-commits
mailing list