LLVM 24.0.0git
llvm::DIExpression::ExprOperand Class Reference

A lightweight wrapper around an expression operand. More...

#include "llvm/IR/DebugInfoMetadata.h"

Inheritance diagram for llvm::DIExpression::ExprOperand:
[legend]

Public Member Functions

 ExprOperand ()=default
 ExprOperand (const uint64_t *Op)
 operator bool () const
const uint64_tget () const
uint64_t getOp () const
 Get the operand code.
bool is (uint64_t Opcode) const
 Return true if this is Opcode.
uint64_t getArg (unsigned I) const
 Get an argument to the operand.
unsigned getNumArgs () const
LLVM_ABI unsigned getSize () const
 Return the size of the operand.
LLVM_ABI bool isNonEmitting () const
 Return true if CodeGen handles this operand without adding bytes to the DWARF expression.
void appendToVector (SmallVectorImpl< uint64_t > &V) const
 Append the elements of this operand to V.

Detailed Description

A lightweight wrapper around an expression operand.

TODO: Store arguments directly and change DIExpression to store a range of these.

Definition at line 3531 of file DebugInfoMetadata.h.

Constructor & Destructor Documentation

◆ ExprOperand() [1/2]

◆ ExprOperand() [2/2]

llvm::DIExpression::ExprOperand::ExprOperand ( const uint64_t * Op)
inlineexplicit

Definition at line 3536 of file DebugInfoMetadata.h.

Member Function Documentation

◆ appendToVector()

void llvm::DIExpression::ExprOperand::appendToVector ( SmallVectorImpl< uint64_t > & V) const
inline

Append the elements of this operand to V.

Definition at line 3574 of file DebugInfoMetadata.h.

References get(), and getSize().

◆ get()

const uint64_t * llvm::DIExpression::ExprOperand::get ( ) const
inline

Definition at line 3540 of file DebugInfoMetadata.h.

Referenced by appendToVector().

◆ getArg()

◆ getNumArgs()

unsigned llvm::DIExpression::ExprOperand::getNumArgs ( ) const
inline

Definition at line 3562 of file DebugInfoMetadata.h.

References getSize().

◆ getOp()

uint64_t llvm::DIExpression::ExprOperand::getOp ( ) const
inline

Get the operand code.

The operand has to be present.

Definition at line 3545 of file DebugInfoMetadata.h.

References assert().

Referenced by getSize(), is(), and isNonEmitting().

◆ getSize()

unsigned DIExpression::ExprOperand::getSize ( ) const

◆ is()

bool llvm::DIExpression::ExprOperand::is ( uint64_t Opcode) const
inline

Return true if this is Opcode.

Definition at line 3551 of file DebugInfoMetadata.h.

References getOp().

Referenced by llvm::DIExpression::ExtractBitsOp::isSigned().

◆ isNonEmitting()

bool DIExpression::ExprOperand::isNonEmitting ( ) const

Return true if CodeGen handles this operand without adding bytes to the DWARF expression.

Definition at line 1760 of file DebugInfoMetadata.cpp.

References llvm::dwarf::DW_OP_LLVM_tag_offset, and getOp().

◆ operator bool()

llvm::DIExpression::ExprOperand::operator bool ( ) const
inlineexplicit

Definition at line 3538 of file DebugInfoMetadata.h.


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