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

DwarfExpression implementation for .debug_loc entries. More...

#include "CodeGen/AsmPrinter/DwarfExpression.h"

Inheritance diagram for llvm::DebugLocDwarfExpression:
Inheritance graph
[legend]
Collaboration diagram for llvm::DebugLocDwarfExpression:
Collaboration graph
[legend]

Public Member Functions

 DebugLocDwarfExpression (unsigned DwarfVersion, ByteStreamer &BS)
 
- 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 .debug_loc entries.

Definition at line 248 of file DwarfExpression.h.

Constructor & Destructor Documentation

◆ DebugLocDwarfExpression()

llvm::DebugLocDwarfExpression::DebugLocDwarfExpression ( unsigned  DwarfVersion,
ByteStreamer BS 
)
inline

Definition at line 258 of file DwarfExpression.h.


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