LLVM: llvm::sandboxir::User Class Reference (original) (raw)
A sandboxir::User has operands. More...
#include "[llvm/SandboxIR/User.h](SandboxIR%5F2User%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | op_iterator = OperandUseIterator |
| using | const_op_iterator = OperandUseIterator |
| using | op_range = iterator_range<op_iterator> |
| using | const_op_range = iterator_range<const_op_iterator> |
| Public Types inherited from llvm::sandboxir::Value | |
| enum class | ClassID : unsigned |
| using | use_iterator = UserUseIterator |
| using | const_use_iterator = UserUseIterator |
| using | user_iterator = mapped_iterator<sandboxir::UserUseIterator, UseToUser> |
| using | const_user_iterator = user_iterator |
| Static Public Member Functions | |
|---|---|
| static bool | classof (const Value *From) |
| For isa/dyn_cast. |
| Protected Member Functions | |
|---|---|
| User (ClassID ID, llvm::Value *V, Context &Ctx) | |
| Use | getOperandUseDefault (unsigned OpIdx, bool Verify) const |
| \Returns the Use edge that corresponds to OpIdx. | |
| virtual Use | getOperandUseInternal (unsigned OpIdx, bool Verify) const =0 |
| \Returns the Use for the OpIdx'th operand. | |
| unsigned | getUseOperandNoDefault (const Use &Use) const |
| The default implementation works only for single-LLVMIR-instruction Users and only if they match exactly the LLVM instruction. | |
| virtual unsigned | getUseOperandNo (const Use &Use) const =0 |
| \Returns the operand index of Use. | |
| void | swapOperandsInternal (unsigned OpIdxA, unsigned OpIdxB) |
| void | verifyUserOfLLVMUse (const llvm::Use &Use) const |
| Protected Member Functions inherited from llvm::sandboxir::Value | |
| void | clearValue () |
| LLVM_ABI | Value (ClassID SubclassID, llvm::Value *Val, Context &Ctx) |
| Value (const Value &)=delete | |
| Disable copies. | |
| Value & | operator= (const Value &)=delete |
| Additional Inherited Members | |
|---|---|
| Static Protected Member Functions inherited from llvm::sandboxir::Value | |
| static const char * | getSubclassIDStr (ClassID ID) |
| Protected Attributes inherited from llvm::sandboxir::Value | |
| ClassID | SubclassID |
| For isa/dyn_cast. | |
| unsigned | UID |
| A unique ID used for forming the name (used for debugging). | |
| llvm::Value * | Val = nullptr |
| The LLVM Value that corresponds to this SandboxIR Value. | |
| Context & | Ctx |
| All values point to the context. |
A sandboxir::User has operands.
Definition at line 59 of file User.h.
◆ const_op_iterator
◆ const_op_range
◆ op_iterator
◆ op_range
◆ classof()
◆ dumpCommonHeader()
| void llvm::sandboxir::User::dumpCommonHeader ( raw_ostream & OS) const | finalvirtual |
|---|
◆ dumpOS()
| void llvm::sandboxir::User::dumpOS ( raw_ostream & OS) const | inlineoverridevirtual |
|---|
◆ getNumOperands()
| virtual unsigned llvm::sandboxir::User::getNumOperands ( ) const | inlinevirtual |
|---|
◆ getOperand()
| Value * llvm::sandboxir::User::getOperand ( unsigned OpIdx) const | inline |
|---|
◆ getOperandUse()
| Use llvm::sandboxir::User::getOperandUse ( unsigned OpIdx) const | inline |
|---|
\Returns the operand edge for OpIdx.
NOTE: This should also work for OpIdx == getNumOperands(), which is used for op_end().
Definition at line 126 of file User.h.
References getOperandUseInternal(), OpIdx, and llvm::sandboxir::Value::Use.
Referenced by llvm::sandboxir::ShuffleVectorInst::commute(), llvm::sandboxir::CallBase::getArgOperandUse(), llvm::sandboxir::CallBase::getArgOperandUse(), llvm::User::getDescriptor(), getOperand(), setOperand(), swapOperandsInternal(), and llvm::sandboxir::SelectInst::swapValues().
◆ getOperandUseDefault()
| Use llvm::sandboxir::User::getOperandUseDefault ( unsigned OpIdx, bool Verify ) const | protected |
|---|
\Returns the Use edge that corresponds to OpIdx.
Note: This is the default implementation that works for instructions that match the underlying LLVM instruction. All others should use a different implementation.
Definition at line 58 of file User.cpp.
References assert(), llvm::cast(), llvm::sandboxir::Value::Ctx, getNumOperands(), llvm::isa(), OpIdx, llvm::sandboxir::Value::Use, User(), llvm::sandboxir::Value::Val, and Verify.
Referenced by llvm::sandboxir::Constant::getOperandUseInternal(), and llvm::sandboxir::GlobalObject::getOperandUseInternal().
◆ getOperandUseInternal()
| virtual Use llvm::sandboxir::User::getOperandUseInternal ( unsigned OpIdx, bool Verify ) const | protectedpure virtual |
|---|
◆ getUseOperandNo()
| virtual unsigned llvm::sandboxir::User::getUseOperandNo ( const Use & Use) const | protectedpure virtual |
|---|
\Returns the operand index of [Use](classllvm%5F1%5F1sandboxir%5F1%5F1Use.html "Represents a Def-use/Use-def edge in SandboxIR.").
Implemented in llvm::sandboxir::Constant, llvm::sandboxir::ConstantAggregateZero, llvm::sandboxir::ConstantFP, llvm::sandboxir::ConstantInt, llvm::sandboxir::ConstantPointerNull, llvm::sandboxir::ConstantTokenNone, llvm::sandboxir::DSOLocalEquivalent, llvm::sandboxir::GlobalObject, llvm::sandboxir::NoCFIValue, llvm::sandboxir::SingleLLVMInstructionImpl< LLVMT >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicCmpXchgInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::AtomicRMWInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BinaryOperator >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::BranchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CallBase >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CatchReturnInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CatchSwitchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CleanupReturnInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::CmpInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ExtractElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::FenceInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::FuncletPadInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::GetElementPtrInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::InsertElementInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::InsertValueInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::Instruction >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::LandingPadInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::PHINode >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ResumeInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ReturnInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SelectInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ShuffleVectorInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::StoreInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::SwitchInst >, llvm::sandboxir::SingleLLVMInstructionImpl< llvm::UnaryInstruction >, llvm::sandboxir::UndefValue, and llvm::sandboxir::UnreachableInst.
References llvm::sandboxir::Value::Use.
◆ getUseOperandNoDefault()
| unsigned llvm::sandboxir::User::getUseOperandNoDefault ( const Use & Use) const | inlineprotected |
|---|
◆ op_begin() [1/2]
| virtual op_iterator llvm::sandboxir::User::op_begin ( ) | inlinevirtual |
|---|
Definition at line 103 of file User.h.
References assert(), getOperandUseInternal(), llvm::isa(), and llvm::sandboxir::Value::Val.
Referenced by llvm::sandboxir::CallBase::arg_begin(), llvm::sandboxir::CallBase::arg_begin(), llvm::sandboxir::CallBase::data_operands_begin(), llvm::sandboxir::CallBase::data_operands_end(), llvm::sandboxir::CallBase::data_operands_end(), llvm::sandboxir::CatchSwitchInst::handler_begin(), llvm::sandboxir::CatchSwitchInst::handler_begin(), llvm::sandboxir::GetElementPtrInst::idx_begin(), op_begin(), operands(), and operands().
◆ op_begin() [2/2]
| virtual const_op_iterator llvm::sandboxir::User::op_begin ( ) const | inlinevirtual |
|---|
◆ op_end() [1/2]
| virtual op_iterator llvm::sandboxir::User::op_end ( ) | inlinevirtual |
|---|
◆ op_end() [2/2]
| virtual const_op_iterator llvm::sandboxir::User::op_end ( ) const | inlinevirtual |
|---|
◆ operands() [1/2]
| op_range llvm::sandboxir::User::operands ( ) | inline |
|---|
◆ operands() [2/2]
| const_op_range llvm::sandboxir::User::operands ( ) const | inline |
|---|
◆ replaceUsesOfWith()
| bool llvm::sandboxir::User::replaceUsesOfWith | ( | Value * | FromV, |
|---|---|---|---|
| Value * | ToV ) |
◆ setOperand()
| void llvm::sandboxir::User::setOperand ( unsigned OperandIdx, Value * Operand ) | virtual |
|---|
Definition at line 91 of file User.cpp.
References assert(), llvm::cast(), llvm::sandboxir::Value::Ctx, getOperandUse(), llvm::isa(), llvm::sandboxir::Value::Val, and llvm::sandboxir::Value::Value().
Referenced by llvm::sandboxir::CallBase::setArgOperand(), llvm::sandboxir::BranchInst::setCondition(), llvm::sandboxir::SelectInst::setCondition(), llvm::sandboxir::SelectInst::setFalseValue(), llvm::sandboxir::InvokeInst::setNormalDest(), llvm::sandboxir::BranchInst::setSuccessor(), llvm::sandboxir::CatchSwitchInst::setSuccessor(), llvm::sandboxir::SelectInst::setTrueValue(), and llvm::sandboxir::InvokeInst::setUnwindDest().
◆ swapOperandsInternal()
| void llvm::sandboxir::User::swapOperandsInternal ( unsigned OpIdxA, unsigned OpIdxB ) | inlineprotected |
|---|
◆ verify()
| void llvm::sandboxir::User::verify ( ) const | inlineoverridevirtual |
|---|
◆ verifyUserOfLLVMUse()
| void llvm::sandboxir::User::verifyUserOfLLVMUse ( const llvm::Use & Use) const | protected |
|---|
◆ OperandUseIterator
◆ Use::getOperandNo
The documentation for this class was generated from the following files: