LLVM 22.0.0git
llvm::DWARFExpression::Operation Class Reference

This class represents an Operation in the Expression. More...

#include "llvm/DebugInfo/DWARF/LowLevel/DWARFExpression.h"

Classes

struct  Description
 Description of the encoding of one expression Op. More...

Public Types

enum  Encoding : uint8_t {
  Size1 = 0 , Size2 = 1 , Size4 = 2 , Size8 = 3 ,
  SizeLEB = 4 , SizeAddr = 5 , SizeRefAddr = 6 , SizeBlock = 7 ,
  BaseTypeRef = 8 , SizeSubOpLEB = 9 , WasmLocationArg = 30 , SignBit = 0x80 ,
  SignedSize1 = SignBit | Size1 , SignedSize2 = SignBit | Size2 , SignedSize4 = SignBit | Size4 , SignedSize8 = SignBit | Size8 ,
  SignedSizeLEB = SignBit | SizeLEB
}
 Size and signedness of expression operations' operands. More...
enum  DwarfVersion : uint8_t {
  DwarfNA , Dwarf2 = 2 , Dwarf3 , Dwarf4 ,
  Dwarf5
}

Public Member Functions

const DescriptiongetDescription () const
uint8_t getCode () const
LLVM_ABI std::optional< unsignedgetSubCode () const
uint64_t getNumOperands () const
ArrayRef< uint64_tgetRawOperands () const
uint64_t getRawOperand (unsigned Idx) const
ArrayRef< uint64_tgetOperandEndOffsets () const
uint64_t getOperandEndOffset (unsigned Idx) const
uint64_t getEndOffset () const
bool isError () const

Friends

class DWARFExpression::iterator
class DWARFVerifier

Detailed Description

This class represents an Operation in the Expression.

An Operation can be in Error state (check with isError()). This means that it couldn't be decoded successfully and if it is the case, all others fields contain undefined values.

Definition at line 33 of file DWARFExpression.h.

Member Enumeration Documentation

◆ DwarfVersion

Enumerator
DwarfNA 

Serves as a marker for unused entries.

Dwarf2 
Dwarf3 
Dwarf4 
Dwarf5 

Definition at line 58 of file DWARFExpression.h.

◆ Encoding

Size and signedness of expression operations' operands.

Enumerator
Size1 
Size2 
Size4 
Size8 
SizeLEB 
SizeAddr 
SizeRefAddr 
SizeBlock 

Preceding operand contains block size.

BaseTypeRef 
SizeSubOpLEB 

The operand is a ULEB128 encoded SubOpcode.

This is only valid for the first operand of an operation.

WasmLocationArg 
SignBit 
SignedSize1 
SignedSize2 
SignedSize4 
SignedSize8 
SignedSizeLEB 

Definition at line 36 of file DWARFExpression.h.

Member Function Documentation

◆ getCode()

uint8_t llvm::DWARFExpression::Operation::getCode ( ) const
inline

Definition at line 91 of file DWARFExpression.h.

◆ getDescription()

const Description & llvm::DWARFExpression::Operation::getDescription ( ) const
inline

Definition at line 90 of file DWARFExpression.h.

◆ getEndOffset()

uint64_t llvm::DWARFExpression::Operation::getEndOffset ( ) const
inline

Definition at line 102 of file DWARFExpression.h.

◆ getNumOperands()

uint64_t llvm::DWARFExpression::Operation::getNumOperands ( ) const
inline

Definition at line 93 of file DWARFExpression.h.

◆ getOperandEndOffset()

uint64_t llvm::DWARFExpression::Operation::getOperandEndOffset ( unsigned Idx) const
inline

Definition at line 99 of file DWARFExpression.h.

◆ getOperandEndOffsets()

ArrayRef< uint64_t > llvm::DWARFExpression::Operation::getOperandEndOffsets ( ) const
inline

Definition at line 96 of file DWARFExpression.h.

◆ getRawOperand()

uint64_t llvm::DWARFExpression::Operation::getRawOperand ( unsigned Idx) const
inline

Definition at line 95 of file DWARFExpression.h.

◆ getRawOperands()

ArrayRef< uint64_t > llvm::DWARFExpression::Operation::getRawOperands ( ) const
inline

Definition at line 94 of file DWARFExpression.h.

◆ getSubCode()

std::optional< unsigned > llvm::DWARFExpression::Operation::getSubCode ( ) const

Definition at line 258 of file DWARFExpression.cpp.

References SizeSubOpLEB.

◆ isError()

bool llvm::DWARFExpression::Operation::isError ( ) const
inline

Definition at line 103 of file DWARFExpression.h.

◆ DWARFExpression::iterator

friend class DWARFExpression::iterator
friend

Definition at line 79 of file DWARFExpression.h.

◆ DWARFVerifier

friend class DWARFVerifier
friend

Definition at line 80 of file DWARFExpression.h.

References DWARFVerifier.

Referenced by DWARFVerifier.


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