Skip to content

Commit 90eb045

Browse files
Introduce AbbrevContent and AbbrevEntry
1 parent 2798633 commit 90eb045

File tree

1 file changed

+18
-3
lines changed

1 file changed

+18
-3
lines changed

llvm/lib/MCCAS/MCCASObjectV1.cpp

Lines changed: 18 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3098,11 +3098,26 @@ mccasformats::v1::loadDIETopLevel(DIETopLevelRef TopLevelRef) {
30983098
}
30993099

31003100
struct DIEVisitor {
3101+
3102+
struct AbbrevContent {
3103+
dwarf::Attribute Attr;
3104+
dwarf::Form Form;
3105+
bool FormInDistinctData;
3106+
std::optional<uint8_t> FormSize;
3107+
};
3108+
3109+
struct AbbrevEntry {
3110+
dwarf::Tag Tag;
3111+
bool HasChildren;
3112+
SmallVector<AbbrevContent> AbbrevContents;
3113+
};
3114+
31013115
Error visitDIERef(DIEDedupeTopLevelRef Ref);
31023116
Error visitDIERef(ArrayRef<DIEDataRef> &DIEChildrenStack);
31033117
Error visitDIEAttrs(AbbrevEntryReader &AbbrevReader,
31043118
BinaryStreamReader &Reader, StringRef DIEData);
31053119

3120+
SmallVector<AbbrevEntry> AbbrevEntryCache;
31063121
ArrayRef<StringRef> AbbrevEntries;
31073122
BinaryStreamReader DistinctReader;
31083123
StringRef DistinctData;
@@ -3307,8 +3322,8 @@ Error mccasformats::v1::visitDebugInfo(
33073322
HeaderCallback(toStringRef(HeaderData));
33083323

33093324
append_range(TotAbbrevEntries, LoadedTopRef->AbbrevEntries);
3310-
DIEVisitor Visitor{TotAbbrevEntries, DistinctReader, DistinctData,
3311-
HeaderCallback, StartTagCallback, AttrCallback,
3312-
EndTagCallback, NewBlockCallback};
3325+
DIEVisitor Visitor{{}, TotAbbrevEntries, DistinctReader,
3326+
DistinctData, HeaderCallback, StartTagCallback,
3327+
AttrCallback, EndTagCallback, NewBlockCallback};
33133328
return Visitor.visitDIERef(LoadedTopRef->RootDIE);
33143329
}

0 commit comments

Comments
 (0)