9#ifndef LLVM_DWARFLINKER_DWARFLINKERBASE_H
10#define LLVM_DWARFLINKER_DWARFLINKERBASE_H
24namespace dwarf_linker {
57 "debug_info",
"debug_line",
"debug_frame",
"debug_ranges",
58 "debug_rnglists",
"debug_loc",
"debug_loclists",
"debug_aranges",
59 "debug_abbrev",
"debug_macinfo",
"debug_macro",
"debug_addr",
60 "debug_str",
"debug_line_str",
"debug_str_offsets",
"debug_pubnames",
61 "debug_pubtypes",
"debug_names",
"apple_names",
"apple_namespac",
62 "apple_objc",
"apple_types"};
This file defines the DenseMap class.
ppc ctr loops PowerPC CTR Loops Verify
A structured debug information entry.
Utility class that carries the DWARF compile/type unit and the debug info entry in an object.
Lightweight error class with error context and mandatory checking.
SectionKind - This is a simple POD value that classifies the properties of a section.
A wrapper around a string literal that serves as a proxy for constructing global tables of StringRefs...
StringRef - Represent a constant reference to a string, i.e.
Twine - A lightweight data structure for efficiently representing the concatenation of temporary valu...
This class represents DWARF information for source file and it's address map.
The base interface for DWARFLinker implementations.
virtual void setNumThreads(unsigned NumThreads)=0
Use specified number of threads for parallel files linking.
std::map< std::string, std::string > ObjectPrefixMapTy
virtual void addObjectFile(DWARFFile &File, ObjFileLoaderTy Loader=nullptr, CompileUnitHandlerTy OnCUDieLoaded=[](const DWARFUnit &) {})=0
Add an object file to be linked.
virtual void setEstimatedObjfilesAmount(unsigned ObjFilesNum)=0
Set estimated objects files amount, for preliminary data allocation.
virtual void setKeepFunctionForStatic(bool KeepFunctionForStatic)=0
Set whether to keep the enclosing function for a static variable.
virtual ~DWARFLinkerBase()=default
virtual void setAllowNonDeterministicOutput(bool)=0
Allows generating non-deterministic output in exchange for more parallelism.
virtual void setSwiftInterfacesMap(SwiftInterfacesMapTy *Map)=0
Set map for Swift interfaces.
virtual Error link()=0
Link the debug info for all object files added through calls to addObjectFile.
virtual void setObjectPrefixMap(ObjectPrefixMapTy *Map)=0
Set prefix map for objects.
virtual void addAccelTableKind(AccelTableKind Kind)=0
Add kind of accelerator tables to be generated.
virtual void setVerbosity(bool Verbose)=0
A number of methods setting various linking options: Enable logging to standard output.
virtual Error setTargetDWARFVersion(uint16_t TargetDWARFVersion)=0
Set target DWARF version.
AccelTableKind
The kind of accelerator tables to be emitted.
@ DebugNames
.debug_names.
@ Apple
.apple_names, .apple_namespaces, .apple_types, .apple_objc.
@ Pub
.debug_pubnames, .debug_pubtypes
virtual void setVerifyInputDWARF(bool Verify)=0
Verify the input DWARF.
std::function< void(const Twine &Warning, StringRef Context, const DWARFDie *DIE)> MessageHandlerTy
virtual void setUpdateIndexTablesOnly(bool Update)=0
Update index tables only (do not modify rest of DWARF).
virtual void setStatistics(bool Statistics)=0
Print statistics to standard output.
std::function< void(const DWARFFile &File, llvm::StringRef Output)> InputVerificationHandlerTy
std::map< std::string, std::string > SwiftInterfacesMapTy
OutputFileType
Type of output file.
std::function< ErrorOr< DWARFFile & >(StringRef ContainerName, StringRef Path)> ObjFileLoaderTy
virtual void setPrependPath(StringRef Ppath)=0
Set prepend path for clang modules.
virtual void setInputVerificationHandler(InputVerificationHandlerTy Handler)=0
Set verification handler used to report verification errors.
virtual void setNoODR(bool NoODR)=0
Do not unique types according to ODR.
An efficient, type-erasing, non-owning reference to a callable.
static constexpr StringLiteral SectionNames[SectionKindsNum]
std::optional< DebugSectionKind > parseDebugTableName(StringRef Name)
Recognise the table name and match it with the DebugSectionKind.
static constexpr const StringLiteral & getSectionName(DebugSectionKind SectionKind)
Return the name of the section.
DebugSectionKind
List of tracked debug tables.
static constexpr size_t SectionKindsNum
This is an optimization pass for GlobalISel generic memory operations.