[llvm] [BOLT][DWARF][NFC] Split processUnitDIE into two lambdas (PR #99225)
Alexander Yermolovich via llvm-commits
llvm-commits at lists.llvm.org
Tue Jul 16 15:46:28 PDT 2024
================
@@ -768,17 +773,35 @@ void DWARFRewriter::updateDebugInfo() {
CUPartitionVector PartVec = partitionCUs(*BC.DwCtx);
for (std::vector<DWARFUnit *> &Vec : PartVec) {
DIEBlder.buildCompileUnits(Vec);
- for (DWARFUnit *CU : DIEBlder.getProcessedCUs())
- processUnitDIE(CU, &DIEBlder);
+ llvm::SmallVector<DWARFUnit *> CompileUnits(
+ std::begin(DIEBlder.getProcessedCUs()),
+ std::end(DIEBlder.getProcessedCUs()));
+ llvm::DenseMap<uint64_t, uint64_t> RangesBaseByCU;
+ llvm::DenseMap<uint64_t, uint64_t> LocListWritersIndexByCU;
+ for (DWARFUnit *CU : CompileUnits) {
+ createRangeLocListAddressWriters(*CU, LocListWritersIndexByCU);
+ std::optional<uint64_t> RangesBase;
+ processSplitCU(CU, &DIEBlder, RangesBase);
+ if (RangesBase)
+ RangesBaseByCU[CU->getOffset()] = *RangesBase;
+ }
+ for (DWARFUnit *CU : CompileUnits) {
+ std::optional<uint64_t> RangesBase;
+ if (RangesBaseByCU.count(CU->getOffset()))
----------------
ayermolo wrote:
User iterator to check and get if exists.
https://github.com/llvm/llvm-project/pull/99225
More information about the llvm-commits
mailing list