LLVM: lib/DWARFLinker/Parallel/DWARFLinkerCompileUnit.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9#ifndef LLVM_LIB_DWARFLINKER_PARALLEL_DWARFLINKERCOMPILEUNIT_H
10#define LLVM_LIB_DWARFLINKER_PARALLEL_DWARFLINKERCOMPILEUNIT_H
11
14#include
15
16namespace llvm {
19
21
27
29
30
31
36
39
41 std::optional getParent();
42};
43
48
49
50
51
52
54public:
55
57
59
60
62
63
64
66
67
68
70
71
73
74
76
77
79
80
82
83
85 };
86
91
96
97
99
100
102
103
105
106
107
109
110
112
113
114
116
117
118
119
121
122
123
125
126
130
131
133
134
135
137
138
139
141 bool InterCUProcessingStarted,
142 std::atomic &HasNewInterconnectedCUs);
143
144
145
147
148
150
151
153
154
157
158
160
161
163
164
166 };
167
168
176
177
178 std::atomic<uint16_t> Flags = {0};
179
180
184
185
187 auto InputData = Flags.load();
188 while (.compare_exchange_weak(InputData,
189 ((InputData & ~0x7) | Placement))) {
190 }
191 }
192
193
195 auto InputData = Flags.load();
196 while (.compare_exchange_weak(InputData, (InputData & ~0x7))) {
197 }
198 }
199
200
202 auto InputData = Flags.load();
203 if ((InputData & 0x7) == NotSet)
204 if (Flags.compare_exchange_strong(InputData, (InputData | Placement)))
205 return true;
206
207 return false;
208 }
209
210#define SINGLE_FLAG_METHODS_SET(Name, Value) \
211 bool get##Name() const { return Flags & Value; } \
212 void set##Name() { \
213 auto InputData = Flags.load(); \
214 while (!Flags.compare_exchange_weak(InputData, InputData | Value)) { \
215 } \
216 } \
217 void unset##Name() { \
218 auto InputData = Flags.load(); \
219 while (!Flags.compare_exchange_weak(InputData, InputData & ~Value)) { \
220 } \
221 }
222
223
225
226
228
229
231
232
234
235
237
238
240
241
243
244
246
247
249
251 auto InputData = Flags.load();
252 while (.compare_exchange_weak(
253 InputData, InputData & ~(0x7 | 0x8 | 0x10 | 0x20))) {
254 }
255 }
256
257
259
260#if !defined(NDEBUG) || defined(LLVM_ENABLE_DUMP)
262#endif
263
267 getKeepTypeChildren();
268 }
269
273 getKeepPlainChildren();
274 }
275 };
276
277
278
279
280
281
282
284
285
286
288
289
290
294
295
296
300
301
302
306
307
308
312
313
314
316 return reinterpret_cast<std::atomic<uint64_t> *>(&OutDieOffsetArray[Idx])
318 }
319
320
321
323 return reinterpret_cast<std::atomic<TypeEntry *> *>(&TypeEntries[Idx])
325 }
326
327
328
330 return reinterpret_cast<std::atomic<uint64_t> *>(
333 }
334
335
336
338 return reinterpret_cast<std::atomic<TypeEntry *> *>(
341 }
342
343
344
346 reinterpret_cast<std::atomic<uint64_t> *>(&OutDieOffsetArray[Idx])
348 }
349
350
351
353 reinterpret_cast<std::atomic<TypeEntry *> *>(&TypeEntries[Idx])
354 ->store(Entry);
355 }
356
357
358
361 reinterpret_cast<std::atomic<TypeEntry *> *>(
363 ->store(Entry);
364 }
365
366
367
368
369 std::optional<uint64_t> getLowPc() const { return LowPc; }
370
371
373
374
376
377
378
380
381
382
383
384
385 std::optional
388
389 std::optional
393
394
395
396
397
399
400
402
403
405 cloneAndEmit(std::optional<std::reference_wrapper> TargetTriple,
406 TypeUnit *ArtificialTypeUnit);
407
408
410
411
413
414
416
417
418 std::pair<DIE *, TypeEntry *>
421 std::optional<int64_t> FuncAddressAdjustment,
422 std::optional<int64_t> VarAddressAdjustment,
424
425
427
428
432 std::optional<int64_t> VarAddressAdjustment,
434
435
437 return DebugAddrIndexMap.getValueIndex(Addr);
438 }
439
440
441 std::optional<std::pair<StringRef, StringRef>>
443
444
445 std::optional<std::pair<StringRef, StringRef>>
447
448
449
450
451
452
454 assert(OrigUnit != nullptr);
455 return *OrigUnit;
456 }
457
460 assert(OrigUnit != nullptr);
461 return OrigUnit->getFirstChildEntry(Die);
462 }
463
466 assert(OrigUnit != nullptr);
467 return OrigUnit->getSiblingEntry(Die);
468 }
469
471 assert(OrigUnit != nullptr);
472 return OrigUnit->getParent(Die);
473 }
474
476 assert(OrigUnit != nullptr);
477 return OrigUnit->getDIEAtIndex(Index);
478 }
479
481 assert(OrigUnit != nullptr);
482 return OrigUnit->getDebugInfoEntry(Index);
483 }
484
486 assert(OrigUnit != nullptr);
487 return OrigUnit->getUnitDIE(ExtractUnitDIEOnly);
488 }
489
491 assert(OrigUnit != nullptr);
492 return DWARFDie(OrigUnit, Die);
493 }
494
496 assert(OrigUnit != nullptr);
497 return OrigUnit->getDIEIndex(Die);
498 }
499
501 assert(OrigUnit != nullptr);
502 return OrigUnit->getDIEIndex(Die);
503 }
504
507 assert(OrigUnit != nullptr);
508 return find(OrigUnit->getDebugInfoEntry(DieIdx), Attrs);
509 }
510
513 if (!Die)
514 return std::nullopt;
516 if (AbbrevDecl) {
517 for (auto Attr : Attrs) {
518 if (auto Value = AbbrevDecl->getAttributeValue(Die->getOffset(), Attr,
519 *OrigUnit))
521 }
522 }
523 return std::nullopt;
524 }
525
527 return OrigUnit->getDIEIndexForOffset(Offset);
528 }
529
530
531
532
533
534
535
539
545
547 if (DieEntry != nullptr) {
550 return;
551 }
552
554 }
555
559
565
566
567
568
570 AcceleratorRecords.add(Info);
571 }
572
573
574 void
576 AcceleratorRecords.forEach(Handler);
577 }
578
579
581 public:
584
585
587
589
591
592
594
595
597
598 protected:
600 };
601
602private:
603
605 bool IsODRUnavailableFunctionScope);
606
607 struct LinkedLocationExpressionsWithOffsetPatches {
610 };
611 using LinkedLocationExpressionsVector =
613
614
616
617
619
620
621 uint64_t emitLocListFragment(
622 const LinkedLocationExpressionsVector &LinkedLocationExpression,
624
625
626 Error emitDebugAddrSection();
627
628
629 void emitAranges(AddressRanges &LinkedFunctionRanges);
630
631
634
635
637
638
639 void emitRangeListFragment(const AddressRanges &LinkedRanges,
641
642
643
645 std::vectorDWARFDebugLine::Row &Rows);
646
647
648 void emitMacroTableImpl(const DWARFDebugMacro *MacroTable,
649 uint64_t OffsetToMacroTable, bool hasDWARFv5Header);
650
651
652 DIE *createPlainDIEandCloneAttributes(
654 uint64_t &OutOffset, std::optional<int64_t> &FuncAddressAdjustment,
655 std::optional<int64_t> &VarAddressAdjustment);
656
657
658 TypeEntry *createTypeDIEandCloneAttributes(
661
662
665 bool IsDeclaration, bool IsParentDeclaration);
666
667
670
671
673
674
676
677
678 std::optional<uint16_t> Language;
679
680
682
683
684
686 ResolvedPathsMap ResolvedFullPaths;
688
689
691
692 std::unique_ptr Dependencies;
693
694
695
696
698
699 std::optional<uint64_t> LowPc;
701
702
703 bool NoODR = true;
704
705
706
707
709 std::mutex RangesMutex;
710
711
713 LabelMapTy Labels;
714 std::mutex LabelsMutex;
715
716
717 std::atomic Stage;
718
719
723
724
726
727};
728
729
730
731
732
734
735}
736}
737}
738
739#endif
assert(UImm &&(UImm !=~static_cast< T >(0)) &&"Invalid immediate!")
AMDGPU Mark last scratch load
Analysis containing CSE Info
#define LLVM_DUMP_METHOD
Mark debug helper function definitions like dump() that should not be stripped from debug builds.
Branch Probability Basic Block Placement
The AddressRanges class helps normalize address range collections.
ArrayRef - Represent a constant reference to an array (0 or more elements consecutively in memory),...
A structured debug information entry.
DWARFDebugInfoEntry - A DIE with only the minimum required data.
uint64_t getOffset() const
const DWARFAbbreviationDeclaration * getAbbreviationDeclarationPtr() const
Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
uint32_t getDIEIndex(const DWARFDebugInfoEntry *Die) const
Return the index of a Die entry inside the unit's DIE vector.
Base class for error info classes.
Lightweight error class with error context and mandatory checking.
Class representing an expression and its matching format.
A discriminated union of two or more pointer types, with the discriminator in the low bit of the poin...
This class consists of common code factored out of the SmallVector class to reduce code duplication b...
This is a 'vector' (really, a variable-sized array), optimized for the case when the array is small.
StringMap - This is an unconventional map that is specialized for handling keys that are "strings",...
StringRef - Represent a constant reference to a string, i.e.
Triple - Helper class for working with autoconf configuration names.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
LLVM Value Representation.
This class represents DWARF information for source file and it's address map.
This class stores values sequentually and assigns index to the each value.
This class is a simple list of T structures.
TypeUnit * getAsTypeUnit()
Returns TypeUnit if applicable.
DwarfUnit * operator->()
Accessor for common functionality.
PointerUnion< CompileUnit *, TypeUnit * > Ptr
Definition DWARFLinkerCompileUnit.h:599
CompileUnit * getAsCompileUnit()
Returns CompileUnit if applicable.
OutputUnitVariantPtr(CompileUnit *U)
Stores all information related to a compile unit, be it in its original instance of the object file o...
Definition DWARFLinkerCompileUnit.h:53
void addLabelLowPc(uint64_t LabelLowPc, int64_t PcOffset)
Add the low_pc of a label that is relocated by applying offset PCOffset.
Error cloneAndEmitDebugLocations()
Clone and emit debug locations(.debug_loc/.debug_loclists).
void cloneDieAttrExpression(const DWARFExpression &InputExpression, SmallVectorImpl< uint8_t > &OutputExpression, SectionDescriptor &Section, std::optional< int64_t > VarAddressAdjustment, OffsetsPtrVector &PatchesOffsets)
Clone attribute location axpression.
void maybeResetToLoadedStage()
Reset compile units data(results of liveness analysis, clonning) if current stage greater than Stage:...
void addFunctionRange(uint64_t LowPC, uint64_t HighPC, int64_t PCOffset)
Add a function range [LowPC, HighPC) that is relocated by applying offset PCOffset.
void analyzeImportedModule(const DWARFDebugInfoEntry *DieEntry)
Collect references to parseable Swift interfaces in imported DW_TAG_module blocks.
std::pair< DIE *, TypeEntry * > cloneDIE(const DWARFDebugInfoEntry *InputDieEntry, TypeEntry *ClonedParentTypeDIE, uint64_t OutOffset, std::optional< int64_t > FuncAddressAdjustment, std::optional< int64_t > VarAddressAdjustment, BumpPtrAllocator &Allocator, TypeUnit *ArtificialTypeUnit)
void cleanupDataAfterClonning()
Cleanup unneeded resources after compile unit is cloned.
Error assignTypeNames(TypePool &TypePoolRef)
Search for type entries and assign names.
uint64_t getHighPc() const
Returns value of DW_AT_high_pc attribute.
Definition DWARFLinkerCompileUnit.h:372
DieOutputPlacement
Kinds of placement for the output die.
Definition DWARFLinkerCompileUnit.h:155
@ Both
Corresponding DIE goes to type table and to plain dwarf.
Definition DWARFLinkerCompileUnit.h:165
@ TypeTable
Corresponding DIE goes to the type table only.
Definition DWARFLinkerCompileUnit.h:159
@ NotSet
Definition DWARFLinkerCompileUnit.h:156
@ PlainDwarf
Corresponding DIE goes to the plain dwarf only.
Definition DWARFLinkerCompileUnit.h:162
Error cloneAndEmitLineTable(const Triple &TargetTriple)
void analyzeDWARFStructure()
Navigate DWARF tree and set die properties.
Definition DWARFLinkerCompileUnit.h:127
Error cloneAndEmitRanges()
Clone and emit ranges.
void updateDieRefPatchesWithClonedOffsets()
After cloning stage the output DIEs offsets are deallocated.
uint64_t getDebugAddrIndex(uint64_t Addr)
Returns index(inside .debug_addr) of an address.
Definition DWARFLinkerCompileUnit.h:436
const DWARFFile & getContaingFile() const
Returns DWARFFile containing this compile unit.
Definition DWARFLinkerCompileUnit.h:111
bool resolveDependenciesAndMarkLiveness(bool InterCUProcessingStarted, std::atomic< bool > &HasNewInterconnectedCUs)
Search for subprograms and variables referencing live code and discover dependend DIEs.
bool hasLabelAt(uint64_t Addr) const
Returns true if there is a label corresponding to the specified Addr.
Definition DWARFLinkerCompileUnit.h:375
bool updateDependenciesCompleteness()
Check dependend DIEs for incompatible placement.
bool loadInputDIEs()
Load DIEs of input compilation unit.
const RangesTy & getFunctionRanges() const
Returns function ranges of this unit.
Definition DWARFLinkerCompileUnit.h:401
void saveAcceleratorInfo(const DwarfUnit::AccelInfo &Info)
Save specified accelerator info Info.
Definition DWARFLinkerCompileUnit.h:569
Error cloneAndEmitDebugMacro()
Clone and emit debug macros(.debug_macinfo/.debug_macro).
Error cloneAndEmit(std::optional< std::reference_wrapper< const Triple > > TargetTriple, TypeUnit *ArtificialTypeUnit)
Clone and emit this compilation unit.
void setStage(Stage Stage)
Set stage of overall processing.
Definition DWARFLinkerCompileUnit.h:101
Stage getStage() const
Returns stage of overall processing.
Definition DWARFLinkerCompileUnit.h:98
CompileUnit(LinkingGlobalData &GlobalData, unsigned ID, StringRef ClangModuleName, DWARFFile &File, OffsetToUnitTy UnitFromOffset, dwarf::FormParams Format, llvm::endianness Endianess)
void verifyDependencies()
Check DIEs to have a consistent marking(keep marking, placement marking).
Stage
The stages of new compile unit processing.
Definition DWARFLinkerCompileUnit.h:56
@ Cloned
Output DWARF is generated.
Definition DWARFLinkerCompileUnit.h:75
@ TypeNamesAssigned
Type names assigned to DIEs.
Definition DWARFLinkerCompileUnit.h:72
@ CreatedNotLoaded
Created, linked with input DWARF file.
Definition DWARFLinkerCompileUnit.h:58
@ PatchesUpdated
Offsets inside patch records are updated.
Definition DWARFLinkerCompileUnit.h:78
@ Cleaned
Resources(Input DWARF, Output DWARF tree) are released.
Definition DWARFLinkerCompileUnit.h:81
@ Loaded
Input DWARF is loaded.
Definition DWARFLinkerCompileUnit.h:61
@ LivenessAnalysisDone
Input DWARF is analysed(DIEs pointing to the real code section arediscovered, type names are assigned...
Definition DWARFLinkerCompileUnit.h:65
@ UpdateDependenciesCompleteness
Check if dependencies have incompatible placement.
Definition DWARFLinkerCompileUnit.h:69
@ Skipped
Compile Unit should be skipped.
Definition DWARFLinkerCompileUnit.h:84
void forEachAcceleratorRecord(function_ref< void(AccelInfo &)> Handler) override
Enumerates all units accelerator records.
Definition DWARFLinkerCompileUnit.h:575
std::optional< uint64_t > getLowPc() const
Returns value of DW_AT_low_pc attribute.
Definition DWARFLinkerCompileUnit.h:369
std::optional< std::pair< StringRef, StringRef > > getDirAndFilenameFromLineTable(const DWARFFormValue &FileIdxValue)
Returns directory and file from the line table by index.
std::optional< UnitEntryPairTy > resolveDIEReference(const DWARFFormValue &RefValue, ResolveInterCUReferencesMode CanResolveInterCUReferences)
Resolve the DIE attribute reference that has been extracted in RefValue.
void loadLineTable()
Loads unit line table.
StringEntry * getFileName(unsigned FileIdx, StringPool &GlobalStrings)
Returns name of the file for the FileIdx from the unit`s line table.
This class is a helper to create output DIE tree.
This class discovers DIEs dependencies: marks "live" DIEs, marks DIE locations (whether DIE should be...
StringRef getUnitName() const
Returns this unit name.
DwarfUnit(LinkingGlobalData &GlobalData, unsigned ID, StringRef ClangModuleName)
std::string ClangModuleName
If this is a Clang module, this holds the module's name.
This class keeps data and services common for the whole linking process.
LinkingGlobalData & GlobalData
The helper class to build type name based on DIE properties.
Keeps cloned data for the type DIE.
TypePool keeps type descriptors which contain partially cloned DIE correspinding to each type.
Type Unit is used to represent an artificial compilation unit which keeps all type information.
An efficient, type-erasing, non-owning reference to a callable.
uint64_t getDieOutOffset(const DWARFDebugInfoEntry *InputDieEntry)
InputDieEntry debug info entry.
Definition DWARFLinkerCompileUnit.h:329
void rememberDieOutOffset(uint32_t Idx, uint64_t Offset)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:345
TypeEntry * getDieTypeEntry(uint32_t Idx)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:322
DIEInfo & getDIEInfo(unsigned Idx)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:283
const DIEInfo & getDIEInfo(const DWARFDebugInfoEntry *Entry) const
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:297
uint64_t getDieOutOffset(uint32_t Idx)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:315
const DIEInfo & getDIEInfo(const DWARFDie &Die) const
Die
Definition DWARFLinkerCompileUnit.h:309
const DIEInfo & getDIEInfo(unsigned Idx) const
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:287
DIEInfo & getDIEInfo(const DWARFDebugInfoEntry *Entry)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:291
TypeEntry * getDieTypeEntry(const DWARFDebugInfoEntry *InputDieEntry)
InputDieEntry debug info entry.
Definition DWARFLinkerCompileUnit.h:337
void setDieTypeEntry(const DWARFDebugInfoEntry *InputDieEntry, TypeEntry *Entry)
InputDieEntry debug info entry.
Definition DWARFLinkerCompileUnit.h:359
void setDieTypeEntry(uint32_t Idx, TypeEntry *Entry)
Idx index of the DIE.
Definition DWARFLinkerCompileUnit.h:352
DIEInfo & getDIEInfo(const DWARFDie &Die)
Die
Definition DWARFLinkerCompileUnit.h:303
const DWARFDebugInfoEntry * getSiblingEntry(const DWARFDebugInfoEntry *Die) const
Definition DWARFLinkerCompileUnit.h:465
const DWARFDebugInfoEntry * getFirstChildEntry(const DWARFDebugInfoEntry *Die) const
Definition DWARFLinkerCompileUnit.h:459
std::optional< uint32_t > getDIEIndexForOffset(uint64_t Offset)
Definition DWARFLinkerCompileUnit.h:526
DWARFDie getDIEAtIndex(unsigned Index)
Definition DWARFLinkerCompileUnit.h:475
DWARFDie getDIE(const DWARFDebugInfoEntry *Die)
Definition DWARFLinkerCompileUnit.h:490
std::optional< DWARFFormValue > find(const DWARFDebugInfoEntry *Die, ArrayRef< dwarf::Attribute > Attrs) const
Definition DWARFLinkerCompileUnit.h:511
const DWARFDebugInfoEntry * getDebugInfoEntry(unsigned Index) const
Definition DWARFLinkerCompileUnit.h:480
DWARFUnit & getOrigUnit() const
Returns paired compile unit from input DWARF.
Definition DWARFLinkerCompileUnit.h:453
DWARFDie getUnitDIE(bool ExtractUnitDIEOnly=true)
Definition DWARFLinkerCompileUnit.h:485
DWARFDie getParent(const DWARFDebugInfoEntry *Die)
Definition DWARFLinkerCompileUnit.h:470
uint32_t getDIEIndex(const DWARFDebugInfoEntry *Die) const
Definition DWARFLinkerCompileUnit.h:495
uint32_t getDIEIndex(const DWARFDie &Die) const
Definition DWARFLinkerCompileUnit.h:500
std::optional< DWARFFormValue > find(uint32_t DieIdx, ArrayRef< dwarf::Attribute > Attrs) const
Definition DWARFLinkerCompileUnit.h:505
void error(Error Err, const DWARFDie *DIE=nullptr)
Definition DWARFLinkerCompileUnit.h:560
void warn(Error Warning, const DWARFDie *DIE=nullptr)
Definition DWARFLinkerCompileUnit.h:540
void warn(const Twine &Warning, const DWARFDie *DIE=nullptr)
Definition DWARFLinkerCompileUnit.h:536
void error(const Twine &Err, const DWARFDie *DIE=nullptr)
Definition DWARFLinkerCompileUnit.h:556
void warn(const Twine &Warning, const DWARFDebugInfoEntry *DieEntry)
Definition DWARFLinkerCompileUnit.h:546
#define SINGLE_FLAG_METHODS_SET(Name, Value)
Definition DWARFLinkerCompileUnit.h:210
unsigned ID
LLVM IR allows to use arbitrary numbers as calling convention identifiers.
function_ref< CompileUnit *(uint64_t Offset)> OffsetToUnitTy
Definition DWARFLinkerCompileUnit.h:20
SmallVector< uint64_t * > OffsetsPtrVector
Type for list of pointers to patches offsets.
StringMapEntry< std::atomic< TypeEntryBody * > > TypeEntry
ArrayRef< dwarf::Attribute > getODRAttributes()
ResolveInterCUReferencesMode
Definition DWARFLinkerCompileUnit.h:44
@ AvoidResolving
Definition DWARFLinkerCompileUnit.h:46
@ Resolve
Definition DWARFLinkerCompileUnit.h:45
DebugSectionKind
List of tracked debug tables.
StringMapEntry< EmptyStringSetTag > StringEntry
StringEntry keeps data of the string: the length, external offset and a string body which is placed r...
AddressRangesMap RangesTy
Mapped value in the address map is the offset to apply to the linked address.
This is an optimization pass for GlobalISel generic memory operations.
void handleAllErrors(Error E, HandlerTs &&... Handlers)
Behaves the same as handleErrors, except that by contract all errors must be handled by the given han...
static void insertLineSequence(std::vector< TrackedRow > &Seq, std::vector< TrackedRow > &Rows)
Insert the new line info sequence Seq into the current set of already linked line info Rows.
BumpPtrAllocatorImpl<> BumpPtrAllocator
The standard BumpPtrAllocator which just uses the default template parameters.
@ Keep
No function return thunk.
Represents a single DWARF expression, whose value is location-dependent.
A helper struct providing information about the byte size of DW_FORM values that vary in size dependi...
Information gathered and exchanged between the various clone*Attr helpers about the attributes of a p...
Information gathered about source DIEs.
Definition DWARFLinkerCompileUnit.h:169
LLVM_DUMP_METHOD void dump()
void setPlacement(DieOutputPlacement Placement)
Sets Placement kind for the corresponding die.
Definition DWARFLinkerCompileUnit.h:186
bool needToKeepInPlainDwarf() const
Definition DWARFLinkerCompileUnit.h:270
std::atomic< uint16_t > Flags
Data member keeping various flags.
Definition DWARFLinkerCompileUnit.h:178
bool needToPlaceInTypeTable() const
Definition DWARFLinkerCompileUnit.h:264
DieOutputPlacement getPlacement() const
Definition DWARFLinkerCompileUnit.h:181
void unsetPlacement()
Unsets Placement kind for the corresponding die.
Definition DWARFLinkerCompileUnit.h:194
bool setPlacementIfUnset(DieOutputPlacement Placement)
Sets Placement kind for the corresponding die.
Definition DWARFLinkerCompileUnit.h:201
DIEInfo & operator=(const DIEInfo &Other)
Definition DWARFLinkerCompileUnit.h:172
void unsetFlagsWhichSetDuringLiveAnalysis()
DIE is a part of the linked output.
Definition DWARFLinkerCompileUnit.h:250
DIEInfo(const DIEInfo &Other)
Definition DWARFLinkerCompileUnit.h:171
void eraseData()
Erase all flags.
Definition DWARFLinkerCompileUnit.h:258
This structure keeps fields which would be used for creating accelerator table.
This structure is used to keep data of the concrete section.
UnitEntryPairTy()=default
UnitEntryPairTy(CompileUnit *CU, const DWARFDebugInfoEntry *DieEntry)
Definition DWARFLinkerCompileUnit.h:34
std::optional< UnitEntryPairTy > getParent()
UnitEntryPairTy getNamespaceOrigin()
const DWARFDebugInfoEntry * DieEntry
Definition DWARFLinkerCompileUnit.h:38