LLVM 19.0.0git
|
A sandboxir::User has operands. More...
#include "llvm/SandboxIR/SandboxIR.h"
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 > |
![]() | |
enum class | ClassID : unsigned { DEF_VALUE , DEF_USER , DEF_INSTR } |
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 | verifyUserOfLLVMUse (const llvm::Use &Use) const |
![]() | |
void | clearValue () |
Value (ClassID SubclassID, llvm::Value *Val, Context &Ctx) | |
Friends | |
class | OperandUseIterator |
unsigned | Use::getOperandNo () const |
Additional Inherited Members | |
![]() | |
static const char * | getSubclassIDStr (ClassID ID) |
![]() | |
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 316 of file SandboxIR.h.
Definition at line 348 of file SandboxIR.h.
Definition at line 350 of file SandboxIR.h.
Definition at line 347 of file SandboxIR.h.
Definition at line 349 of file SandboxIR.h.
|
inlineprotected |
Definition at line 318 of file SandboxIR.h.
|
inlineoverridevirtual |
Implements llvm::sandboxir::Value.
Reimplemented in llvm::sandboxir::Constant, llvm::sandboxir::Instruction, llvm::sandboxir::LoadInst, and llvm::sandboxir::OpaqueInst.
Definition at line 395 of file SandboxIR.h.
|
inlineoverridevirtual |
Implements llvm::sandboxir::Value.
Reimplemented in llvm::sandboxir::Constant, llvm::sandboxir::Instruction, llvm::sandboxir::LoadInst, and llvm::sandboxir::OpaqueInst.
Definition at line 392 of file SandboxIR.h.
|
finalvirtual |
Reimplemented from llvm::sandboxir::Value.
Definition at line 249 of file SandboxIR.cpp.
References llvm::sandboxir::Value::dumpCommonHeader(), and OS.
|
inlinevirtual |
Definition at line 378 of file SandboxIR.h.
References llvm::sandboxir::Value::Val.
Referenced by getOperandUseDefault(), op_end(), and replaceUsesOfWith().
Definition at line 372 of file SandboxIR.h.
References llvm::sandboxir::Use::get(), and getOperandUse().
\Returns the operand edge for OpIdx
.
NOTE: This should also work for OpIdx == getNumOperands(), which is used for op_end().
Definition at line 375 of file SandboxIR.h.
References getOperandUseInternal().
Referenced by getOperand(), replaceUsesOfWith(), and setOperand().
\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 193 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, getNumOperands(), llvm::sandboxir::Value::Use, llvm::sandboxir::Value::Val, and Verify.
|
protectedpure virtual |
\Returns the Use for the OpIdx'th
operand.
This is virtual to allow instructions to deviate from the LLVM IR operands, which is a requirement for sandboxir Instructions that consist of more than one LLVM Instruction.
Referenced by getOperandUse(), op_begin(), op_end(), and llvm::sandboxir::OperandUseIterator::operator++().
|
protectedpure virtual |
\Returns the operand index of Use
.
Implemented in llvm::sandboxir::Constant, llvm::sandboxir::LoadInst, and llvm::sandboxir::OpaqueInst.
Referenced by llvm::sandboxir::Use::getOperandNo().
The default implementation works only for single-LLVMIR-instruction Users and only if they match exactly the LLVM instruction.
Definition at line 333 of file SandboxIR.h.
Referenced by llvm::sandboxir::Constant::getUseOperandNo(), llvm::sandboxir::LoadInst::getUseOperandNo(), and llvm::sandboxir::OpaqueInst::getUseOperandNo().
|
inlinevirtual |
Definition at line 352 of file SandboxIR.h.
References assert(), getOperandUseInternal(), and llvm::sandboxir::Value::Val.
Referenced by op_begin(), and operands().
|
inlinevirtual |
Definition at line 361 of file SandboxIR.h.
References op_begin().
|
inlinevirtual |
Definition at line 356 of file SandboxIR.h.
References assert(), getNumOperands(), getOperandUseInternal(), and llvm::sandboxir::Value::Val.
Referenced by op_end(), and operands().
|
inlinevirtual |
Definition at line 364 of file SandboxIR.h.
References op_end().
|
inline |
Definition at line 368 of file SandboxIR.h.
References op_begin(), and op_end().
|
inline |
Definition at line 369 of file SandboxIR.h.
References op_begin(), and op_end().
Replaces any operands that match FromV
with ToV
.
Returns whether any operands were replaced.
Definition at line 235 of file SandboxIR.cpp.
References llvm::sandboxir::Value::Ctx, llvm::sandboxir::Use::get(), getNumOperands(), getOperandUse(), llvm::sandboxir::Context::getTracker(), llvm::sandboxir::Tracker::isTracking(), llvm::sandboxir::Tracker::track(), and llvm::sandboxir::Value::Val.
Definition at line 226 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, getOperandUse(), llvm::sandboxir::Context::getTracker(), llvm::sandboxir::Tracker::isTracking(), llvm::sandboxir::Tracker::track(), and llvm::sandboxir::Value::Val.
|
inlineoverridevirtual |
Should crash if there is something wrong with the instruction.
Implements llvm::sandboxir::Value.
Reimplemented in llvm::sandboxir::Constant, llvm::sandboxir::LoadInst, and llvm::sandboxir::OpaqueInst.
Definition at line 388 of file SandboxIR.h.
References assert(), and llvm::sandboxir::Value::Val.
Definition at line 205 of file SandboxIR.cpp.
References assert(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Use::getUser(), and llvm::sandboxir::Context::getValue().
|
friend |
Definition at line 329 of file SandboxIR.h.
|
friend |