[llvm] [AsmPrinter][DebugNames] Implement DW_IDX_parent entries (PR #77457)
Adrian Prantl via llvm-commits
llvm-commits at lists.llvm.org
Tue Jan 9 10:54:02 PST 2024
================
@@ -520,20 +590,34 @@ void Dwarf5AccelTableWriter::emitEntry(
assert(AttrEnc.Form == dwarf::DW_FORM_ref4);
Asm->emitInt32(Entry.getDieOffset());
break;
+ case dwarf::DW_IDX_parent: {
+ if (AttrEnc.Form == dwarf::Form::DW_FORM_flag_present)
+ break;
+ auto ParentSymbolIt = DIEOffsetToAccelEntryLabel.find(*MaybeParentOffset);
+ assert(ParentSymbolIt != DIEOffsetToAccelEntryLabel.end());
+ Asm->emitLabelDifference(ParentSymbolIt->getSecond(), EntryPool, 4);
+ break;
+ }
default:
llvm_unreachable("Unexpected index attribute!");
}
}
}
-void Dwarf5AccelTableWriter::emitData() const {
+void Dwarf5AccelTableWriter::emitData() {
+ DenseMap<uint64_t, MCSymbol *> DIEOffsetToAccelEntryLabel;
+
+ for (auto Offset : IndexedOffsets)
+ DIEOffsetToAccelEntryLabel[Offset] = Asm->createTempSymbol("symbol");
----------------
adrian-prantl wrote:
would .insert({Offset, Asm->...}) also work here?
https://github.com/llvm/llvm-project/pull/77457
More information about the llvm-commits
mailing list