|
LLVM 24.0.0git
|
A lightweight wrapper around an expression operand. More...
#include "llvm/IR/DebugInfoMetadata.h"
Public Member Functions | |
| ExprOperand ()=default | |
| ExprOperand (const uint64_t *Op) | |
| operator bool () const | |
| const uint64_t * | get () 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. | |
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.
|
default |
Referenced by llvm::DIExpression::ArgOp::classof(), llvm::DIExpression::ConstuOp::classof(), llvm::DIExpression::ConvertOp::classof(), llvm::DIExpression::EntryValueOp::classof(), llvm::DIExpression::ExtractBitsOp::classof(), llvm::DIExpression::FragmentOp::classof(), llvm::DIExpression::PlusUconstOp::classof(), llvm::DIExpression::TagOffsetOp::classof(), llvm::DIExpression::ArgOp::llvm::CastInfo, llvm::DIExpression::ConstuOp::llvm::CastInfo, llvm::DIExpression::ConvertOp::llvm::CastInfo, llvm::DIExpression::EntryValueOp::llvm::CastInfo, llvm::DIExpression::ExtractBitsOp::llvm::CastInfo, llvm::DIExpression::FragmentOp::llvm::CastInfo, llvm::DIExpression::PlusUconstOp::llvm::CastInfo, and llvm::DIExpression::TagOffsetOp::llvm::CastInfo.
Definition at line 3536 of file DebugInfoMetadata.h.
|
inline |
Append the elements of this operand to V.
Definition at line 3574 of file DebugInfoMetadata.h.
Definition at line 3540 of file DebugInfoMetadata.h.
Referenced by appendToVector().
Get an argument to the operand.
Never returns the operand itself. The operand has to be present and I has to be less than getNumArgs().
Definition at line 3557 of file DebugInfoMetadata.h.
Referenced by llvm::DIExpression::ConvertOp::getBitSize(), llvm::DIExpression::ConvertOp::getEncoding(), llvm::DIExpression::ArgOp::getIndex(), llvm::DIExpression::EntryValueOp::getNumOperations(), llvm::DIExpression::PlusUconstOp::getOffset(), llvm::DIExpression::ExtractBitsOp::getOffsetInBits(), llvm::DIExpression::FragmentOp::getOffsetInBits(), llvm::DIExpression::ExtractBitsOp::getSizeInBits(), llvm::DIExpression::FragmentOp::getSizeInBits(), llvm::DIExpression::TagOffsetOp::getTagOffset(), and llvm::DIExpression::ConstuOp::getValue().
|
inline |
Definition at line 3562 of file DebugInfoMetadata.h.
References getSize().
|
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().
| unsigned DIExpression::ExprOperand::getSize | ( | ) | const |
Return the size of the operand.
Return the number of elements in the operand (1 + args).
Definition at line 1733 of file DebugInfoMetadata.cpp.
References llvm::dwarf::DW_OP_LLVM_arg, llvm::dwarf::DW_OP_LLVM_convert, llvm::dwarf::DW_OP_LLVM_entry_value, llvm::dwarf::DW_OP_LLVM_extract_bits_sext, llvm::dwarf::DW_OP_LLVM_extract_bits_zext, llvm::dwarf::DW_OP_LLVM_fragment, llvm::dwarf::DW_OP_LLVM_tag_offset, and getOp().
Referenced by appendToVector(), and getNumArgs().
Return true if this is Opcode.
Definition at line 3551 of file DebugInfoMetadata.h.
References getOp().
Referenced by llvm::DIExpression::ExtractBitsOp::isSigned().
| 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().
|
inlineexplicit |
Definition at line 3538 of file DebugInfoMetadata.h.