|
LLVM 22.0.0git
|
#include "llvm/SandboxIR/Instruction.h"
Public Types | |
| using | const_block_iterator |
| Public Types inherited from llvm::sandboxir::Instruction | |
| enum class | Opcode |
| Public Types inherited from llvm::sandboxir::User | |
| 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 |
Public Member Functions | |
| const_block_iterator | block_begin () const |
| const_block_iterator | block_end () const |
| iterator_range< const_block_iterator > | blocks () const |
| op_range | incoming_values () |
| const_op_range | incoming_values () const |
| unsigned | getNumIncomingValues () const |
| LLVM_ABI Value * | getIncomingValue (unsigned Idx) const |
| LLVM_ABI void | setIncomingValue (unsigned Idx, Value *V) |
| LLVM_ABI BasicBlock * | getIncomingBlock (unsigned Idx) const |
| LLVM_ABI BasicBlock * | getIncomingBlock (const Use &U) const |
| LLVM_ABI void | setIncomingBlock (unsigned Idx, BasicBlock *BB) |
| LLVM_ABI void | addIncoming (Value *V, BasicBlock *BB) |
| LLVM_ABI Value * | removeIncomingValue (unsigned Idx) |
| LLVM_ABI Value * | removeIncomingValue (BasicBlock *BB) |
| LLVM_ABI int | getBasicBlockIndex (const BasicBlock *BB) const |
| LLVM_ABI Value * | getIncomingValueForBlock (const BasicBlock *BB) const |
| LLVM_ABI Value * | hasConstantValue () const |
| bool | hasConstantOrUndefValue () const |
| bool | isComplete () const |
| LLVM_ABI void | replaceIncomingBlockWith (const BasicBlock *Old, BasicBlock *New) |
| LLVM_ABI void | removeIncomingValueIf (function_ref< bool(unsigned)> Predicate) |
| Public Member Functions inherited from llvm::sandboxir::SingleLLVMInstructionImpl< llvm::PHINode > | |
| unsigned | getUseOperandNo (const Use &Use) const final |
\Returns the operand index of Use. | |
| unsigned | getNumOfIRInstrs () const final |
| This is used by BasicBlock::iterator. | |
| void | verify () const final |
| Should crash if there is something wrong with the instruction. | |
| void | dumpOS (raw_ostream &OS) const override |
| Public Member Functions inherited from llvm::sandboxir::Instruction | |
| LLVM_ABI BBIterator | getIterator () const |
| \Returns a BasicBlock::iterator for this Instruction. | |
| LLVM_ABI Instruction * | getNextNode () const |
| \Returns the next sandboxir::Instruction in the block, or nullptr if at the end of the block. | |
| LLVM_ABI Instruction * | getPrevNode () const |
| \Returns the previous sandboxir::Instruction in the block, or nullptr if at the beginning of the block. | |
| Opcode | getOpcode () const |
| \Returns this Instruction's opcode. | |
| const char * | getOpcodeName () const |
| const DataLayout & | getDataLayout () const |
| bool | isTerminator () const |
| bool | isUnaryOp () const |
| bool | isBinaryOp () const |
| bool | isIntDivRem () const |
| bool | isShift () const |
| bool | isCast () const |
| bool | isFuncletPad () const |
| bool | isSpecialTerminator () const |
| bool | isOnlyUserOfAnyOperand () const |
| bool | isLogicalShift () const |
| bool | hasMetadata () const |
| Return true if the instruction has any metadata attached to it. | |
| bool | hasMetadataOtherThanDebugLoc () const |
| Return true if this instruction has metadata attached to it other than a debug location. | |
| bool | hasMetadata (unsigned KindID) const |
| Return true if this instruction has the given type of metadata attached. | |
| LLVM_ABI void | removeFromParent () |
| Detach this from its parent BasicBlock without deleting it. | |
| LLVM_ABI void | eraseFromParent () |
| Detach this Value from its parent and delete it. | |
| LLVM_ABI void | insertBefore (Instruction *BeforeI) |
Insert this detached instruction before BeforeI. | |
| LLVM_ABI void | insertAfter (Instruction *AfterI) |
Insert this detached instruction after AfterI. | |
| LLVM_ABI void | insertInto (BasicBlock *BB, const BBIterator &WhereIt) |
Insert this detached instruction into BB at WhereIt. | |
| LLVM_ABI void | moveBefore (BasicBlock &BB, const BBIterator &WhereIt) |
Move this instruction to WhereIt. | |
| void | moveBefore (Instruction *Before) |
Move this instruction before Before. | |
| void | moveAfter (Instruction *After) |
Move this instruction after After. | |
| bool | comesBefore (const Instruction *Other) const |
| Given an instruction Other in the same basic block as this instruction, return true if this instruction comes before Other. | |
| LLVM_ABI BasicBlock * | getParent () const |
| \Returns the BasicBlock containing this Instruction, or null if it is detached. | |
| bool | hasNoUnsignedWrap () const |
| Determine whether the no signed wrap flag is set. | |
| LLVM_ABI void | setHasNoUnsignedWrap (bool B=true) |
| Set or clear the nuw flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasNoSignedWrap () const |
| Determine whether the no signed wrap flag is set. | |
| LLVM_ABI void | setHasNoSignedWrap (bool B=true) |
| Set or clear the nsw flag on this instruction, which must be an operator which supports this flag. | |
| bool | isFast () const |
| Determine whether all fast-math-flags are set. | |
| LLVM_ABI void | setFast (bool B) |
| Set or clear all fast-math-flags on this instruction, which must be an operator which supports this flag. | |
| bool | hasAllowReassoc () const |
| Determine whether the allow-reassociation flag is set. | |
| LLVM_ABI void | setHasAllowReassoc (bool B) |
| Set or clear the reassociation flag on this instruction, which must be an operator which supports this flag. | |
| bool | isExact () const |
| Determine whether the exact flag is set. | |
| LLVM_ABI void | setIsExact (bool B=true) |
| Set or clear the exact flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasNoNaNs () const |
| Determine whether the no-NaNs flag is set. | |
| LLVM_ABI void | setHasNoNaNs (bool B) |
| Set or clear the no-nans flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasNoInfs () const |
| Determine whether the no-infs flag is set. | |
| LLVM_ABI void | setHasNoInfs (bool B) |
| Set or clear the no-infs flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasNoSignedZeros () const |
| Determine whether the no-signed-zeros flag is set. | |
| LLVM_ABI void | setHasNoSignedZeros (bool B) |
| Set or clear the no-signed-zeros flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasAllowReciprocal () const |
| Determine whether the allow-reciprocal flag is set. | |
| LLVM_ABI void | setHasAllowReciprocal (bool B) |
| Set or clear the allow-reciprocal flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasAllowContract () const |
| Determine whether the allow-contract flag is set. | |
| LLVM_ABI void | setHasAllowContract (bool B) |
| Set or clear the allow-contract flag on this instruction, which must be an operator which supports this flag. | |
| bool | hasApproxFunc () const |
| Determine whether the approximate-math-functions flag is set. | |
| LLVM_ABI void | setHasApproxFunc (bool B) |
| Set or clear the approximate-math-functions flag on this instruction, which must be an operator which supports this flag. | |
| FastMathFlags | getFastMathFlags () const |
| Convenience function for getting all the fast-math flags, which must be an operator which supports these flags. | |
| LLVM_ABI void | setFastMathFlags (FastMathFlags FMF) |
| Convenience function for setting multiple fast-math flags on this instruction, which must be an operator which supports these flags. | |
| LLVM_ABI void | copyFastMathFlags (FastMathFlags FMF) |
| Convenience function for transferring all fast-math flag values to this instruction, which must be an operator which supports these flags. | |
| bool | isAssociative () const |
| bool | isCommutative () const |
| bool | isIdempotent () const |
| bool | isNilpotent () const |
| bool | mayWriteToMemory () const |
| bool | mayReadFromMemory () const |
| bool | mayReadOrWriteMemory () const |
| bool | isAtomic () const |
| bool | hasAtomicLoad () const |
| bool | hasAtomicStore () const |
| bool | isVolatile () const |
| LLVM_ABI Type * | getAccessType () const |
| bool | mayThrow (bool IncludePhaseOneUnwind=false) const |
| bool | isFenceLike () const |
| bool | mayHaveSideEffects () const |
| Public Member Functions inherited from llvm::sandboxir::User | |
| virtual op_iterator | op_begin () |
| virtual op_iterator | op_end () |
| virtual const_op_iterator | op_begin () const |
| virtual const_op_iterator | op_end () const |
| op_range | operands () |
| const_op_range | operands () const |
| Value * | getOperand (unsigned OpIdx) const |
| Use | getOperandUse (unsigned OpIdx) const |
\Returns the operand edge for OpIdx. | |
| virtual unsigned | getNumOperands () const |
| virtual void | setOperand (unsigned OperandIdx, Value *Operand) |
| bool | replaceUsesOfWith (Value *FromV, Value *ToV) |
Replaces any operands that match FromV with ToV. | |
| void | verify () const override |
| Should crash if there is something wrong with the instruction. | |
| void | dumpCommonHeader (raw_ostream &OS) const final |
| void | dumpOS (raw_ostream &OS) const override |
| Public Member Functions inherited from llvm::sandboxir::Value | |
| virtual | ~Value ()=default |
| ClassID | getSubclassID () const |
| LLVM_ABI use_iterator | use_begin () |
| const_use_iterator | use_begin () const |
| use_iterator | use_end () |
| const_use_iterator | use_end () const |
| iterator_range< use_iterator > | uses () |
| iterator_range< const_use_iterator > | uses () const |
| LLVM_ABI user_iterator | user_begin () |
| user_iterator | user_end () |
| const_user_iterator | user_begin () const |
| const_user_iterator | user_end () const |
| iterator_range< user_iterator > | users () |
| iterator_range< const_user_iterator > | users () const |
| LLVM_ABI unsigned | getNumUses () const |
| \Returns the number of user edges (not necessarily to unique users). | |
| bool | hasNUsesOrMore (unsigned Num) const |
| Return true if this value has N uses or more. | |
| bool | hasNUses (unsigned Num) const |
| Return true if this Value has exactly N uses. | |
| LLVM_ABI Type * | getType () const |
| Context & | getContext () const |
| LLVM_ABI void | replaceUsesWithIf (Value *OtherV, llvm::function_ref< bool(const Use &)> ShouldReplace) |
| LLVM_ABI void | replaceAllUsesWith (Value *Other) |
| StringRef | getName () const |
| \Returns the LLVM IR name of the bottom-most LLVM value. | |
| std::string | getUid () const |
| Returns the unique id in the form 'SB<number>.' like 'SB1.'. | |
| void | dumpCommonFooter (raw_ostream &OS) const |
| void | dumpCommonPrefix (raw_ostream &OS) const |
| void | dumpCommonSuffix (raw_ostream &OS) const |
| void | printAsOperandCommon (raw_ostream &OS) const |
| LLVM_DUMP_METHOD void | dump () const |
Static Public Member Functions | |
| static LLVM_ABI PHINode * | create (Type *Ty, unsigned NumReservedValues, InsertPosition Pos, Context &Ctx, const Twine &Name="") |
| static LLVM_ABI bool | classof (const Value *From) |
| For isa/dyn_cast. | |
| static unsigned | getOperandNumForIncomingValue (unsigned Idx) |
| static unsigned | getIncomingValueNumForOperand (unsigned Idx) |
| Static Public Member Functions inherited from llvm::sandboxir::Instruction | |
| static LLVM_ABI const char * | getOpcodeName (Opcode Opc) |
| static LLVM_ABI bool | classof (const sandboxir::Value *From) |
| For isa/dyn_cast. | |
| Static Public Member Functions inherited from llvm::sandboxir::User | |
| static bool | classof (const Value *From) |
| For isa/dyn_cast. | |
Additional Inherited Members | |
| Protected Member Functions inherited from llvm::sandboxir::Instruction | |
| Instruction (ClassID ID, Opcode Opc, llvm::Instruction *I, sandboxir::Context &SBCtx) | |
| LLVM_ABI llvm::Instruction * | getTopmostLLVMInstruction () const |
| A SandboxIR Instruction may map to multiple LLVM IR Instruction. | |
| Protected Member Functions inherited from llvm::sandboxir::User | |
| User (ClassID ID, llvm::Value *V, Context &Ctx) | |
| Use | getOperandUseDefault (unsigned OpIdx, bool Verify) const |
\Returns the Use edge that corresponds to OpIdx. | |
| 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. | |
| 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 |
| Static Protected Member Functions inherited from llvm::sandboxir::Instruction | |
| static IRBuilder & | setInsertPos (InsertPosition Pos) |
| Helper function for create(). | |
| Static Protected Member Functions inherited from llvm::sandboxir::Value | |
| static const char * | getSubclassIDStr (ClassID ID) |
| Protected Attributes inherited from llvm::sandboxir::Instruction | |
| Opcode | Opc |
| 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. | |
Definition at line 2395 of file Instruction.h.
Definition at line 2414 of file Instruction.h.
| void llvm::sandboxir::PHINode::addIncoming | ( | Value * | V, |
| BasicBlock * | BB ) |
Definition at line 868 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock().
|
inline |
Definition at line 2417 of file Instruction.h.
References block_begin(), llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
Referenced by block_begin(), and blocks().
|
inline |
Definition at line 2422 of file Instruction.h.
References block_end(), llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
Referenced by block_end(), and blocks().
|
inline |
Definition at line 2427 of file Instruction.h.
References block_begin(), block_end(), and llvm::make_range().
For isa/dyn_cast.
Definition at line 834 of file Instruction.cpp.
References llvm::sandboxir::Value::getSubclassID().
|
static |
Definition at line 826 of file Instruction.cpp.
References llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Instruction::setInsertPos().
| int llvm::sandboxir::PHINode::getBasicBlockIndex | ( | const BasicBlock * | BB | ) | const |
Definition at line 893 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), and llvm::sandboxir::Value::Val.
Referenced by removeIncomingValue().
| BasicBlock * llvm::sandboxir::PHINode::getIncomingBlock | ( | const Use & | U | ) | const |
Definition at line 852 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
| BasicBlock * llvm::sandboxir::PHINode::getIncomingBlock | ( | unsigned | Idx | ) | const |
Definition at line 848 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
Referenced by replaceIncomingBlockWith(), and setIncomingBlock().
Definition at line 838 of file Instruction.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, getIncomingValue(), and llvm::sandboxir::Value::Val.
Referenced by getIncomingValue(), and setIncomingValue().
| Value * llvm::sandboxir::PHINode::getIncomingValueForBlock | ( | const BasicBlock * | BB | ) | const |
Definition at line 897 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
Definition at line 2443 of file Instruction.h.
References llvm::PHINode::getIncomingValueNumForOperand().
|
inline |
Definition at line 2435 of file Instruction.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
Referenced by removeIncomingValueIf().
Definition at line 2440 of file Instruction.h.
References llvm::PHINode::getOperandNumForIncomingValue().
|
inline |
Definition at line 2461 of file Instruction.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
| Value * llvm::sandboxir::PHINode::hasConstantValue | ( | ) | const |
Definition at line 903 of file Instruction.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, and llvm::sandboxir::Value::Val.
|
inline |
Definition at line 2431 of file Instruction.h.
References llvm::sandboxir::User::operands().
|
inline |
Definition at line 2433 of file Instruction.h.
References llvm::sandboxir::User::operands().
|
inline |
Definition at line 2464 of file Instruction.h.
References llvm::cast(), and llvm::sandboxir::Value::Val.
| Value * llvm::sandboxir::PHINode::removeIncomingValue | ( | BasicBlock * | BB | ) |
Definition at line 883 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), getBasicBlockIndex(), and llvm::sandboxir::Value::Val.
Definition at line 875 of file Instruction.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Tracker::emplaceIfTracking(), and llvm::sandboxir::Value::Val.
Referenced by removeIncomingValueIf().
| void llvm::sandboxir::PHINode::removeIncomingValueIf | ( | function_ref< bool(unsigned)> | Predicate | ) |
Definition at line 914 of file Instruction.cpp.
References getNumIncomingValues(), and removeIncomingValue().
| void llvm::sandboxir::PHINode::replaceIncomingBlockWith | ( | const BasicBlock * | Old, |
| BasicBlock * | New ) |
Definition at line 907 of file Instruction.cpp.
References AbstractManglingParser< Derived, Alloc >::NumOps, assert(), llvm::sandboxir::BasicBlock(), llvm::cast(), getIncomingBlock(), llvm::sandboxir::User::getNumOperands(), setIncomingBlock(), and llvm::sandboxir::Value::Val.
| void llvm::sandboxir::PHINode::setIncomingBlock | ( | unsigned | Idx, |
| BasicBlock * | BB ) |
Definition at line 857 of file Instruction.cpp.
References llvm::sandboxir::BasicBlock(), llvm::cast(), llvm::sandboxir::Value::Ctx, getIncomingBlock(), and llvm::sandboxir::Value::Val.
Referenced by replaceIncomingBlockWith().
Definition at line 841 of file Instruction.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, getIncomingValue(), setIncomingValue(), and llvm::sandboxir::Value::Val.
Referenced by setIncomingValue().