LLVM 20.0.0git
|
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 , 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 |
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 |
bool | print (raw_ostream &OS, DIDumpOptions DumpOpts, const DWARFExpression *Expr, DWARFUnit *U) const |
Static Public Member Functions | |
static bool | verify (const Operation &Op, DWARFUnit *U) |
Verify Op . Does not affect the return of isError(). | |
Friends | |
class | DWARFExpression::iterator |
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 32 of file DWARFExpression.h.
Enumerator | |
---|---|
DwarfNA | Serves as a marker for unused entries. |
Dwarf2 | |
Dwarf3 | |
Dwarf4 | |
Dwarf5 |
Definition at line 57 of file DWARFExpression.h.
Size and signedness of expression operations' operands.
Definition at line 35 of file DWARFExpression.h.
|
inline |
Definition at line 88 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), isVariableIndexable(), llvm::DWARFExpression::print(), and llvm::printCompactDWARFExpr().
|
inline |
Definition at line 87 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), and llvm::DwarfDebug::emitDebugLocEntry().
|
inline |
Definition at line 99 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), and llvm::DWARFExpression::print().
|
inline |
Definition at line 90 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::omp::getDeviceKernels(), llvm::X86TargetLowering::getNegatedExpression(), getNVPTXMDNode(), getTestBitOperand(), llvm::SelectionDAG::isBaseWithConstantOffset(), llvm::SITargetLowering::isCanonicalized(), isConstantOrUndefBUILD_VECTOR(), IsElementEquivalent(), llvm::SelectionDAG::isGuaranteedNotToBeUndefOrPoison(), 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(), llvm::HexagonTargetLowering::LowerINLINEASM(), llvm::RISCVTargetLowering::LowerOperation(), 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 96 of file DWARFExpression.h.
References Idx.
Referenced by llvm::DwarfDebug::emitDebugLocEntry().
Definition at line 93 of file DWARFExpression.h.
Definition at line 92 of file DWARFExpression.h.
Referenced by llvm::dwarf_linker::parallel::CompileUnit::cloneDieAttrExpression(), llvm::DwarfDebug::emitDebugLocEntry(), llvm::dwarf_linker::AddressesMap::getVariableRelocAdjustment(), llvm::DWARFExpression::print(), and llvm::printCompactDWARFExpr().
Definition at line 91 of file DWARFExpression.h.
References Operands.
std::optional< unsigned > llvm::DWARFExpression::Operation::getSubCode | ( | ) | const |
Definition at line 296 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 100 of file DWARFExpression.h.
Referenced by isVariableIndexable(), and llvm::DWARFExpression::iterator::operator++().
bool llvm::DWARFExpression::Operation::print | ( | raw_ostream & | OS, |
DIDumpOptions | DumpOpts, | ||
const DWARFExpression * | Expr, | ||
DWARFUnit * | U | ||
) | const |
Definition at line 302 of file DWARFExpression.cpp.
References assert(), BaseTypeRef, llvm::StringRef::empty(), llvm::format(), llvm::DataExtractor::getU8(), Name, llvm::Offset, llvm::DWARFExpression::Operation::Description::Op, Operands, llvm::dwarf::OperationEncodingString(), OS, llvm::prettyPrintBaseTypeRef(), llvm::DWARFExpression::prettyPrintRegisterOp(), SignBit, Signed, llvm::SmallVectorBase< Size_T >::size(), Size, SizeBlock, SizeSubOpLEB, llvm::dwarf::SubOperationEncodingString(), and WasmLocationArg.
Referenced by llvm::SPIRVGeneralDuplicatesTracker::buildDepsGraph(), emitDebugValueComment(), llvm::AMDGPUTargetLowering::LowerOperation(), llvm::MIPrinter::print(), llvm::DWARFExpression::print(), llvm::MachineInstr::print(), llvm::LanaiInstPrinter::printHi16AndImmOperand(), llvm::LanaiInstPrinter::printHi16ImmOperand(), llvm::R600InstPrinter::printLiteral(), llvm::LanaiInstPrinter::printLo16AndImmOperand(), llvm::LanaiInstPrinter::printMemImmOperand(), llvm::AArch64InstPrinter::printOperand(), llvm::PPCInstPrinter::printOperand(), llvm::NVPTXInstPrinter::printOperand(), llvm::X86IntelInstPrinter::printOperand(), llvm::WebAssemblyInstPrinter::printOperand(), llvm::LanaiInstPrinter::printOperand(), llvm::X86ATTInstPrinter::printOperand(), and llvm::X86InstPrinterCommon::printPCRelImm().
Verify Op
. Does not affect the return of isError().
Definition at line 399 of file DWARFExpression.cpp.
References BaseTypeRef, llvm::DWARFExpression::Operation::Description::Op, llvm::SmallVectorBase< Size_T >::size(), and Size.
Referenced by llvm::DWARFExpression::verify().
|
friend |
Definition at line 78 of file DWARFExpression.h.