LLVM 20.0.0git
|
#include "llvm/MC/MCDwarf.h"
Public Member Functions | |
MCDwarfLineTableHeader ()=default | |
Expected< unsigned > | tryGetFile (StringRef &Directory, StringRef &FileName, std::optional< MD5::MD5Result > Checksum, std::optional< StringRef > Source, uint16_t DwarfVersion, unsigned FileNumber=0) |
std::pair< MCSymbol *, MCSymbol * > | Emit (MCStreamer *MCOS, MCDwarfLineTableParams Params, std::optional< MCDwarfLineStr > &LineStr) const |
std::pair< MCSymbol *, MCSymbol * > | Emit (MCStreamer *MCOS, MCDwarfLineTableParams Params, ArrayRef< char > SpecialOpcodeLengths, std::optional< MCDwarfLineStr > &LineStr) const |
void | resetMD5Usage () |
void | trackMD5Usage (bool MD5Used) |
bool | isMD5UsageConsistent () const |
void | setRootFile (StringRef Directory, StringRef FileName, std::optional< MD5::MD5Result > Checksum, std::optional< StringRef > Source) |
void | resetFileTable () |
Public Attributes | |
MCSymbol * | Label = nullptr |
SmallVector< std::string, 3 > | MCDwarfDirs |
SmallVector< MCDwarfFile, 3 > | MCDwarfFiles |
StringMap< unsigned > | SourceIdMap |
std::string | CompilationDir |
MCDwarfFile | RootFile |
bool | HasAnySource = false |
|
default |
std::pair< MCSymbol *, MCSymbol * > MCDwarfLineTableHeader::Emit | ( | MCStreamer * | MCOS, |
MCDwarfLineTableParams | Params, | ||
ArrayRef< char > | SpecialOpcodeLengths, | ||
std::optional< MCDwarfLineStr > & | LineStr | ||
) | const |
Definition at line 495 of file MCDwarf.cpp.
References llvm::MCContext::createTempSymbol(), DWARF2_LINE_DEFAULT_IS_STMT, llvm::MCDwarfLineTableParams::DWARF2LineBase, llvm::MCDwarfLineTableParams::DWARF2LineRange, llvm::MCStreamer::emitAbsoluteSymbolDiff(), llvm::MCStreamer::emitDwarfLineStartLabel(), llvm::MCStreamer::emitDwarfUnitLength(), llvm::MCStreamer::emitInt16(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitLabel(), llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCodePointerSize(), llvm::MCStreamer::getContext(), llvm::MCContext::getDwarfFormat(), llvm::dwarf::getDwarfOffsetByteSize(), llvm::MCContext::getDwarfVersion(), llvm::MCAsmInfo::getMinInstAlignment(), Label, llvm::Length, and llvm::ArrayRef< T >::size().
std::pair< MCSymbol *, MCSymbol * > MCDwarfLineTableHeader::Emit | ( | MCStreamer * | MCOS, |
MCDwarfLineTableParams | Params, | ||
std::optional< MCDwarfLineStr > & | LineStr | ||
) | const |
Definition at line 297 of file MCDwarf.cpp.
References assert(), llvm::MCDwarfLineTableParams::DWARF2LineOpcodeBase, and Emit().
Referenced by llvm::MCDwarfDwoLineTable::Emit(), Emit(), and llvm::MCDwarfLineTable::emitCU().
|
inline |
Definition at line 296 of file MCDwarf.h.
References MCDwarfFiles.
|
inline |
Definition at line 312 of file MCDwarf.h.
References llvm::SmallVectorImpl< T >::clear(), HasAnySource, MCDwarfDirs, MCDwarfFiles, llvm::MCDwarfFile::Name, resetMD5Usage(), and RootFile.
|
inline |
Definition at line 288 of file MCDwarf.h.
Referenced by resetFileTable().
|
inline |
Definition at line 300 of file MCDwarf.h.
References llvm::MCDwarfFile::Checksum, CompilationDir, llvm::MCDwarfFile::DirIndex, HasAnySource, llvm::MCDwarfFile::Name, RootFile, llvm::MCDwarfFile::Source, and trackMD5Usage().
|
inline |
Definition at line 292 of file MCDwarf.h.
Referenced by setRootFile(), and tryGetFile().
Expected< unsigned > MCDwarfLineTableHeader::tryGetFile | ( | StringRef & | Directory, |
StringRef & | FileName, | ||
std::optional< MD5::MD5Result > | Checksum, | ||
std::optional< StringRef > | Source, | ||
uint16_t | DwarfVersion, | ||
unsigned | FileNumber = 0 |
||
) |
Definition at line 593 of file MCDwarf.cpp.
References assert(), llvm::SmallVectorTemplateCommon< T, typename >::begin(), CompilationDir, llvm::StringRef::empty(), llvm::sys::path::filename(), llvm::find(), HasAnySource, llvm::inconvertibleErrorCode(), llvm::StringMap< ValueTy, AllocatorTy >::insert(), isRootFile(), MCDwarfDirs, MCDwarfFiles, llvm::sys::path::parent_path(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), RootFile, llvm::SmallVectorBase< Size_T >::size(), SourceIdMap, llvm::dwarf::toStringRef(), and trackMD5Usage().
Referenced by llvm::MCDwarfLineTable::tryGetFile().
std::string llvm::MCDwarfLineTableHeader::CompilationDir |
Definition at line 266 of file MCDwarf.h.
Referenced by setRootFile(), and tryGetFile().
bool llvm::MCDwarfLineTableHeader::HasAnySource = false |
Definition at line 268 of file MCDwarf.h.
Referenced by resetFileTable(), setRootFile(), and tryGetFile().
MCSymbol* llvm::MCDwarfLineTableHeader::Label = nullptr |
SmallVector<std::string, 3> llvm::MCDwarfLineTableHeader::MCDwarfDirs |
Definition at line 263 of file MCDwarf.h.
Referenced by resetFileTable(), and tryGetFile().
SmallVector<MCDwarfFile, 3> llvm::MCDwarfLineTableHeader::MCDwarfFiles |
Definition at line 264 of file MCDwarf.h.
Referenced by isMD5UsageConsistent(), resetFileTable(), and tryGetFile().
MCDwarfFile llvm::MCDwarfLineTableHeader::RootFile |
Definition at line 267 of file MCDwarf.h.
Referenced by resetFileTable(), setRootFile(), and tryGetFile().
Definition at line 265 of file MCDwarf.h.
Referenced by tryGetFile().