LLVM API Documentation
#include "llvm/MC/MCDwarf.h"
#include "llvm/ADT/Hashing.h"
#include "llvm/ADT/SmallString.h"
#include "llvm/ADT/Twine.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/MCRegisterInfo.h"
#include "llvm/MC/MCStreamer.h"
#include "llvm/MC/MCSymbol.h"
#include "llvm/Support/Debug.h"
#include "llvm/Support/ErrorHandling.h"
#include "llvm/Support/LEB128.h"
#include "llvm/Support/Path.h"
#include "llvm/Support/SourceMgr.h"
#include "llvm/Support/raw_ostream.h"
Go to the source code of this file.
Classes | |
struct | llvm::DenseMapInfo< CIEKey > |
Namespaces | |
llvm | |
List of target independent CodeGen pass IDs. | |
Macros | |
#define | SPECIAL_ADDR(op) (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE) |
#define | MAX_SPECIAL_ADDR_DELTA SPECIAL_ADDR(255) |
#define | DWARF2_LINE_OPCODE_BASE 13 |
#define | DWARF2_LINE_BASE -5 |
#define | DWARF2_LINE_RANGE 14 |
Functions | |
static uint64_t | ScaleAddrDelta (MCContext &Context, uint64_t AddrDelta) |
static const MCExpr * | MakeStartMinusEndExpr (const MCStreamer &MCOS, const MCSymbol &Start, const MCSymbol &End, int IntVal) |
static void | EmitDwarfLineTable (MCStreamer *MCOS, const MCSection *Section, const MCLineSection *LineSection, unsigned CUID) |
static void | EmitAbbrev (MCStreamer *MCOS, uint64_t Name, uint64_t Form) |
static void | EmitGenDwarfAbbrev (MCStreamer *MCOS) |
static void | EmitGenDwarfAranges (MCStreamer *MCOS, const MCSymbol *InfoSectionSymbol) |
static void | EmitGenDwarfInfo (MCStreamer *MCOS, const MCSymbol *AbbrevSectionSymbol, const MCSymbol *LineSectionSymbol) |
static int | getDataAlignmentFactor (MCStreamer &streamer) |
static unsigned | getSizeForEncoding (MCStreamer &streamer, unsigned symbolEncoding) |
static void | EmitSymbol (MCStreamer &streamer, const MCSymbol &symbol, unsigned symbolEncoding, const char *comment=0) |
static void | EmitPersonality (MCStreamer &streamer, const MCSymbol &symbol, unsigned symbolEncoding) |
static void | EmitEncodingByte (MCStreamer &Streamer, unsigned Encoding, StringRef Prefix) |
#define DWARF2_LINE_BASE -5 |
Definition at line 44 of file MCDwarf.cpp.
Referenced by llvm::MCDwarfFileTable::EmitCU(), and llvm::MCDwarfLineAddr::Encode().
#define DWARF2_LINE_OPCODE_BASE 13 |
Definition at line 40 of file MCDwarf.cpp.
Referenced by llvm::MCDwarfFileTable::EmitCU(), and llvm::MCDwarfLineAddr::Encode().
#define DWARF2_LINE_RANGE 14 |
Definition at line 47 of file MCDwarf.cpp.
Referenced by llvm::MCDwarfFileTable::EmitCU(), and llvm::MCDwarfLineAddr::Encode().
#define MAX_SPECIAL_ADDR_DELTA SPECIAL_ADDR(255) |
Definition at line 35 of file MCDwarf.cpp.
Referenced by llvm::MCDwarfLineAddr::Encode().
#define SPECIAL_ADDR | ( | op | ) | (((op) - DWARF2_LINE_OPCODE_BASE)/DWARF2_LINE_RANGE) |
Definition at line 32 of file MCDwarf.cpp.
|
static |
Definition at line 451 of file MCDwarf.cpp.
References llvm::MCStreamer::EmitULEB128IntValue().
Referenced by EmitGenDwarfAbbrev().
|
inlinestatic |
Definition at line 127 of file MCDwarf.cpp.
References llvm::MCLineSection::containEntriesForID(), llvm::MCContext::CreateTempSymbol(), llvm::dwarf::DW_LNS_negate_stmt, llvm::dwarf::DW_LNS_set_basic_block, llvm::dwarf::DW_LNS_set_column, llvm::dwarf::DW_LNS_set_epilogue_begin, llvm::dwarf::DW_LNS_set_file, llvm::dwarf::DW_LNS_set_isa, llvm::dwarf::DW_LNS_set_prologue_end, DWARF2_FLAG_BASIC_BLOCK, DWARF2_FLAG_EPILOGUE_BEGIN, DWARF2_FLAG_IS_STMT, DWARF2_FLAG_PROLOGUE_END, DWARF2_LINE_DEFAULT_IS_STMT, llvm::MCStreamer::EmitDwarfAdvanceLineAddr(), llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitULEB128IntValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfLineSection(), llvm::MCLineSection::getMCLineEntries(), llvm::MCContext::getObjectFileInfo(), llvm::MCAsmInfo::getPointerSize(), and llvm::MCStreamer::SwitchSection().
Referenced by llvm::MCDwarfFileTable::EmitCU().
|
static |
Definition at line 898 of file MCDwarf.cpp.
References llvm::MCStreamer::AddComment(), llvm::dwarf::DW_EH_PE_absptr, llvm::dwarf::DW_EH_PE_indirect, llvm::dwarf::DW_EH_PE_omit, llvm::dwarf::DW_EH_PE_pcrel, llvm::dwarf::DW_EH_PE_sdata4, llvm::dwarf::DW_EH_PE_sdata8, llvm::dwarf::DW_EH_PE_udata4, llvm::dwarf::DW_EH_PE_udata8, llvm::MCStreamer::EmitIntValue(), and llvm::MCStreamer::isVerboseAsm().
|
static |
Definition at line 458 of file MCDwarf.cpp.
References llvm::dwarf::DW_CHILDREN_no, llvm::dwarf::DW_CHILDREN_yes, EmitAbbrev(), llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitULEB128IntValue(), llvm::StringRef::empty(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfAbbrevSection(), llvm::MCContext::getDwarfDebugFlags(), llvm::MCContext::getObjectFileInfo(), and llvm::MCStreamer::SwitchSection().
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 503 of file MCDwarf.cpp.
References llvm::MCSymbolRefExpr::Create(), llvm::MCContext::CreateTempSymbol(), llvm::MCStreamer::EmitAbsValue(), llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitSymbolValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCObjectFileInfo::getDwarfARangesSection(), llvm::MCContext::getGenDwarfSection(), llvm::MCContext::getGenDwarfSectionStartSym(), llvm::MCContext::getObjectFileInfo(), llvm::MCAsmInfo::getPointerSize(), MakeStartMinusEndExpr(), llvm::MCContext::setGenDwarfSectionEndSym(), llvm::MCStreamer::SwitchSection(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 573 of file MCDwarf.cpp.
References llvm::MCSymbolRefExpr::Create(), llvm::MCContext::CreateTempSymbol(), llvm::dwarf::DW_LANG_Mips_Assembler, llvm::MCStreamer::EmitAbsValue(), llvm::MCStreamer::EmitBytes(), llvm::MCStreamer::EmitIntValue(), llvm::MCStreamer::EmitLabel(), llvm::MCStreamer::EmitSymbolValue(), llvm::MCStreamer::EmitULEB128IntValue(), llvm::StringRef::empty(), llvm::MCContext::getAsmInfo(), llvm::MCContext::getCompilationDir(), llvm::MCStreamer::getContext(), llvm::MCContext::getDwarfDebugFlags(), llvm::MCContext::getDwarfDebugProducer(), llvm::MCObjectFileInfo::getDwarfInfoSection(), llvm::MCGenDwarfLabelEntry::getFileNumber(), llvm::MCContext::getGenDwarfSectionEndSym(), llvm::MCContext::getGenDwarfSectionStartSym(), llvm::MCGenDwarfLabelEntry::getLabel(), llvm::MCGenDwarfLabelEntry::getLineNumber(), llvm::MCContext::getMCDwarfDirs(), llvm::MCContext::getMCDwarfFiles(), llvm::MCContext::getMCGenDwarfLabelEntries(), llvm::Intrinsic::getName(), llvm::MCGenDwarfLabelEntry::getName(), llvm::MCContext::getObjectFileInfo(), llvm::MCAsmInfo::getPointerSize(), MakeStartMinusEndExpr(), llvm::SmallVectorTemplateCommon< T >::size(), llvm::MCStreamer::SwitchSection(), and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCGenDwarfInfo::Emit().
|
static |
Definition at line 851 of file MCDwarf.cpp.
References llvm::MCStreamer::EmitValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getExprForPersonalitySymbol(), and getSizeForEncoding().
|
static |
Definition at line 839 of file MCDwarf.cpp.
References llvm::MCStreamer::AddComment(), llvm::MCStreamer::EmitAbsValue(), llvm::MCContext::getAsmInfo(), llvm::MCStreamer::getContext(), llvm::MCAsmInfo::getExprForFDESymbol(), getSizeForEncoding(), and llvm::MCStreamer::isVerboseAsm().
|
static |
Definition at line 808 of file MCDwarf.cpp.
References llvm::MCContext::getAsmInfo(), llvm::MCAsmInfo::getCalleeSaveStackSlotSize(), llvm::MCStreamer::getContext(), and llvm::MCAsmInfo::isStackGrowthDirectionUp().
|
static |
Definition at line 818 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::MCStreamer::getContext(), llvm::MCAsmInfo::getPointerSize(), and llvm_unreachable.
Referenced by EmitPersonality(), and EmitSymbol().
|
inlinestatic |
Definition at line 105 of file MCDwarf.cpp.
References llvm::MCConstantExpr::Create(), llvm::MCSymbolRefExpr::Create(), llvm::MCBinaryExpr::Create(), llvm::MCStreamer::getContext(), llvm::MCBinaryExpr::Sub, and llvm::MCSymbolRefExpr::VK_None.
Referenced by llvm::MCDwarfFileTable::EmitCU(), EmitGenDwarfAranges(), and EmitGenDwarfInfo().
|
inlinestatic |
Definition at line 49 of file MCDwarf.cpp.
References llvm::MCContext::getAsmInfo(), and llvm::MCAsmInfo::getMinInstAlignment().
Referenced by llvm::MCDwarfLineAddr::Encode(), and llvm::MCDwarfFrameEmitter::EncodeAdvanceLoc().