LLVM 22.0.0git
|
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 Description & | getDescription () const |
uint8_t | getCode () const |
LLVM_ABI std::optional< unsigned > | getSubCode () const |
uint64_t | getNumOperands () const |
ArrayRef< uint64_t > | getRawOperands () const |
uint64_t | getRawOperand (unsigned Idx) const |
ArrayRef< uint64_t > | getOperandEndOffsets () const |
uint64_t | getOperandEndOffset (unsigned Idx) const |
uint64_t | getEndOffset () const |
bool | isError () const |
Friends | |
class | DWARFExpression::iterator |
class | DWARFVerifier |
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.
Enumerator | |
---|---|
DwarfNA | Serves as a marker for unused entries. |
Dwarf2 | |
Dwarf3 | |
Dwarf4 | |
Dwarf5 |
Definition at line 58 of file DWARFExpression.h.
Size and signedness of expression operations' operands.
Definition at line 36 of file DWARFExpression.h.
|
inline |
Definition at line 91 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), isVariableIndexable(), llvm::printCompactDWARFExpr(), llvm::printDwarfExpression(), and llvm::printOp().
|
inline |
Definition at line 90 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), and llvm::printOp().
|
inline |
Definition at line 102 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), and llvm::printDwarfExpression().
|
inline |
Definition at line 93 of file DWARFExpression.h.
References Operands.
Referenced by buildFromShuffleMostly(), combinevXi1ConstantToInteger(), llvm::SelectionDAG::computeKnownBits(), llvm::SelectionDAG::ComputeNumSignBits(), emitIntrinsicWithCC(), emitIntrinsicWithCCAndChain(), llvm::AMDGPU::HSAMD::MetadataStreamerMsgPackV4::emitPrintf(), llvm::SITargetLowering::getAsmOperandConstVal(), llvm::X86TargetLowering::getNegatedExpression(), getTestBitOperand(), llvm::SelectionDAG::isBaseWithConstantOffset(), llvm::SITargetLowering::isCanonicalized(), isConstantOrUndefBUILD_VECTOR(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), llvm::SelectionDAG::isKnownNeverNaN(), isScalarToVector(), isSimpleVIDSequence(), isSplatBV(), llvm::VETargetLowering::legalizePackedAVL(), LowerAVXCONCAT_VECTORS(), llvm::HexagonTargetLowering::LowerBUILD_VECTOR(), lowerBUILD_VECTOR(), LowerBUILD_VECTORvXbf16(), LowerBUILD_VECTORvXi1(), lowerBuildVectorOfConstants(), lowerBuildVectorViaDominantValues(), llvm::AMDGPUTargetLowering::LowerCONCAT_VECTORS(), llvm::HexagonTargetLowering::LowerCONCAT_VECTORS(), LowerCONCAT_VECTORS(), LowerCONCAT_VECTORS_i1(), LowerCONCAT_VECTORSvXi1(), lowerDSPIntr(), llvm::SparcTargetLowering::LowerF128Op(), lowerFixedVectorSegLoadIntrinsics(), lowerFixedVectorSegStoreIntrinsics(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::RISCVTargetLowering::LowerOperation(), lowerPrmtIntrinsic(), llvm::LanaiTargetLowering::LowerSHL_PARTS(), lowerVectorIntrinsicScalars(), llvm::makeFollowupLoopID(), llvm::ISD::matchUnaryPredicateImpl(), llvm::X86InstrInfo::optimizeCompareInstr(), promoteVCIXScalar(), replaceBoolVectorBitcast(), llvm::TargetLowering::ShrinkDemandedOp(), llvm::TargetLowering::SimplifyDemandedBits(), llvm::TargetLowering::SimplifyDemandedVectorElts(), llvm::X86TargetLowering::SimplifyDemandedVectorEltsForTargetNode(), SplitStrictFPVectorOp(), SplitVectorOp(), splitVectorOp(), llvm::VETargetLowering::splitVectorOp(), SplitVPOp(), and llvm::UpgradeModuleFlags().
Definition at line 99 of file DWARFExpression.h.
References Idx.
Referenced by llvm::DwarfDebug::emitDebugLocEntry().
Definition at line 96 of file DWARFExpression.h.
Definition at line 95 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), llvm::printCompactDWARFExpr(), llvm::printDwarfExpression(), and llvm::printOp().
Definition at line 94 of file DWARFExpression.h.
References Operands.
Referenced by llvm::printOp().
std::optional< unsigned > llvm::DWARFExpression::Operation::getSubCode | ( | ) | const |
Definition at line 239 of file DWARFExpression.cpp.
References llvm::DWARFExpression::Operation::Description::Op, Operands, llvm::SmallVectorBase< Size_T >::size(), and SizeSubOpLEB.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), and llvm::printCompactDWARFExpr().
|
inline |
Definition at line 103 of file DWARFExpression.h.
Referenced by isVariableIndexable(), llvm::DWARFExpression::iterator::operator++(), and llvm::printOp().
|
friend |
Definition at line 79 of file DWARFExpression.h.
|
friend |
Definition at line 80 of file DWARFExpression.h.