|
LLVM
4.0.0
|
DwarfExpression implementation for singular DW_AT_location. More...
#include <DwarfExpression.h>
Public Member Functions | |
| DIEDwarfExpression (const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE) | |
| void | EmitOp (uint8_t Op, const char *Comment=nullptr) override |
| Output a dwarf operand and an optional assembler comment. More... | |
| void | EmitSigned (int64_t Value) override |
| Emit a raw signed value. More... | |
| void | EmitUnsigned (uint64_t Value) override |
| Emit a raw unsigned value. More... | |
| bool | isFrameRegister (const TargetRegisterInfo &TRI, unsigned MachineReg) override |
| Return whether the given machine register is the frame register in the current function. More... | |
| DIELoc * | finalize () |
Public Member Functions inherited from llvm::DwarfExpression | |
| DwarfExpression (unsigned DwarfVersion) | |
| virtual | ~DwarfExpression () |
| void | finalize () |
| This needs to be called last to commit any pending changes. More... | |
| void | AddReg (int DwarfReg, const char *Comment=nullptr) |
| Emit a dwarf register operation. More... | |
| void | AddRegIndirect (int DwarfReg, int Offset, bool Deref=false) |
| Emit an (double-)indirect 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 expression. More... | |
| void | AddStackValue () |
| Emit a DW_OP_stack_value, if supported. More... | |
| bool | AddMachineRegIndirect (const TargetRegisterInfo &TRI, unsigned MachineReg, int Offset=0) |
| Emit an indirect dwarf register operation for the given machine register. More... | |
| bool | AddMachineReg (const TargetRegisterInfo &TRI, unsigned MachineReg, unsigned MaxSize=~1U) |
| Emit a partial DWARF register operation. 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 | 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 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... | |
Protected Attributes inherited from llvm::DwarfExpression | |
| unsigned | DwarfVersion |
| uint64_t | OffsetInBits = 0 |
| Current Fragment Offset in Bits. More... | |
| unsigned | SubRegisterSizeInBits = 0 |
| Sometimes we need to add a DW_OP_bit_piece to describe a subregister. More... | |
| unsigned | SubRegisterOffsetInBits = 0 |
DwarfExpression implementation for singular DW_AT_location.
Definition at line 216 of file DwarfExpression.h.
| DIEDwarfExpression::DIEDwarfExpression | ( | const AsmPrinter & | AP, |
| DwarfUnit & | DU, | ||
| DIELoc & | DIE | ||
| ) |
Definition at line 52 of file DwarfUnit.cpp.
|
overridevirtual |
Output a dwarf operand and an optional assembler comment.
Implements llvm::DwarfExpression.
Definition at line 57 of file DwarfUnit.cpp.
References llvm::DwarfUnit::addUInt().
|
overridevirtual |
Emit a raw signed value.
Implements llvm::DwarfExpression.
Definition at line 61 of file DwarfUnit.cpp.
References llvm::DwarfUnit::addSInt().
|
overridevirtual |
Emit a raw unsigned value.
Implements llvm::DwarfExpression.
Definition at line 65 of file DwarfUnit.cpp.
References llvm::DwarfUnit::addUInt().
|
inline |
Definition at line 228 of file DwarfExpression.h.
References llvm::DwarfExpression::finalize().
Referenced by llvm::DwarfCompileUnit::addAddress(), and llvm::DwarfUnit::addBlockByrefAddress().
|
overridevirtual |
Return whether the given machine register is the frame register in the current function.
Implements llvm::DwarfExpression.
Definition at line 69 of file DwarfUnit.cpp.
References llvm::TargetRegisterInfo::getFrameRegister(), and llvm::AsmPrinter::MF.
1.8.6