LLVM: llvm::dwarf_linker::classic::DWARFLinker Class Reference (original ) (raw )The core of the Dwarf linking logic. More...
#include "[llvm/DWARFLinker/Classic/DWARFLinker.h](Classic%5F2DWARFLinker%5F8h%5Fsource.html)"
The core of the Dwarf linking logic.
The generation of the dwarf information from the object files will be driven by the selection of 'root DIEs', which are DIEs that describe variables or functions that resolves to the corresponding code section(and thus have entries in the Addresses map). All the debug information that will be generated(the DIEs, but also the line tables, ranges, ...) is derived from that set of root DIEs.
The root DIEs are identified because they contain relocations that points to code section(the low_pc for a function, the location for a variable). These relocations are called ValidRelocs in the AddressesInfo and are gathered as a very first step when we start processing a object file.
Definition at line 215 of file DWARFLinker.h .
◆ addAccelTableKind()
void llvm::dwarf_linker::classic::DWARFLinker::addAccelTableKind ( AccelTableKind Kind )
inlineoverridevirtual
◆ addObjectFile()Add object file to be linked.
Pre-load compile unit die. Call OnCUDieLoaded for each compile unit die. If specified File has reference to the Clang module then such module would be pre-loaded by Loader for !Update case.
Precondition
NoODR, Update options should be set before call to addObjectFile.
Implements llvm::dwarf_linker::DWARFLinkerBase .
Definition at line 2989 of file DWARFLinker.cpp .
References LLVM_UNLIKELY .
◆ createLinker()◆ link()
Error llvm::DWARFLinker::link ( )
overridevirtual
Link debug info for added objFiles. Object files are linked all together.
Implements llvm::dwarf_linker::DWARFLinkerBase .
Definition at line 3010 of file DWARFLinker.cpp .
References llvm::analyzeContextInfo() , llvm::dwarf_linker::DWARFLinkerBase::Apple , assert() , llvm::ThreadPoolInterface::async() , llvm::DIDumpOptions::ChildRecurseDepth , llvm::dwarf_linker::DWARFLinkerBase::DebugNames , E() , llvm::sys::path::filename() , llvm::formatv() , llvm::getDebugInfoSize() , llvm::getPCMFile() , llvm::dwarf_linker::classic::DeclContextTree::getRoot() , llvm::dwarf_linker::IndexedValuesMap< T >::getValues() , llvm::hardware_concurrency() , I , LHS , LLVM_LIKELY , LLVM_UNLIKELY , llvm::outs() , llvm::dwarf_linker::DWARFLinkerBase::Pub , RHS , llvm::BitVector::set() , llvm::sort() , llvm::Error::success() , llvm::toString() , llvm::DIDumpOptions::Verbose , llvm::verifyKeepChain() , llvm::SingleThreadExecutor::wait() , and llvm::Warning .
◆ setAllowNonDeterministicOutput()
void llvm::dwarf_linker::classic::DWARFLinker::setAllowNonDeterministicOutput ( bool )
inlineoverridevirtual
◆ setEstimatedObjfilesAmount()
void llvm::dwarf_linker::classic::DWARFLinker::setEstimatedObjfilesAmount ( unsigned ObjFilesNum )
inlineoverridevirtual
void llvm::dwarf_linker::classic::DWARFLinker::setInputVerificationHandler ( InputVerificationHandlerTy Handler )
inlineoverridevirtual
◆ setKeepFunctionForStatic()
void llvm::dwarf_linker::classic::DWARFLinker::setKeepFunctionForStatic ( bool KeepFunctionForStatic )
inlineoverridevirtual
◆ setNoODR()
void llvm::dwarf_linker::classic::DWARFLinker::setNoODR ( bool NoODR )
inlineoverridevirtual
◆ setNumThreads()
void llvm::dwarf_linker::classic::DWARFLinker::setNumThreads ( unsigned NumThreads )
inlineoverridevirtual
◆ setObjectPrefixMap()
void llvm::dwarf_linker::classic::DWARFLinker::setObjectPrefixMap ( ObjectPrefixMapTy * Map )
inlineoverridevirtual
◆ setOutputDWARFEmitter()
void llvm::dwarf_linker::classic::DWARFLinker::setOutputDWARFEmitter ( DwarfEmitter * Emitter )
inline
◆ setPrependPath()
void llvm::dwarf_linker::classic::DWARFLinker::setPrependPath ( StringRef Ppath )
inlineoverridevirtual
◆ setStatistics()
void llvm::dwarf_linker::classic::DWARFLinker::setStatistics ( bool Statistics )
inlineoverridevirtual
◆ setSwiftInterfacesMap()
void llvm::dwarf_linker::classic::DWARFLinker::setSwiftInterfacesMap ( SwiftInterfacesMapTy * Map )
inlineoverridevirtual
◆ setTargetDWARFVersion()
Error llvm::dwarf_linker::classic::DWARFLinker::setTargetDWARFVersion ( uint16_t TargetDWARFVersion )
inlineoverridevirtual
◆ setUpdateIndexTablesOnly()
void llvm::dwarf_linker::classic::DWARFLinker::setUpdateIndexTablesOnly ( bool Update )
inlineoverridevirtual
◆ setVerbosity()
void llvm::dwarf_linker::classic::DWARFLinker::setVerbosity ( bool Verbose )
inlineoverridevirtual
void llvm::dwarf_linker::classic::DWARFLinker::setVerifyInputDWARF ( bool Verify )
inlineoverridevirtual
The documentation for this class was generated from the following files: