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.