LLVM 22.0.0git
DWARFLinker.cpp File Reference

Go to the source code of this file.

Classes

struct  llvm::DebugInfoSize
 Hold the input and output of the debug info size in bytes. More...
struct  llvm::ContextWorklistItem
 This class represents an item in the work list. More...
 A broken link in the keep chain. More...
struct  llvm::AttributeLinkedOffsetFixup
struct  llvm::TrackedRow
 A helper struct to help keep track of the association between the input and output rows during line table rewriting. More...

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.

Enumerations

enum class  llvm::ContextWorklistItemType : uint8_t { llvm::AnalyzeContextInfo , llvm::UpdateChildPruning , llvm::UpdatePruning }
 The distinct types of work performed by the work loop in analyzeContextInfo. More...

Functions

static uint64_t llvm::getDebugInfoSize (DWARFContext &Dwarf)
 Compute the total size of the debug info.
static CompileUnitllvm::getUnitForOffset (const UnitListTy &Units, uint64_t Offset)
 Similar to DWARFUnitSection::getUnitForOffset(), but returning our CompileUnit object instead.
static bool llvm::isODRAttribute (uint16_t Attr)
static bool llvm::isTypeTag (uint16_t Tag)
static void llvm::resolveRelativeObjectPath (SmallVectorImpl< char > &Buf, DWARFDie CU)
 Resolve the relative path to a build artifact referenced by DWARF by applying DW_AT_comp_dir.
static void llvm::analyzeImportedModule (const DWARFDie &DIE, CompileUnit &CU, DWARFLinkerBase::SwiftInterfacesMapTy *ParseableSwiftInterfaces, std::function< void(const Twine &, const DWARFDie &)> ReportWarning)
 Collect references to parseable Swift interfaces in imported DW_TAG_module blocks.
static bool llvm::updatePruning (const DWARFDie &Die, CompileUnit &CU, uint64_t ModulesEndOffset)
static void llvm::updateChildPruning (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &ChildInfo)
static void llvm::analyzeContextInfo (const DWARFDie &DIE, unsigned ParentIdx, CompileUnit &CU, DeclContext *CurrentDeclContext, DeclContextTree &Contexts, uint64_t ModulesEndOffset, DWARFLinkerBase::SwiftInterfacesMapTy *ParseableSwiftInterfaces, std::function< void(const Twine &, const DWARFDie &)> ReportWarning)
 Recursive helper to build the global DeclContext information and gather the child->parent relationships in the original compile unit.
static bool llvm::dieNeedsChildrenToBeMeaningful (uint32_t Tag)
static bool llvm::isTlsAddressCode (uint8_t DW_OP_Code)
static void llvm::constructSeqOffsettoOrigRowMapping (CompileUnit &Unit, const DWARFDebugLine::LineTable &LT, DenseMap< uint64_t, unsigned > &SeqOffToOrigRow)
static void llvm::updateChildIncompleteness (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &ChildInfo)
 Helper that updates the completeness of the current DIE based on the completeness of one of its children.
static void llvm::updateRefIncompleteness (const DWARFDie &Die, CompileUnit &CU, CompileUnit::DIEInfo &RefInfo)
 Helper that updates the completeness of the current DIE based on the completeness of the DIEs it references.
static bool llvm::isODRCanonicalCandidate (const DWARFDie &Die, CompileUnit &CU)
static void llvm::verifyKeepChain (CompileUnit &CU)
 Verify the keep chain by looking for DIEs that are kept but who's parent isn't.
static bool llvm::shouldSkipAttribute (bool Update, DWARFAbbreviationDeclaration::AttributeSpec AttrSpec, bool SkipPC)
static void llvm::patchAddrBase (DIE &Die, DIEInteger Offset)
static void llvm::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.
static void llvm::patchStmtList (DIE &Die, DIEInteger Offset)
static uint64_t llvm::getDwoId (const DWARFDie &CUDie)
static std::string llvm::remapPath (StringRef Path, const DWARFLinkerBase::ObjectPrefixMapTy &ObjectPrefixMap)
static std::string llvm::getPCMFile (const DWARFDie &CUDie, const DWARFLinkerBase::ObjectPrefixMapTy *ObjectPrefixMap)