LLVM 20.0.0git
|
#include "llvm/MC/MCDwarf.h"
#include "llvm/ADT/ArrayRef.h"
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/STLExtras.h"
#include "llvm/ADT/ScopeExit.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/ADT/StringRef.h"
#include "llvm/ADT/Twine.h"
#include "llvm/BinaryFormat/Dwarf.h"
#include "llvm/Config/config.h"
#include "llvm/MC/MCAsmInfo.h"
#include "llvm/MC/MCContext.h"
#include "llvm/MC/MCExpr.h"
#include "llvm/MC/MCObjectFileInfo.h"
#include "llvm/MC/MCObjectStreamer.h"
#include "llvm/MC/MCRegisterInfo.h"
#include "llvm/MC/MCSection.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/Casting.h"
#include "llvm/Support/Endian.h"
#include "llvm/Support/EndianStream.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/MathExtras.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
#include <cassert>
#include <cstdint>
#include <optional>
#include <string>
#include <utility>
#include <vector>
Go to the source code of this file.
|
static |
Definition at line 774 of file MCDwarf.cpp.
References llvm::MCStreamer::emitULEB128IntValue(), and Name.
Referenced by EmitGenDwarfAbbrev().
|
static |
Definition at line 332 of file MCDwarf.cpp.
References forceExpAbs(), OS, and Size.
Referenced by emitFDESymbol(), EmitGenDwarfAranges(), EmitGenDwarfInfo(), and emitGenDwarfRanges().
|
static |
Definition at line 1325 of file MCDwarf.cpp.
References llvm::MCStreamer::emitInt8().
|
static |
Definition at line 1275 of file MCDwarf.cpp.
References llvm::MCAsmInfo::doDwarfFDESymbolsUseAbsDiff(), emitAbsValue(), llvm::MCStreamer::emitValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getExprForFDESymbol(), getSizeForEncoding(), and llvm::size().
|
static |
Definition at line 781 of file MCDwarf.cpp.
References llvm::dwarf::DW_CHILDREN_no, llvm::dwarf::DW_CHILDREN_yes, llvm::dwarf::DWARF64, EmitAbbrev(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitULEB128IntValue(), llvm::StringRef::empty(), llvm::MCContext::getCompilationDir(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfAbbrevSection(), llvm::MCContext::getDwarfDebugFlags(), llvm::MCContext::getDwarfFormat(), llvm::MCContext::getDwarfVersion(), llvm::MCContext::getGenDwarfSectionSyms(), llvm::MCContext::getObjectFileInfo(), and llvm::MCStreamer::switchSection().
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 830 of file MCDwarf.cpp.
References Addr, assert(), llvm::MCSymbolRefExpr::create(), llvm::dwarf::DW_LENGTH_DWARF64, llvm::dwarf::DWARF64, emitAbsValue(), llvm::MCStreamer::emitInt16(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitIntValue(), llvm::MCStreamer::emitSymbolValue(), llvm::MCStreamer::emitValue(), llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCodePointerSize(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfARangesSection(), llvm::MCContext::getDwarfFormat(), llvm::dwarf::getDwarfOffsetByteSize(), llvm::MCContext::getGenDwarfSectionSyms(), llvm::MCContext::getObjectFileInfo(), llvm::dwarf::getUnitLengthFieldByteSize(), llvm::Length, makeEndMinusStartExpr(), llvm::MCAsmInfo::needsDwarfSectionOffsetDirective(), Size, llvm::MCStreamer::switchSection(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 909 of file MCDwarf.cpp.
References assert(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), llvm::dwarf::DW_LENGTH_DWARF64, llvm::dwarf::DWARF64, emitAbsValue(), llvm::MCStreamer::emitBytes(), llvm::MCStreamer::emitInt16(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitIntValue(), llvm::MCStreamer::emitLabel(), llvm::MCStreamer::emitSymbolValue(), llvm::MCStreamer::emitULEB128IntValue(), llvm::MCStreamer::emitValue(), llvm::SmallVectorBase< Size_T >::empty(), llvm::StringRef::empty(), End, llvm::sys::path::get_separator(), llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCodePointerSize(), llvm::MCContext::getCompilationDir(), llvm::MCStreamer::getContext(), llvm::MCContext::getDwarfDebugFlags(), llvm::MCContext::getDwarfDebugProducer(), llvm::MCContext::getDwarfFormat(), llvm::MCObjectFileInfo::getDwarfInfoSection(), llvm::dwarf::getDwarfOffsetByteSize(), llvm::MCContext::getDwarfVersion(), llvm::MCContext::getGenDwarfSectionSyms(), llvm::MCContext::getMCDwarfDirs(), llvm::MCContext::getMCDwarfFiles(), llvm::MCContext::getMCDwarfLineTable(), llvm::MCContext::getMCGenDwarfLabelEntries(), llvm::MCContext::getObjectFileInfo(), llvm::MCDwarfLineTable::getRootFile(), llvm::dwarf::getUnitLengthFieldByteSize(), llvm::Length, makeEndMinusStartExpr(), llvm::MCDwarfFile::Name, llvm::MCAsmInfo::needsDwarfSectionOffsetDirective(), llvm::SmallVectorBase< Size_T >::size(), llvm::MCStreamer::switchSection(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 1083 of file MCDwarf.cpp.
References llvm::MCStreamer::AddComment(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), emitAbsValue(), llvm::MCStreamer::emitFill(), llvm::MCStreamer::emitInt32(), llvm::MCStreamer::emitInt8(), llvm::MCStreamer::emitIntValue(), llvm::MCStreamer::emitLabel(), llvm::mcdwarf::emitListsTableHeaderStart(), llvm::MCStreamer::emitULEB128Value(), llvm::MCStreamer::emitValue(), llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCodePointerSize(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfRangesSection(), llvm::MCObjectFileInfo::getDwarfRnglistsSection(), llvm::MCContext::getDwarfVersion(), llvm::MCContext::getGenDwarfSectionSyms(), llvm::MCContext::getObjectFileInfo(), makeEndMinusStartExpr(), llvm::MCStreamer::switchSection(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 395 of file MCDwarf.cpp.
References assert(), llvm::MCStreamer::emitBinaryData(), llvm::MCStreamer::emitBytes(), and llvm::MCStreamer::emitULEB128IntValue().
|
static |
Definition at line 1289 of file MCDwarf.cpp.
References llvm::MCStreamer::emitValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getExprForPersonalitySymbol(), getSizeForEncoding(), and llvm::size().
|
static |
Definition at line 320 of file MCDwarf.cpp.
References assert(), llvm::MCSymbolRefExpr::create(), llvm::MCContext::createTempSymbol(), llvm::MCAsmInfo::doesSetDirectiveSuppressReloc(), llvm::MCContext::getAsmInfo(), and OS.
Referenced by emitAbsValue().
Definition at line 1561 of file MCDwarf.cpp.
References llvm_unreachable.
|
static |
Definition at line 1244 of file MCDwarf.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCalleeSaveStackSlotSize(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::isStackGrowthDirectionUp(), and llvm::size().
|
static |
Definition at line 1254 of file MCDwarf.cpp.
References llvm::dwarf::DW_EH_PE_absptr, llvm::dwarf::DW_EH_PE_sdata2, llvm::dwarf::DW_EH_PE_sdata4, llvm::dwarf::DW_EH_PE_sdata8, llvm::dwarf::DW_EH_PE_signed, llvm::dwarf::DW_EH_PE_udata2, llvm::dwarf::DW_EH_PE_udata4, llvm::dwarf::DW_EH_PE_udata8, llvm::format(), llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCodePointerSize(), llvm::MCStreamer::getContext(), and llvm_unreachable.
Referenced by emitFDESymbol(), and EmitPersonality().
|
static |
Definition at line 584 of file MCDwarf.cpp.
References llvm::MCDwarfFile::Checksum, and llvm::MCDwarfFile::Name.
Referenced by llvm::MCDwarfLineTableHeader::tryGetFile().
|
inlinestatic |
Definition at line 123 of file MCDwarf.cpp.
References llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::create(), End, RHS, llvm::MCBinaryExpr::Sub, and llvm::MCSymbolRefExpr::VK_None.
Referenced by EmitGenDwarfAranges(), EmitGenDwarfInfo(), and emitGenDwarfRanges().
|
inlinestatic |
Definition at line 140 of file MCDwarf.cpp.
References llvm::MCBinaryExpr::Add, llvm::MCSymbolRefExpr::create(), llvm::MCConstantExpr::create(), llvm::MCBinaryExpr::create(), LHS, RHS, and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCDwarfLineStr::emitRef().
Definition at line 69 of file MCDwarf.cpp.
References llvm::MCContext::getAsmInfo(), and llvm::MCAsmInfo::getMinInstAlignment().
Referenced by llvm::MCDwarfLineAddr::encode(), and llvm::MCDwarfFrameEmitter::encodeAdvanceLoc().
|
static |
Given a special op, return the address skip amount (in units of DWARF2_LINE_MIN_INSN_LENGTH).
Definition at line 685 of file MCDwarf.cpp.
References llvm::MCDwarfLineTableParams::DWARF2LineOpcodeBase, llvm::MCDwarfLineTableParams::DWARF2LineRange, and op.
Referenced by llvm::MCDwarfLineAddr::encode().