LLVM
8.0.1
|
DwarfExpression implementation for singular DW_AT_location. More...
#include "CodeGen/AsmPrinter/DwarfExpression.h"
Public Member Functions | |
DIEDwarfExpression (const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE) | |
DIELoc * | finalize () |
Public Member Functions inherited from llvm::DwarfExpression | |
DwarfExpression (unsigned DwarfVersion) | |
void | finalize () |
This needs to be called last to commit any pending changes. More... | |
void | addSignedConstant (int64_t Value) |
Emit a signed constant. More... | |
void | addUnsignedConstant (uint64_t Value) |
Emit an unsigned constant. More... | |
void | addUnsignedConstant (const APInt &Value) |
Emit an unsigned constant. More... | |
bool | isMemoryLocation () const |
bool | isUnknownLocation () const |
void | setMemoryLocationKind () |
Lock this down to become a memory location description. More... | |
bool | addMachineRegExpression (const TargetRegisterInfo &TRI, DIExpressionCursor &Expr, unsigned MachineReg, unsigned FragmentOffsetInBits=0) |
Emit a machine register location. More... | |
void | addExpression (DIExpressionCursor &&Expr, unsigned FragmentOffsetInBits=0) |
Emit all remaining operations in the DIExpressionCursor. More... | |
void | addFragmentOffset (const DIExpression *Expr) |
If applicable, emit an empty DW_OP_piece / DW_OP_bit_piece to advance to the fragment described by Expr . More... | |
Additional Inherited Members | |
Protected Types inherited from llvm::DwarfExpression | |
enum | { Unknown = 0, Register, Memory, Implicit } |
The kind of location description being produced. More... | |
Protected Member Functions inherited from llvm::DwarfExpression | |
void | setSubRegisterPiece (unsigned SizeInBits, unsigned OffsetInBits) |
Push a DW_OP_piece / DW_OP_bit_piece for emitting later, if one is needed to represent a subregister. More... | |
void | maskSubRegister () |
Add masking operations to stencil out a subregister. More... | |
void | emitConstu (uint64_t Value) |
Emit a normalized unsigned constant. More... | |
void | addReg (int DwarfReg, const char *Comment=nullptr) |
Emit a DW_OP_reg operation. More... | |
void | addBReg (int DwarfReg, int Offset) |
Emit a DW_OP_breg operation. More... | |
void | addFBReg (int Offset) |
Emit DW_OP_fbreg <Offset>. More... | |
bool | addMachineReg (const TargetRegisterInfo &TRI, unsigned MachineReg, unsigned MaxSize=~1U) |
Emit a partial DWARF register operation. More... | |
void | addOpPiece (unsigned SizeInBits, unsigned OffsetInBits=0) |
Emit a DW_OP_piece or DW_OP_bit_piece operation for a variable fragment. More... | |
void | addShr (unsigned ShiftBy) |
Emit a shift-right dwarf operation. More... | |
void | addAnd (unsigned Mask) |
Emit a bitwise and dwarf operation. More... | |
void | addStackValue () |
Emit a DW_OP_stack_value, if supported. More... | |
~DwarfExpression ()=default | |
Protected Attributes inherited from llvm::DwarfExpression | |
SmallVector< Register, 2 > | DwarfRegs |
The register location, if any. More... | |
uint64_t | OffsetInBits = 0 |
Current Fragment Offset in Bits. More... | |
unsigned | DwarfVersion |
unsigned | SubRegisterSizeInBits = 0 |
Sometimes we need to add a DW_OP_bit_piece to describe a subregister. More... | |
unsigned | SubRegisterOffsetInBits = 0 |
enum llvm::DwarfExpression:: { ... } | LocationKind = Unknown |
The kind of location description being produced. More... | |
DwarfExpression implementation for singular DW_AT_location.
Definition at line 269 of file DwarfExpression.h.
DIEDwarfExpression::DIEDwarfExpression | ( | const AsmPrinter & | AP, |
DwarfUnit & | DU, | ||
DIELoc & | DIE | ||
) |
Definition at line 50 of file DwarfUnit.cpp.
References llvm::DwarfUnit::addSInt(), llvm::DwarfUnit::addUInt(), llvm::TargetRegisterInfo::getFrameRegister(), llvm::AsmPrinter::MF, and TRI.
|
inline |
Definition at line 282 of file DwarfExpression.h.
References llvm::DwarfExpression::finalize().
Referenced by llvm::DwarfCompileUnit::addAddress(), llvm::DwarfCompileUnit::addComplexAddress(), and llvm::DwarfCompileUnit::constructLabelDIE().