LLVM: lib/DWARFLinker/Parallel/SyntheticTypeNameBuilder.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_DWARFLINKER_PARALLEL_SYNTHETICTYPENAMEBUILDER_H
10#define LLVM_LIB_DWARFLINKER_PARALLEL_SYNTHETICTYPENAMEBUILDER_H
11
16
17namespace llvm {
19
22struct LinkContext;
23class TypeTableUnit;
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
47public:
49
50
51
52
54 std::optional<std::pair<size_t, size_t>> ChildIndex);
55
56protected:
57
59
60
61
63 bool addTemplateParameters);
64
65
69
70
74
75
77
78
79
81 bool AssignNameToTypeDescriptor,
83
84
86
87
88
89
91 bool &HasDeclFileName);
92
93
95
96
98
99
100
101
102
103
104
105
106
107
109 std::optional<std::pair<size_t, size_t>> ChildIndex,
110 bool AssignNameToTypeDescriptor);
111
112
113 void addOrderedName(std::pair<size_t, size_t> ChildIdx);
114
115
117
118
120
121
123
124
126};
127
128
129
130
131
133public:
136
137
138
139 std::optional<std::pair<size_t, size_t>>
141
142protected:
144
147
151};
152
153}
154}
155}
156
157#endif
This file defines the SmallString class.
This file defines the SmallVector class.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
DWARFDebugInfoEntry - A DIE with only the minimum required data.
Lightweight error class with error context and mandatory checking.
SmallString - A SmallString is just a SmallVector with methods and accessors that make it work better...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
Stores all information related to a compile unit, be it in its original instance of the object file o...
OrderedChildrenIndexesArrayTy ChildIndexesWidth
Definition SyntheticTypeNameBuilder.h:150
OrderedChildrenIndexAssigner(CompileUnit &CU, const DWARFDebugInfoEntry *DieEntry)
bool NeedCountChildren
Definition SyntheticTypeNameBuilder.h:148
std::optional< size_t > tagToArrayIndex(CompileUnit &CU, const DWARFDebugInfoEntry *DieEntry)
std::optional< std::pair< size_t, size_t > > getChildIndex(CompileUnit &CU, const DWARFDebugInfoEntry *ChildDieEntry)
Returns index of the specified child and width of hexadecimal representation.
std::array< size_t, 8 > OrderedChildrenIndexesArrayTy
Definition SyntheticTypeNameBuilder.h:143
OrderedChildrenIndexesArrayTy OrderedChildIdxs
Definition SyntheticTypeNameBuilder.h:149
Error addReferencedODRDies(UnitEntryPairTy InputUnitEntryPair, bool AssignNameToTypeDescriptor, ArrayRef< dwarf::Attribute > ODRAttrs)
Analyze InputUnitEntryPair's ODR attributes and put names of the referenced type dies to the built na...
Error addTemplateParamNames(CompileUnit &CU, SmallVector< const DWARFDebugInfoEntry *, 10 > &TemplateParameters)
Add specified TemplateParameters to the built name.
Error addParentName(UnitEntryPairTy &InputUnitEntryPair)
Add names of parent dies to the built name.
void addOrderedName(CompileUnit &CU, const DWARFDebugInfoEntry *DieEntry)
Add ordered name to the built name.
Error addSignature(UnitEntryPairTy InputUnitEntryPair, bool addTemplateParameters)
Add signature( entry type plus type of parameters plus type of template parameters(if addTemplatePara...
Error addParamNames(CompileUnit &CU, SmallVector< const DWARFDebugInfoEntry *, 20 > &FunctionParameters)
Add specified FunctionParameters to the built name.
void addDieNameFromDeclFileAndDeclLine(UnitEntryPairTy &InputUnitEntryPair, bool &HasDeclFileName)
TypePool & TypePoolRef
Type pool.
Definition SyntheticTypeNameBuilder.h:125
size_t RecursionDepth
Recursion counter.
Definition SyntheticTypeNameBuilder.h:122
void addTypePrefix(const DWARFDebugInfoEntry *DieEntry)
Add type prefix to the built name.
SmallString< 1000 > SyntheticName
Buffer keeping bult name.
Definition SyntheticTypeNameBuilder.h:119
Error assignName(UnitEntryPairTy InputUnitEntryPair, std::optional< std::pair< size_t, size_t > > ChildIndex)
Create synthetic name for the specified DIE InputUnitEntryPair and assign created name to the DIE typ...
Error addDIETypeName(UnitEntryPairTy InputUnitEntryPair, std::optional< std::pair< size_t, size_t > > ChildIndex, bool AssignNameToTypeDescriptor)
Analyze InputUnitEntryPair for the type name and possibly assign built type name to the DIE's type in...
Error addTypeName(UnitEntryPairTy InputUnitEntryPair, bool AddParentNames)
Add type name to the built name.
SyntheticTypeNameBuilder(TypePool &TypePoolRef)
Definition SyntheticTypeNameBuilder.h:48
void addArrayDimension(UnitEntryPairTy InputUnitEntryPair)
Add array type dimension.
void addValueName(UnitEntryPairTy InputUnitEntryPair, dwarf::Attribute Attr)
Add value name to the built name.
TypePool keeps type descriptors which contain partially cloned DIE correspinding to each type.
This is an optimization pass for GlobalISel generic memory operations.
This is a helper structure which keeps a debug info entry with it's containing compilation unit.