| 
    LLVM 22.0.0git
    
   | 
 
#include "llvm/SandboxIR/Instruction.h"
Public Member Functions | |
| Value * | getVectorOperand () | 
| Value * | getIndexOperand () | 
| const Value * | getVectorOperand () const | 
| const Value * | getIndexOperand () const | 
| LLVM_ABI VectorType * | getVectorOperandType () const | 
| Public Member Functions inherited from llvm::sandboxir::SingleLLVMInstructionImpl< llvm::ExtractElementInst > | |
| 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 Value * | create (Value *Vec, Value *Idx, InsertPosition Pos, Context &Ctx, const Twine &Name="") | 
| static bool | classof (const Value *From) | 
| static bool | isValidOperands (const Value *Vec, const Value *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.   | |
Friends | |
| class | Context | 
Additional Inherited Members | |
| 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 | 
| 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 497 of file Instruction.h.
Definition at line 509 of file Instruction.h.
References llvm::sandboxir::Value::getSubclassID().
      
  | 
  static | 
Definition at line 1464 of file Instruction.cpp.
References assert(), llvm::cast(), Context, llvm::sandboxir::Value::Ctx, llvm::dyn_cast(), llvm::isa(), llvm::sandboxir::Instruction::setInsertPos(), and llvm::sandboxir::Value::Val.
      
  | 
  inline | 
Definition at line 517 of file Instruction.h.
References llvm::sandboxir::getOperand().
Definition at line 519 of file Instruction.h.
References llvm::sandboxir::getOperand().
      
  | 
  inline | 
Definition at line 516 of file Instruction.h.
References llvm::sandboxir::getOperand().
Referenced by getVectorOperandType().
Definition at line 518 of file Instruction.h.
References llvm::sandboxir::getOperand().
| VectorType * llvm::sandboxir::ExtractElementInst::getVectorOperandType | ( | ) | const | 
Definition at line 1526 of file Instruction.cpp.
References llvm::cast(), llvm::sandboxir::Value::Ctx, llvm::sandboxir::Value::getType(), and getVectorOperand().
      
  | 
  inlinestatic | 
Definition at line 513 of file Instruction.h.
References llvm::ExtractElementInst::isValidOperands(), and llvm::sandboxir::Value::Val.
      
  | 
  friend | 
Definition at line 503 of file Instruction.h.
References Context, llvm::sandboxir::Value::Ctx, and LLVM_ABI.