LLVM  10.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
Collaboration diagram for llvm::DebugLocDwarfExpression:
Collaboration graph

Public Member Functions

 DebugLocDwarfExpression (unsigned DwarfVersion, ByteStreamer &BS, DwarfCompileUnit &CU)
- Public Member Functions inherited from llvm::DwarfExpression
bool isUnknownLocation () const
bool isMemoryLocation () const
bool isRegisterLocation () const
bool isImplicitLocation () const
bool isEntryValue () const
bool isParameterValue ()
 DwarfExpression (unsigned DwarfVersion, DwarfCompileUnit &CU)
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...
void setEntryValueFlag ()
 Lock this down to become an entry value location. More...
void setCallSiteParamValueFlag ()
 Lock this down to become a call site parameter location. More...
bool addMachineRegExpression (const TargetRegisterInfo &TRI, DIExpressionCursor &Expr, unsigned MachineReg, unsigned FragmentOffsetInBits=0)
 Emit a machine register location. More...
void addEntryValueExpression (DIExpressionCursor &ExprCursor)
 Emit entry value dwarf operation. 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...
void emitLegacySExt (unsigned FromBits)
void emitLegacyZExt (unsigned FromBits)

Additional Inherited Members

- Public Attributes inherited from llvm::DwarfExpression
Optional< uint8_t > TagOffset
- Protected Types inherited from llvm::DwarfExpression
enum  { Unknown = 0, Register, Memory, Implicit }
 The kind of location description being produced. More...
enum  { EntryValue = 1, CallSiteParamValue }
 The flags 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 SubRegisterSizeInBits: 16
 Sometimes we need to add a DW_OP_bit_piece to describe a subregister. More...
unsigned SubRegisterOffsetInBits: 16
unsigned LocationKind: 3
unsigned LocationFlags: 2
unsigned DwarfVersion: 4

Detailed Description

DwarfExpression implementation for .debug_loc entries.

Definition at line 310 of file DwarfExpression.h.

Constructor & Destructor Documentation

◆ DebugLocDwarfExpression()

llvm::DebugLocDwarfExpression::DebugLocDwarfExpression ( unsigned  DwarfVersion,
ByteStreamer BS,
DwarfCompileUnit CU 

Definition at line 322 of file DwarfExpression.h.

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