LLVM 18.0.0git
|
Classes | |
class | AcceleratorRecordsSaver |
This class helps to store information for accelerator entries. More... | |
class | AddressesMap |
AddressesMap represents information about valid addresses used by debug information. More... | |
class | ArrayList |
This class is a simple list of T structures. More... | |
struct | AttributesInfo |
Information gathered and exchanged between the various clone*Attr helpers about the attributes of a particular DIE. More... | |
struct | BrokenLink |
A broken link in the keep chain. More... | |
class | CompileUnit |
Stores all information related to a compile unit, be it in its original instance of the object file or its brand new cloned and generated DIE tree. More... | |
struct | DebugDieRefPatch |
This structure is used to update reference to the DIE. More... | |
struct | DebugDieTypeRefPatch |
This structure is used to update reference to the type DIE. More... | |
class | DebugLineSectionEmitter |
This class emits specified line table into the .debug_line section. More... | |
struct | DebugLineStrPatch |
This structure is used to update strings offsets into .debug_line_str. More... | |
struct | DebugLocPatch |
This structure is used to update location list offset into .debug_loc/.debug_loclists. More... | |
struct | DebugOffsetPatch |
struct | DebugRangePatch |
This structure is used to update range list offset into .debug_ranges/.debug_rnglists. More... | |
struct | DebugStrPatch |
This structure is used to update strings offsets into .debug_str. More... | |
struct | DebugType2TypeDieRefPatch |
This structure is used to update reference to the type DIE. More... | |
struct | DebugTypeDeclFilePatch |
struct | DebugTypeLineStrPatch |
struct | DebugTypeStrPatch |
struct | DebugULEB128DieRefPatch |
This structure is used to update reference to the DIE of ULEB128 form. More... | |
class | DependencyTracker |
This class discovers DIEs dependencies: marks "live" DIEs, marks DIE locations (whether DIE should be cloned as regular DIE or it should be put into the artificial type unit). More... | |
class | DIEAttributeCloner |
This class creates clones of input DIE attributes. More... | |
class | DIEGenerator |
This class is a helper to create output DIE tree. More... | |
class | DwarfEmitterImpl |
This class emits DWARF data to the output stream. More... | |
class | DWARFFile |
This class represents DWARF information for source file and it's address map. More... | |
class | DWARFLinker |
class | DWARFLinkerImpl |
This class links debug info. More... | |
struct | DWARFLinkerOptions |
linking options More... | |
class | DwarfUnit |
Base class for all Dwarf units(Compile unit/Type table unit). More... | |
class | ExtraDwarfEmitter |
ExtraDwarfEmitter allows adding extra data to the DWARFLinker output. More... | |
class | IndexedValuesMap |
class | LinkingGlobalData |
This class keeps data and services common for the whole linking process. More... | |
class | OrderedChildrenIndexAssigner |
This class helps to assign indexes for DIE children. More... | |
class | OutputSections |
This class keeps contents and offsets to the debug sections. More... | |
struct | SectionDescriptor |
This structure is used to keep data of the concrete section. More... | |
struct | SectionPatch |
There are fields(sizes, offsets) which should be updated after sections are generated. More... | |
class | StringEntryToDwarfStringPoolEntryMap |
This class creates a DwarfStringPoolEntry for the corresponding StringEntry. More... | |
class | StringPool |
class | StringPoolEntryInfo |
class | SyntheticTypeNameBuilder |
The helper class to build type name based on DIE properties. More... | |
class | TypeEntryBody |
Keeps cloned data for the type DIE. More... | |
class | TypeEntryInfo |
class | TypePool |
TypePool keeps type descriptors which contain partially cloned DIE correspinding to each type. More... | |
class | TypeUnit |
Type Unit is used to represent an artificial compilation unit which keeps all type information. More... | |
struct | UnitEntryPairTy |
This is a helper structure which keeps a debug info entry with it's containing compilation unit. More... | |
Typedefs | |
using | RangesTy = AddressRangesMap |
Mapped value in the address map is the offset to apply to the linked address. | |
using | StringEntry = StringMapEntry< std::nullopt_t > |
StringEntry keeps data of the string: the length, external offset and a string body which is placed right after StringEntry. | |
using | DebugNamesUnitsOffsets = std::vector< std::variant< MCSymbol *, uint64_t > > |
using | CompUnitIDToIdx = DenseMap< unsigned, unsigned > |
using | OffsetToUnitTy = function_ref< CompileUnit *(uint64_t Offset)> |
using | TranslatorFuncTy = std::function< StringRef(StringRef)> |
using | MessageHandlerTy = std::function< void(const Twine &Warning, StringRef Context, const DWARFDie *DIE)> |
using | MacroOffset2UnitMapTy = DenseMap< uint64_t, DwarfUnit * > |
using | OutSectionDataTy = SmallString< 0 > |
Type for section data. | |
using | OffsetsPtrVector = SmallVector< uint64_t * > |
Type for list of pointers to patches offsets. | |
using | TypeEntry = StringMapEntry< std::atomic< TypeEntryBody * > > |
Enumerations | |
enum | ResolveInterCUReferencesMode : bool { Resolve = true , AvoidResolving = false } |
enum class | DebugSectionKind : uint8_t { DebugInfo = 0 , DebugLine , DebugFrame , DebugRange , DebugRngLists , DebugLoc , DebugLocLists , DebugARanges , DebugAbbrev , DebugMacinfo , DebugMacro , DebugAddr , DebugStr , DebugLineStr , DebugStrOffsets , DebugPubNames , DebugPubTypes , DebugNames , AppleNames , AppleNamespaces , AppleObjC , AppleTypes , NumberOfEnumEntries } |
List of tracked debug tables. More... | |
Variables | |
static constexpr StringLiteral | SectionNames [SectionKindsNum] |
static constexpr size_t | SectionKindsNum |
static dwarf::Attribute | TypeAttr [] = {dwarf::DW_AT_type} |
using llvm::dwarflinker_parallel::CompUnitIDToIdx = typedef DenseMap<unsigned, unsigned> |
Definition at line 42 of file DWARFEmitterImpl.h.
using llvm::dwarflinker_parallel::DebugNamesUnitsOffsets = typedef std::vector<std::variant<MCSymbol *, uint64_t> > |
Definition at line 41 of file DWARFEmitterImpl.h.
using llvm::dwarflinker_parallel::MacroOffset2UnitMapTy = typedef DenseMap<uint64_t, DwarfUnit *> |
Definition at line 25 of file DWARFLinkerUnit.h.
using llvm::dwarflinker_parallel::MessageHandlerTy = typedef std::function<void( const Twine &Warning, StringRef Context, const DWARFDie *DIE)> |
Definition at line 25 of file DWARFLinkerGlobalData.h.
using llvm::dwarflinker_parallel::OffsetsPtrVector = typedef SmallVector<uint64_t *> |
Type for list of pointers to patches offsets.
Definition at line 180 of file OutputSections.h.
using llvm::dwarflinker_parallel::OffsetToUnitTy = typedef function_ref<CompileUnit *(uint64_t Offset)> |
Definition at line 19 of file DWARFLinkerCompileUnit.h.
using llvm::dwarflinker_parallel::OutSectionDataTy = typedef SmallString<0> |
Type for section data.
Definition at line 177 of file OutputSections.h.
using llvm::dwarflinker_parallel::RangesTy = typedef AddressRangesMap |
Mapped value in the address map is the offset to apply to the linked address.
Definition at line 24 of file AddressesMap.h.
using llvm::dwarflinker_parallel::StringEntry = typedef StringMapEntry<std::nullopt_t> |
StringEntry keeps data of the string: the length, external offset and a string body which is placed right after StringEntry.
Definition at line 24 of file StringPool.h.
using llvm::dwarflinker_parallel::TranslatorFuncTy = typedef std::function<StringRef(StringRef)> |
Definition at line 24 of file DWARFLinkerGlobalData.h.
using llvm::dwarflinker_parallel::TypeEntry = typedef StringMapEntry<std::atomic<TypeEntryBody *> > |
Definition at line 26 of file TypePool.h.
|
strong |
List of tracked debug tables.
Definition at line 37 of file OutputSections.h.
Enumerator | |
---|---|
Resolve | |
AvoidResolving |
Definition at line 43 of file DWARFLinkerCompileUnit.h.
|
inline |
This function calls Iteration()
until it returns false.
If number of iterations exceeds MaxCounter
then an Error is returned. This function should be used for loops which assumed to have number of iterations significantly smaller than MaxCounter
to avoid infinite looping in error cases.
Definition at line 22 of file Utils.h.
References llvm::createStringError(), llvm::Expected< T >::get(), llvm::Error::success(), and llvm::Expected< T >::takeError().
Referenced by hashFullyQualifiedName(), llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::link(), and llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::linkSingleCompileUnit().
Definition at line 281 of file DWARFLinkerImpl.cpp.
References llvm::DWARFDie::find(), and llvm::dwarf::toUnsigned().
Referenced by llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::isClangModuleRef(), llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::loadClangModule(), and llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::registerModuleReference().
|
static |
Definition at line 390 of file DependencyTracker.cpp.
References assert(), llvm::dwarflinker_parallel::CompileUnit::Both, llvm::dwarflinker_parallel::CompileUnit::DIEInfo::getPlacement(), llvm_unreachable, llvm::dwarflinker_parallel::CompileUnit::NotSet, Placement, llvm::dwarflinker_parallel::CompileUnit::PlainDwarf, and llvm::dwarflinker_parallel::CompileUnit::TypeTable.
Referenced by llvm::dwarflinker_parallel::DependencyTracker::markDIEEntryAsKeptRec().
ArrayRef< dwarf::Attribute > llvm::dwarflinker_parallel::getODRAttributes | ( | ) |
Definition at line 1873 of file DWARFLinkerCompileUnit.cpp.
Referenced by llvm::dwarflinker_parallel::SyntheticTypeNameBuilder::addTypeName(), and llvm::dwarflinker_parallel::DependencyTracker::maybeAddReferencedRoots().
|
static |
Definition at line 302 of file DWARFLinkerImpl.cpp.
References llvm::DWARFDie::find(), remapPath(), and llvm::dwarf::toString().
Referenced by llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::link(), and llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::registerModuleReference().
const StringLiteral & llvm::dwarflinker_parallel::getSectionName | ( | DebugSectionKind | SectionKind | ) |
Return the name of the section.
Definition at line 25 of file OutputSections.cpp.
References SectionNames.
Referenced by llvm::dwarflinker_parallel::SectionDescriptor::getName(), llvm::dwarflinker_parallel::OutputSections::getSectionDescriptor(), and parseDebugTableName().
|
static |
Definition at line 168 of file SyntheticTypeNameBuilder.cpp.
References llvm::dwarflinker_parallel::UnitEntryPairTy::CU, llvm::dwarflinker_parallel::UnitEntryPairTy::DieEntry, llvm::dwarflinker_parallel::CompileUnit::find(), llvm::dwarflinker_parallel::UnitEntryPairTy::getNamespaceOrigin(), llvm::DWARFDebugInfoEntry::getTag(), and llvm_unreachable.
Referenced by llvm::dwarflinker_parallel::SyntheticTypeNameBuilder::addDIETypeName(), and llvm::dwarflinker_parallel::SyntheticTypeNameBuilder::addParentName().
|
static |
Definition at line 17 of file AcceleratorRecordsSaver.cpp.
References llvm::consumeError(), llvm::djbHash(), llvm::DWARFFormValue::FC_Reference, llvm::DWARFDie::find(), finiteLoop(), llvm::DWARFDie::getName(), llvm::DWARFDie::getParent(), llvm::DWARFDie::getTag(), hashFullyQualifiedName(), if(), llvm::DWARFDie::isValid(), Name, Resolve, and llvm::ShortName.
Referenced by hashFullyQualifiedName(), and llvm::dwarflinker_parallel::AcceleratorRecordsSaver::save().
bool llvm::dwarflinker_parallel::isAlreadyMarked | ( | const CompileUnit::DIEInfo & | Info, |
CompileUnit::DieOutputPlacement | NewPlacement | ||
) |
Definition at line 301 of file DependencyTracker.cpp.
References llvm::dwarflinker_parallel::CompileUnit::Both, Info, llvm_unreachable, llvm::dwarflinker_parallel::CompileUnit::NotSet, llvm::dwarflinker_parallel::CompileUnit::PlainDwarf, and llvm::dwarflinker_parallel::CompileUnit::TypeTable.
Referenced by isAlreadyMarked(), llvm::dwarflinker_parallel::DependencyTracker::markDIEEntryAsKeptRec(), and llvm::dwarflinker_parallel::DependencyTracker::markParentsAsKeepingChildren().
bool llvm::dwarflinker_parallel::isAlreadyMarked | ( | const UnitEntryPairTy & | Entry, |
CompileUnit::DieOutputPlacement | NewPlacement | ||
) |
Definition at line 323 of file DependencyTracker.cpp.
References isAlreadyMarked().
|
static |
Definition at line 203 of file DWARFLinkerUnit.h.
Referenced by llvm::dwarflinker_parallel::CompileUnit::CompileUnit(), and llvm::dwarflinker_parallel::DWARFLinkerImpl::link().
std::optional< DebugSectionKind > llvm::dwarflinker_parallel::parseDebugTableName | ( | llvm::StringRef | SecName | ) |
Recognise the table name and match it with the DebugSectionKind.
Definition at line 29 of file OutputSections.cpp.
References AppleNames, AppleNamespaces, AppleObjC, AppleTypes, DebugAbbrev, DebugAddr, DebugARanges, DebugFrame, DebugInfo, DebugLine, DebugLineStr, DebugLoc, DebugLocLists, DebugMacinfo, DebugMacro, DebugNames, DebugPubNames, DebugPubTypes, DebugRange, DebugRngLists, DebugStr, DebugStrOffsets, llvm::Default, llvm::StringRef::find_first_not_of(), getSectionName(), and llvm::StringRef::substr().
Referenced by llvm::dwarflinker_parallel::SectionDescriptor::setSizesForSectionCreatedByAsmPrinter().
|
static |
Definition at line 290 of file DWARFLinkerImpl.cpp.
References llvm::sys::path::replace_path_prefix().
Referenced by getPCMFile().
|
static |
Resolve the relative path to a build artifact referenced by DWARF by applying DW_AT_comp_dir.
Definition at line 277 of file DWARFLinkerImpl.cpp.
References llvm::sys::path::append(), and llvm::dwarf::toString().
Referenced by llvm::dwarflinker_parallel::DWARFLinkerImpl::LinkContext::loadClangModule().
|
staticconstexpr |
Definition at line 62 of file OutputSections.h.
|
staticconstexpr |
Definition at line 17 of file OutputSections.cpp.
Referenced by getSectionName().
|
static |