LLVM API Documentation
Collects and handles line tables information in a CodeView format. More...
#include <WinCodeViewLineTables.h>
Classes | |
struct | FileNameRegistryTy |
struct | FunctionInfo |
struct | InstrInfoTy |
Public Member Functions | |
WinCodeViewLineTables (AsmPrinter *Asm) | |
~WinCodeViewLineTables () | |
void | setSymbolSize (const llvm::MCSymbol *, uint64_t) override |
For symbols that have a size designated (e.g. common symbols), this tracks that size. | |
void | endModule () override |
Emit the COFF section that holds the line table information. | |
void | beginFunction (const MachineFunction *MF) override |
Gather pre-function debug information. | |
void | endFunction (const MachineFunction *) override |
Gather post-function debug information. | |
void | beginInstruction (const MachineInstr *MI) override |
Process beginning of an instruction. | |
void | endInstruction () override |
Process end of an instruction. |
Collects and handles line tables information in a CodeView format.
Definition at line 32 of file WinCodeViewLineTables.h.
Definition at line 104 of file WinCodeViewLineTables.cpp.
References llvm::MCObjectFileInfo::getCOFFDebugSymbolsSection(), llvm::MachineModuleInfo::getModule(), llvm::Module::getNamedMetadata(), llvm::AsmPrinter::getObjFileLowering(), llvm::AsmPrinter::MMI, and llvm::MachineModuleInfo::setDebugInfoAvailability().
llvm::WinCodeViewLineTables::~WinCodeViewLineTables | ( | ) | [inline] |
Definition at line 117 of file WinCodeViewLineTables.h.
References llvm::LibFunc::free, and I.
void llvm::WinCodeViewLineTables::beginFunction | ( | const MachineFunction * | MF | ) | [override, virtual] |
Gather pre-function debug information.
Implements llvm::AsmPrinterHandler.
Definition at line 264 of file WinCodeViewLineTables.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::count(), llvm::MachineInstr::FrameSetup, llvm::DebugLoc::getFnDebugLoc(), llvm::MachineFunction::getFunction(), llvm::MachineModuleInfo::hasDebugInfo(), llvm::DebugLoc::isUnknown(), llvm::AArch64CC::MI, llvm::AsmPrinter::MMI, and llvm::SmallVectorTemplateBase< T, isPodLike >::push_back().
void llvm::WinCodeViewLineTables::beginInstruction | ( | const MachineInstr * | MI | ) | [override, virtual] |
Process beginning of an instruction.
Implements llvm::AsmPrinterHandler.
Definition at line 326 of file WinCodeViewLineTables.cpp.
References llvm::MachineInstr::FrameSetup, llvm::MachineInstr::getDebugLoc(), llvm::MachineInstr::getFlag(), llvm::MachineInstr::isDebugValue(), llvm::DebugLoc::isUnknown(), and llvm::AsmPrinter::MF.
void llvm::WinCodeViewLineTables::endFunction | ( | const MachineFunction * | MF | ) | [override, virtual] |
Gather post-function debug information.
Implements llvm::AsmPrinterHandler.
Definition at line 306 of file WinCodeViewLineTables.cpp.
References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::count(), llvm::MCContext::CreateTempSymbol(), llvm::MCStreamer::EmitLabel(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::erase(), llvm::MCStreamer::getContext(), llvm::MachineFunction::getFunction(), llvm::AsmPrinter::OutStreamer, and llvm::SmallVectorTemplateBase< T, isPodLike >::pop_back().
void llvm::WinCodeViewLineTables::endInstruction | ( | ) | [inline, override, virtual] |
Process end of an instruction.
Implements llvm::AsmPrinterHandler.
Definition at line 140 of file WinCodeViewLineTables.h.
void llvm::WinCodeViewLineTables::endModule | ( | ) | [override, virtual] |
Emit the COFF section that holds the line table information.
Implements llvm::AsmPrinterHandler.
Definition at line 215 of file WinCodeViewLineTables.cpp.
References llvm::MCStreamer::AddComment(), llvm::COFF::DEBUG_INDEX_SUBSECTION, llvm::COFF::DEBUG_SECTION_MAGIC, llvm::COFF::DEBUG_STRING_TABLE_SUBSECTION, llvm::MCStreamer::EmitBytes(), llvm::MCStreamer::EmitFill(), llvm::AsmPrinter::EmitInt32(), llvm::AsmPrinter::EmitInt8(), llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT >::empty(), llvm::MCObjectFileInfo::getCOFFDebugSymbolsSection(), llvm::AsmPrinter::getObjFileLowering(), I, llvm::AsmPrinter::OutStreamer, llvm::SmallVectorTemplateCommon< T, typename >::size(), and llvm::MCStreamer::SwitchSection().
void llvm::WinCodeViewLineTables::setSymbolSize | ( | const llvm::MCSymbol * | Sym, |
uint64_t | Size | ||
) | [inline, override, virtual] |
For symbols that have a size designated (e.g. common symbols), this tracks that size.
Implements llvm::AsmPrinterHandler.
Definition at line 125 of file WinCodeViewLineTables.h.