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.