LLVM  14.0.0git
Classes | Public Types | Public Member Functions | Static Public Member Functions | Friends | List of all members
llvm::DWARFExpression::Operation Class Reference

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

#include "llvm/DebugInfo/DWARF/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, WasmLocationArg = 30, SignBit = 0x80, SignedSize1 = SignBit | Size1,
  SignedSize2 = SignBit | Size2, SignedSize4 = SignBit | Size4, SignedSize8 = SignBit | Size8, SignedSizeLEB = SignBit | SizeLEB,
  SizeNA = 0xFF
}
 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
 
uint64_t getRawOperand (unsigned Idx) const
 
uint64_t getOperandEndOffset (unsigned Idx) const
 
uint64_t getEndOffset () const
 
bool isError () const
 
bool print (raw_ostream &OS, DIDumpOptions DumpOpts, const DWARFExpression *Expr, const MCRegisterInfo *RegInfo, DWARFUnit *U, bool isEH) const
 

Static Public Member Functions

static bool verify (const Operation &Op, DWARFUnit *U)
 Verify Op. Does not affect the return of isError(). More...
 

Friends

class DWARFExpression::iterator
 

Detailed Description

This class represents an Operation in the Expression.

Each operation can have up to 2 oprerands.

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 35 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 
WasmLocationArg 
SignBit 
SignedSize1 
SignedSize2 
SignedSize4 
SignedSize8 
SignedSizeLEB 
SizeNA 

Unused operands get this encoding.

Definition at line 38 of file DWARFExpression.h.

Member Function Documentation

◆ getCode()

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

Definition at line 90 of file DWARFExpression.h.

◆ getDescription()

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

Definition at line 89 of file DWARFExpression.h.

◆ getEndOffset()

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

Definition at line 95 of file DWARFExpression.h.

◆ getOperandEndOffset()

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

Definition at line 92 of file DWARFExpression.h.

◆ getRawOperand()

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

Definition at line 91 of file DWARFExpression.h.

References Operands.

◆ isError()

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

Definition at line 96 of file DWARFExpression.h.

References llvm::lltok::Error.

◆ print()

bool llvm::DWARFExpression::Operation::print ( raw_ostream OS,
DIDumpOptions  DumpOpts,
const DWARFExpression Expr,
const MCRegisterInfo RegInfo,
DWARFUnit U,
bool  isEH 
) const

◆ verify()

bool llvm::DWARFExpression::Operation::verify ( const Operation Op,
DWARFUnit U 
)
static

Verify Op. Does not affect the return of isError().

Definition at line 360 of file DWARFExpression.cpp.

References llvm::DWARFUnit::getDIEForOffset(), llvm::DWARFUnit::getOffset(), and llvm::Check::Size.

Friends And Related Function Documentation

◆ DWARFExpression::iterator

friend class DWARFExpression::iterator
friend

Definition at line 80 of file DWARFExpression.h.


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