9#ifndef LLVM_DWARFLINKERPARALLEL_DWARFLINKER_H
10#define LLVM_DWARFLINKERPARALLEL_DWARFLINKER_H
88namespace dwarflinker_parallel {
142 static std::unique_ptr<DWARFLinker>
static fatal_error_handler_t ErrorHandler
ppc ctr loops PowerPC CTR Loops Verify
This class is intended to be used as a driving class for all asm writers.
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.
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...
This class represents DWARF information for source file and it's address map.
virtual ExtraDwarfEmitter * getEmitter()=0
Returns previously created dwarf emitter. May be nullptr.
std::function< void(const DWARFFile &File, llvm::StringRef Output)> InputVerificationHandlerTy
virtual Error link()=0
Link debug info for added files.
std::map< std::string, std::string > SwiftInterfacesMapTy
AccelTableKind
The kind of accelerator tables we should emit.
@ DebugNames
.debug_names.
@ Apple
.apple_names, .apple_namespaces, .apple_types, .apple_objc.
@ Pub
.debug_pubnames, .debug_pubtypes
std::function< ErrorOr< DWARFFile & >(StringRef ContainerName, StringRef Path)> ObjFileLoaderTy
std::function< void(const Twine &Warning, StringRef Context, const DWARFDie *DIE)> MessageHandlerTy
std::map< std::string, std::string > ObjectPrefixMapTy
static std::unique_ptr< DWARFLinker > createLinker(MessageHandlerTy ErrorHandler, MessageHandlerTy WarningHandler, TranslatorFuncTy StringsTranslator=nullptr)
Creates dwarf linker instance.
OutputFileType
Type of output file.
virtual ~DWARFLinker()=default
virtual void addObjectFile(DWARFFile &File, ObjFileLoaderTy Loader=nullptr, CompileUnitHandlerTy OnCUDieLoaded=[](const DWARFUnit &) {})=0
Add object file to be linked.
std::function< StringRef(StringRef)> TranslatorFuncTy
virtual Error createEmitter(const Triple &TheTriple, OutputFileType FileType, raw_pwrite_stream &OutFile)=0
Creates emitter for output dwarf.
An efficient, type-erasing, non-owning reference to a callable.
An abstract base class for streams implementations that also support a pwrite operation.
virtual void setVerbosity(bool Verbose)=0
Allows to generate log of linking process to the standard output.
virtual void setNumThreads(unsigned NumThreads)=0
Use specified number of threads for parallel files linking.
virtual void setAllowNonDeterministicOutput(bool AllowNonDeterministicOutput)=0
Allow generating valid, but non-deterministic output.
virtual void setSwiftInterfacesMap(SwiftInterfacesMapTy *Map)=0
Set map for Swift interfaces.
virtual void setUpdateIndexTablesOnly(bool UpdateIndexTablesOnly)=0
Update index tables only(do not modify rest of DWARF).
virtual Error setTargetDWARFVersion(uint16_t TargetDWARFVersion)=0
Set target DWARF version.
virtual void setKeepFunctionForStatic(bool KeepFunctionForStatic)=0
Set to keep the enclosing function for a static variable.
virtual void setObjectPrefixMap(ObjectPrefixMapTy *Map)=0
Set prefix map for objects.
virtual void setVerifyInputDWARF(bool Verify)=0
Verify the input DWARF.
virtual void addAccelTableKind(AccelTableKind Kind)=0
Add kind of accelerator tables to be generated.
virtual void setPrependPath(const std::string &Ppath)=0
Set prepend path for clang modules.
virtual void setStatistics(bool Statistics)=0
Print statistics to standard output.
virtual void setNoODR(bool NoODR)=0
Do not unique types according to ODR.
virtual void setEstimatedObjfilesAmount(unsigned ObjFilesNum)=0
Set estimated objects files amount, for preliminary data allocation.
virtual void setInputVerificationHandler(InputVerificationHandlerTy Handler)=0
Set verification handler which would be used to report verification errors.
This is an optimization pass for GlobalISel generic memory operations.