LLVM  6.0.0svn
Public Member Functions | List of all members
llvm::DIEDwarfExpression Class Referencefinal

DwarfExpression implementation for singular DW_AT_location. More...

#include "CodeGen/AsmPrinter/DwarfExpression.h"

Inheritance diagram for llvm::DIEDwarfExpression:
Inheritance graph
Collaboration diagram for llvm::DIEDwarfExpression:
Collaboration graph

Public Member Functions

 DIEDwarfExpression (const AsmPrinter &AP, DwarfUnit &DU, DIELoc &DIE)
DIELocfinalize ()
- 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...
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 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...

Detailed Description

DwarfExpression implementation for singular DW_AT_location.

Definition at line 263 of file DwarfExpression.h.

Constructor & Destructor Documentation

◆ DIEDwarfExpression()

DIEDwarfExpression::DIEDwarfExpression ( const AsmPrinter AP,
DwarfUnit DU,

Member Function Documentation

◆ finalize()

DIELoc* llvm::DIEDwarfExpression::finalize ( )

The documentation for this class was generated from the following files: