15 #ifndef LLVM_CODEGEN_DEBUGHANDLERBASE_H 16 #define LLVM_CODEGEN_DEBUGHANDLERBASE_H 29 class MachineModuleInfo;
98 void identifyScopeMarkers();
102 LabelsBeforeInsn.
insert(std::make_pair(MI,
nullptr));
107 LabelsAfterInsn.
insert(std::make_pair(MI,
nullptr));
117 void endInstruction()
override;
133 static uint64_t getBaseTypeSize(
const DITypeRef TyRef);
For each inlined instance of a source-level label, keep the corresponding DBG_LABEL instruction...
This class represents lattice values for constants.
MCSymbol - Instances of this class represent a symbol name in the MC file, and MCSymbols are created ...
Collects and handles AsmPrinter objects required to build debug or EH information.
std::pair< iterator, bool > insert(const std::pair< KeyT, ValueT > &KV)
DebugLoc PrevInstLoc
Previous instruction's location information.
DbgLabelInstrMap DbgLabels
Mapping of inlined labels and DBG_LABEL machine instruction.
DbgValueHistoryMap DbgValues
History of DBG_VALUE and clobber instructions for each user variable.
Base class for the full range of assembler expressions which are needed for parsing.
Holds a subclass of DINode.
DenseMap< const MachineInstr *, MCSymbol * > LabelsAfterInsn
Maps instruction with label emitted after instruction.
void requestLabelBeforeInsn(const MachineInstr *MI)
Ensure that a label will be emitted before MI.
AsmPrinter * Asm
Target of debug info emission.
llvm::Optional< llvm::DIExpression::FragmentInfo > FragmentInfo
Present if the location is part of a larger variable.
This class is intended to be used as a driving class for all asm writers.
DenseMap< const MachineInstr *, MCSymbol * > LabelsBeforeInsn
Maps instruction with label emitted before instruction.
virtual void skippedNonDebugFunction()
Represents the location at which a variable is stored.
static Optional< DbgVariableLocation > extractFromMachineInstruction(const MachineInstr &Instruction)
Extract a VariableLocation from a MachineInstr.
DebugLoc PrologEndLoc
This location indicates end of function prologue and beginning of function body.
void requestLabelAfterInsn(const MachineInstr *MI)
Ensure that a label will be emitted after MI.
Representation of each machine instruction.
LexicalScopes - This class provides interface to collect and use lexical scoping information from mac...
Base class for debug information backends.
SmallVector< int64_t, 1 > LoadChain
Chain of offsetted loads necessary to load the value if it lives in memory.
MachineModuleInfo * MMI
Collected machine module information.
unsigned Register
Base register.
This class contains meta information specific to a module.