|
LLVM 22.0.0git
|
This represents the llvm.instrprof.increment.step intrinsic. More...
#include "llvm/IR/IntrinsicInst.h"
Static Public Member Functions | |
| static bool | classof (const IntrinsicInst *I) |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::InstrProfIncrementInst | |
| static bool | classof (const IntrinsicInst *I) |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::InstrProfCntrInstBase | |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::InstrProfInstBase | |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::IntrinsicInst | |
| static LLVM_ABI bool | mayLowerToFunctionCall (Intrinsic::ID IID) |
| Check if the intrinsic might lower into a regular function call in the course of IR transformations. | |
| static bool | classof (const CallInst *I) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::CallInst | |
| static CallInst * | Create (FunctionType *Ty, Value *F, const Twine &NameStr="", InsertPosition InsertBefore=nullptr) |
| static CallInst * | Create (FunctionType *Ty, Value *Func, ArrayRef< Value * > Args, const Twine &NameStr, InsertPosition InsertBefore=nullptr) |
| static CallInst * | Create (FunctionType *Ty, Value *Func, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > Bundles={}, const Twine &NameStr="", InsertPosition InsertBefore=nullptr) |
| static CallInst * | Create (FunctionCallee Func, const Twine &NameStr="", InsertPosition InsertBefore=nullptr) |
| static CallInst * | Create (FunctionCallee Func, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > Bundles={}, const Twine &NameStr="", InsertPosition InsertBefore=nullptr) |
| static CallInst * | Create (FunctionCallee Func, ArrayRef< Value * > Args, const Twine &NameStr, InsertPosition InsertBefore=nullptr) |
| static LLVM_ABI CallInst * | Create (CallInst *CI, ArrayRef< OperandBundleDef > Bundles, InsertPosition InsertPt=nullptr) |
Create a clone of CI with a different set of operand bundles and insert it before InsertBefore. | |
| static bool | classof (const Instruction *I) |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::CallBase | |
| static LLVM_ABI CallBase * | Create (CallBase *CB, ArrayRef< OperandBundleDef > Bundles, InsertPosition InsertPt=nullptr) |
Create a clone of CB with a different set of operand bundles and insert it before InsertPt. | |
| static LLVM_ABI CallBase * | Create (CallBase *CB, OperandBundleDef Bundle, InsertPosition InsertPt=nullptr) |
Create a clone of CB with the operand bundle with the tag matching Bundle's tag replaced with Bundle, and insert it before InsertPt. | |
| static LLVM_ABI CallBase * | addOperandBundle (CallBase *CB, uint32_t ID, OperandBundleDef OB, InsertPosition InsertPt=nullptr) |
Create a clone of CB with operand bundle OB added. | |
| static LLVM_ABI CallBase * | removeOperandBundle (CallBase *CB, uint32_t ID, InsertPosition InsertPt=nullptr) |
Create a clone of CB with operand bundle ID removed. | |
| static bool | classof (const Instruction *I) |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::Instruction | |
| static LLVM_ABI const char * | getOpcodeName (unsigned Opcode) |
| static bool | isTerminator (unsigned Opcode) |
| static bool | isUnaryOp (unsigned Opcode) |
| static bool | isBinaryOp (unsigned Opcode) |
| static bool | isIntDivRem (unsigned Opcode) |
| static bool | isFPDivRem (unsigned Opcode) |
| static bool | isShift (unsigned Opcode) |
| Determine if the Opcode is one of the shift instructions. | |
| static bool | isBitwiseLogicOp (unsigned Opcode) |
| Determine if the Opcode is and/or/xor. | |
| static bool | isCast (unsigned Opcode) |
| Determine if the Opcode is one of the CastInst instructions. | |
| static bool | isFuncletPad (unsigned Opcode) |
| Determine if the Opcode is one of the FuncletPadInst instructions. | |
| static bool | isSpecialTerminator (unsigned Opcode) |
| Returns true if the Opcode is a "special" terminator that does more than branch to a successor (e.g. | |
| static bool | isAssociative (unsigned Opcode) |
| static bool | isCommutative (unsigned Opcode) |
| static bool | isIdempotent (unsigned Opcode) |
| static bool | isNilpotent (unsigned Opcode) |
| static bool | classof (const Value *V) |
| Methods for support type inquiry through isa, cast, and dyn_cast: | |
| Static Public Member Functions inherited from llvm::User | |
| static bool | classof (const Value *V) |
| Static Public Member Functions inherited from llvm::Value | |
| static LLVM_ABI void | dropDroppableUse (Use &U) |
Remove the droppable use U. | |
Additional Inherited Members | |
| Public Types inherited from llvm::CallInst | |
| enum | TailCallKind : unsigned { TCK_None = 0 , TCK_Tail = 1 , TCK_MustTail = 2 , TCK_NoTail = 3 , TCK_LAST = TCK_NoTail } |
| using | TailCallKindField = Bitfield::Element<TailCallKind, 0, 2, TCK_LAST> |
| using | bundle_op_iterator = BundleOpInfo * |
| using | const_bundle_op_iterator = const BundleOpInfo * |
| Public Types inherited from llvm::Instruction | |
| enum | OperationEquivalenceFlags { CompareIgnoringAlignment = 1 << 0 , CompareUsingScalarTypes = 1 << 1 , CompareUsingIntersectedAttrs = 1 << 2 } |
| When checking for operation equivalence (using isSameOperationAs) it is sometimes useful to ignore certain attributes. More... | |
| enum | TermOps |
| enum | UnaryOps |
| enum | BinaryOps |
| enum | MemoryOps |
| enum | CastOps |
| enum | FuncletPadOps |
| enum | OtherOps |
| using | InstListType |
| Public Types inherited from llvm::User | |
| using | op_iterator = Use* |
| using | const_op_iterator = const Use* |
| using | op_range = iterator_range<op_iterator> |
| using | const_op_range = iterator_range<const_op_iterator> |
| Public Types inherited from llvm::Value | |
| enum | ValueTy |
| Concrete subclass of this. More... | |
| using | use_iterator = use_iterator_impl<Use> |
| using | const_use_iterator = use_iterator_impl<const Use> |
| using | user_iterator = user_iterator_impl<User> |
| using | const_user_iterator = user_iterator_impl<const User> |
| Public Member Functions inherited from llvm::InstrProfIncrementInst | |
| LLVM_ABI Value * | getStep () const |
| Public Member Functions inherited from llvm::InstrProfCntrInstBase | |
| LLVM_ABI ConstantInt * | getNumCounters () const |
| LLVM_ABI ConstantInt * | getIndex () const |
| LLVM_ABI void | setIndex (uint32_t Idx) |
| Public Member Functions inherited from llvm::InstrProfInstBase | |
| GlobalVariable * | getName () const |
| Value * | getNameValue () const |
| void | setNameValue (Value *V) |
| ConstantInt * | getHash () const |
| Public Member Functions inherited from llvm::IntrinsicInst | |
| IntrinsicInst ()=delete | |
| IntrinsicInst (const IntrinsicInst &)=delete | |
| IntrinsicInst & | operator= (const IntrinsicInst &)=delete |
| Intrinsic::ID | getIntrinsicID () const |
| Return the intrinsic ID of this intrinsic. | |
| bool | isAssociative () const |
| bool | isCommutative () const |
| Return true if swapping the first two arguments to the intrinsic produces the same result. | |
| bool | isAssumeLikeIntrinsic () const |
| Checks if the intrinsic is an annotation. | |
| Public Member Functions inherited from llvm::CallInst | |
| TailCallKind | getTailCallKind () const |
| bool | isTailCall () const |
| bool | isMustTailCall () const |
| bool | isNoTailCall () const |
| void | setTailCallKind (TailCallKind TCK) |
| void | setTailCall (bool IsTc=true) |
| bool | canReturnTwice () const |
| Return true if the call can return twice. | |
| void | setCanReturnTwice () |
| bool | isNonContinuableTrap () const |
| Return true if the call is for a noreturn trap intrinsic. | |
| LLVM_ABI void | updateProfWeight (uint64_t S, uint64_t T) |
Updates profile metadata by scaling it by S / T. | |
| Public Member Functions inherited from llvm::CallBase | |
| Value * | getConvergenceControlToken () const |
| Return the convergence control token for this call, if it exists. | |
| FunctionType * | getFunctionType () const |
| void | mutateFunctionType (FunctionType *FTy) |
| DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value) | |
| User::op_iterator | data_operands_begin () |
| data_operands_begin/data_operands_end - Return iterators iterating over the call / invoke argument list and bundle operands. | |
| User::const_op_iterator | data_operands_begin () const |
| User::op_iterator | data_operands_end () |
| User::const_op_iterator | data_operands_end () const |
| iterator_range< User::op_iterator > | data_ops () |
| iterator_range< User::const_op_iterator > | data_ops () const |
| bool | data_operands_empty () const |
| unsigned | data_operands_size () const |
| bool | isDataOperand (const Use *U) const |
| bool | isDataOperand (Value::const_user_iterator UI) const |
| unsigned | getDataOperandNo (Value::const_user_iterator UI) const |
| Given a value use iterator, return the data operand corresponding to it. | |
| unsigned | getDataOperandNo (const Use *U) const |
| Given a use for a data operand, get the data operand number that corresponds to it. | |
| User::op_iterator | arg_begin () |
| Return the iterator pointing to the beginning of the argument list. | |
| User::const_op_iterator | arg_begin () const |
| User::op_iterator | arg_end () |
| Return the iterator pointing to the end of the argument list. | |
| User::const_op_iterator | arg_end () const |
| iterator_range< User::op_iterator > | args () |
| Iteration adapter for range-for loops. | |
| iterator_range< User::const_op_iterator > | args () const |
| bool | arg_empty () const |
| unsigned | arg_size () const |
| Value * | getArgOperand (unsigned i) const |
| void | setArgOperand (unsigned i, Value *v) |
| const Use & | getArgOperandUse (unsigned i) const |
Wrappers for getting the Use of a call argument. | |
| Use & | getArgOperandUse (unsigned i) |
| bool | isArgOperand (const Use *U) const |
| bool | isArgOperand (Value::const_user_iterator UI) const |
| unsigned | getArgOperandNo (const Use *U) const |
| Given a use for a arg operand, get the arg operand number that corresponds to it. | |
| unsigned | getArgOperandNo (Value::const_user_iterator UI) const |
| Given a value use iterator, return the arg operand number corresponding to it. | |
| bool | hasArgument (const Value *V) const |
| Returns true if this CallSite passes the given Value* as an argument to the called function. | |
| Value * | getCalledOperand () const |
| const Use & | getCalledOperandUse () const |
| Use & | getCalledOperandUse () |
| Function * | getCalledFunction () const |
| Returns the function called, or null if this is an indirect function invocation or the function signature does not match the call signature, or the call target is an alias. | |
| LLVM_ABI bool | isIndirectCall () const |
| Return true if the callsite is an indirect call. | |
| bool | isCallee (Value::const_user_iterator UI) const |
| Determine whether the passed iterator points to the callee operand's Use. | |
| bool | isCallee (const Use *U) const |
| Determine whether this Use is the callee operand's Use. | |
| LLVM_ABI Function * | getCaller () |
| Helper to get the caller (the parent function). | |
| const Function * | getCaller () const |
| LLVM_ABI bool | isMustTailCall () const |
| Tests if this call site must be tail call optimized. | |
| LLVM_ABI bool | isTailCall () const |
| Tests if this call site is marked as a tail call. | |
| LLVM_ABI Intrinsic::ID | getIntrinsicID () const |
| Returns the intrinsic ID of the intrinsic called or Intrinsic::not_intrinsic if the called function is not an intrinsic, or if this is an indirect call. | |
| void | setCalledOperand (Value *V) |
| void | setCalledFunction (Function *Fn) |
| Sets the function called, including updating the function type. | |
| void | setCalledFunction (FunctionCallee Fn) |
| Sets the function called, including updating the function type. | |
| void | setCalledFunction (FunctionType *FTy, Value *Fn) |
| Sets the function called, including updating to the specified function type. | |
| CallingConv::ID | getCallingConv () const |
| void | setCallingConv (CallingConv::ID CC) |
| bool | isInlineAsm () const |
| Check if this call is an inline asm statement. | |
| AttributeList | getAttributes () const |
| Return the attributes for this call. | |
| void | setAttributes (AttributeList A) |
| Set the attributes for this call. | |
| AttributeSet | getRetAttributes () const |
| Return the return attributes for this call. | |
| AttributeSet | getParamAttributes (unsigned ArgNo) const |
| Return the param attributes for this call. | |
| bool | tryIntersectAttributes (const CallBase *Other) |
| Try to intersect the attributes from 'this' CallBase and the 'Other' CallBase. | |
| bool | hasFnAttr (Attribute::AttrKind Kind) const |
| Determine whether this call has the given attribute. | |
| bool | hasFnAttr (StringRef Kind) const |
| Determine whether this call has the given attribute. | |
| void | addAttributeAtIndex (unsigned i, Attribute::AttrKind Kind) |
| adds the attribute to the list of attributes. | |
| void | addAttributeAtIndex (unsigned i, Attribute Attr) |
| adds the attribute to the list of attributes. | |
| void | addFnAttr (Attribute::AttrKind Kind) |
| Adds the attribute to the function. | |
| void | addFnAttr (Attribute Attr) |
| Adds the attribute to the function. | |
| void | addRetAttr (Attribute::AttrKind Kind) |
| Adds the attribute to the return value. | |
| void | addRetAttr (Attribute Attr) |
| Adds the attribute to the return value. | |
| void | addRetAttrs (const AttrBuilder &B) |
| Adds attributes to the return value. | |
| void | addParamAttr (unsigned ArgNo, Attribute::AttrKind Kind) |
| Adds the attribute to the indicated argument. | |
| void | addParamAttr (unsigned ArgNo, Attribute Attr) |
| Adds the attribute to the indicated argument. | |
| void | addParamAttrs (unsigned ArgNo, const AttrBuilder &B) |
| Adds attributes to the indicated argument. | |
| void | removeAttributeAtIndex (unsigned i, Attribute::AttrKind Kind) |
| removes the attribute from the list of attributes. | |
| void | removeAttributeAtIndex (unsigned i, StringRef Kind) |
| removes the attribute from the list of attributes. | |
| void | removeFnAttrs (const AttributeMask &AttrsToRemove) |
| Removes the attributes from the function. | |
| void | removeFnAttr (Attribute::AttrKind Kind) |
| Removes the attribute from the function. | |
| void | removeFnAttr (StringRef Kind) |
| Removes the attribute from the function. | |
| void | removeRetAttr (Attribute::AttrKind Kind) |
| Removes the attribute from the return value. | |
| void | removeRetAttrs (const AttributeMask &AttrsToRemove) |
| Removes the attributes from the return value. | |
| void | removeParamAttr (unsigned ArgNo, Attribute::AttrKind Kind) |
| Removes the attribute from the given argument. | |
| void | removeParamAttr (unsigned ArgNo, StringRef Kind) |
| Removes the attribute from the given argument. | |
| void | removeParamAttrs (unsigned ArgNo, const AttributeMask &AttrsToRemove) |
| Removes the attributes from the given argument. | |
| void | addDereferenceableParamAttr (unsigned i, uint64_t Bytes) |
| adds the dereferenceable attribute to the list of attributes. | |
| void | addDereferenceableRetAttr (uint64_t Bytes) |
| adds the dereferenceable attribute to the list of attributes. | |
| void | addRangeRetAttr (const ConstantRange &CR) |
| adds the range attribute to the list of attributes. | |
| bool | hasRetAttr (Attribute::AttrKind Kind) const |
| Determine whether the return value has the given attribute. | |
| bool | hasRetAttr (StringRef Kind) const |
| Determine whether the return value has the given attribute. | |
| Attribute | getRetAttr (Attribute::AttrKind Kind) const |
| Return the attribute for the given attribute kind for the return value. | |
| LLVM_ABI bool | paramHasAttr (unsigned ArgNo, Attribute::AttrKind Kind) const |
| Determine whether the argument or parameter has the given attribute. | |
| LLVM_ABI bool | paramHasNonNullAttr (unsigned ArgNo, bool AllowUndefOrPoison) const |
| Return true if this argument has the nonnull attribute on either the CallBase instruction or the called function. | |
| Attribute | getAttributeAtIndex (unsigned i, Attribute::AttrKind Kind) const |
| Get the attribute of a given kind at a position. | |
| Attribute | getAttributeAtIndex (unsigned i, StringRef Kind) const |
| Get the attribute of a given kind at a position. | |
| Attribute | getFnAttr (StringRef Kind) const |
| Get the attribute of a given kind for the function. | |
| Attribute | getFnAttr (Attribute::AttrKind Kind) const |
| Get the attribute of a given kind for the function. | |
| Attribute | getParamAttr (unsigned ArgNo, Attribute::AttrKind Kind) const |
| Get the attribute of a given kind from a given arg. | |
| Attribute | getParamAttr (unsigned ArgNo, StringRef Kind) const |
| Get the attribute of a given kind from a given arg. | |
| bool | dataOperandHasImpliedAttr (unsigned i, Attribute::AttrKind Kind) const |
Return true if the data operand at index i has the attribute A. | |
| LLVM_ABI CaptureInfo | getCaptureInfo (unsigned OpNo) const |
| Return which pointer components this operand may capture. | |
| bool | doesNotCapture (unsigned OpNo) const |
| Determine whether this data operand is not captured. | |
| LLVM_ABI bool | hasArgumentWithAdditionalReturnCaptureComponents () const |
| Returns whether the call has an argument that has an attribute like captures(ret: address, provenance), where the return capture components are not a subset of the other capture components. | |
| bool | isByValArgument (unsigned ArgNo) const |
| Determine whether this argument is passed by value. | |
| bool | isInAllocaArgument (unsigned ArgNo) const |
| Determine whether this argument is passed in an alloca. | |
| bool | isPassPointeeByValueArgument (unsigned ArgNo) const |
| Determine whether this argument is passed by value, in an alloca, or is preallocated. | |
| bool | isPassingUndefUB (unsigned ArgNo) const |
| Determine whether passing undef to this argument is undefined behavior. | |
| bool | hasInAllocaArgument () const |
| Determine if there are is an inalloca argument. | |
| bool | doesNotAccessMemory (unsigned OpNo) const |
| bool | onlyReadsMemory (unsigned OpNo) const |
| bool | onlyWritesMemory (unsigned OpNo) const |
| MaybeAlign | getRetAlign () const |
| Extract the alignment of the return value. | |
| MaybeAlign | getParamAlign (unsigned ArgNo) const |
| Extract the alignment for a call or parameter (0=unknown). | |
| MaybeAlign | getParamStackAlign (unsigned ArgNo) const |
| Type * | getParamByRefType (unsigned ArgNo) const |
| Extract the byref type for a call or parameter. | |
| Type * | getParamByValType (unsigned ArgNo) const |
| Extract the byval type for a call or parameter. | |
| Type * | getParamPreallocatedType (unsigned ArgNo) const |
| Extract the preallocated type for a call or parameter. | |
| Type * | getParamInAllocaType (unsigned ArgNo) const |
| Extract the inalloca type for a call or parameter. | |
| Type * | getParamStructRetType (unsigned ArgNo) const |
| Extract the sret type for a call or parameter. | |
| Type * | getParamElementType (unsigned ArgNo) const |
| Extract the elementtype type for a parameter. | |
| uint64_t | getRetDereferenceableBytes () const |
| Extract the number of dereferenceable bytes for a call or parameter (0=unknown). | |
| uint64_t | getParamDereferenceableBytes (unsigned i) const |
| Extract the number of dereferenceable bytes for a call or parameter (0=unknown). | |
| uint64_t | getRetDereferenceableOrNullBytes () const |
| Extract the number of dereferenceable_or_null bytes for a call (0=unknown). | |
| uint64_t | getParamDereferenceableOrNullBytes (unsigned i) const |
| Extract the number of dereferenceable_or_null bytes for a parameter (0=unknown). | |
| LLVM_ABI FPClassTest | getRetNoFPClass () const |
| Extract a test mask for disallowed floating-point value classes for the return value. | |
| LLVM_ABI FPClassTest | getParamNoFPClass (unsigned i) const |
| Extract a test mask for disallowed floating-point value classes for the parameter. | |
| LLVM_ABI std::optional< ConstantRange > | getRange () const |
| If this return value has a range attribute, return the value range of the argument. | |
| LLVM_ABI bool | isReturnNonNull () const |
| Return true if the return value is known to be not null. | |
| bool | returnDoesNotAlias () const |
| Determine if the return value is marked with NoAlias attribute. | |
| Value * | getReturnedArgOperand () const |
| If one of the arguments has the 'returned' attribute, returns its operand value. | |
| LLVM_ABI Value * | getArgOperandWithAttribute (Attribute::AttrKind Kind) const |
| If one of the arguments has the specified attribute, returns its operand value. | |
| bool | isNoBuiltin () const |
| Return true if the call should not be treated as a call to a builtin. | |
| bool | isStrictFP () const |
| Determine if the call requires strict floating point semantics. | |
| bool | isNoInline () const |
| Return true if the call should not be inlined. | |
| void | setIsNoInline () |
| LLVM_ABI MemoryEffects | getMemoryEffects () const |
| LLVM_ABI void | setMemoryEffects (MemoryEffects ME) |
| LLVM_ABI bool | doesNotAccessMemory () const |
| Determine if the call does not access memory. | |
| LLVM_ABI void | setDoesNotAccessMemory () |
| LLVM_ABI bool | onlyReadsMemory () const |
| Determine if the call does not access or only reads memory. | |
| LLVM_ABI void | setOnlyReadsMemory () |
| LLVM_ABI bool | onlyWritesMemory () const |
| Determine if the call does not access or only writes memory. | |
| LLVM_ABI void | setOnlyWritesMemory () |
| LLVM_ABI bool | onlyAccessesArgMemory () const |
| Determine if the call can access memmory only using pointers based on its arguments. | |
| LLVM_ABI void | setOnlyAccessesArgMemory () |
| LLVM_ABI bool | onlyAccessesInaccessibleMemory () const |
| Determine if the function may only access memory that is inaccessible from the IR. | |
| LLVM_ABI void | setOnlyAccessesInaccessibleMemory () |
| LLVM_ABI bool | onlyAccessesInaccessibleMemOrArgMem () const |
| Determine if the function may only access memory that is either inaccessible from the IR or pointed to by its arguments. | |
| LLVM_ABI void | setOnlyAccessesInaccessibleMemOrArgMem () |
| bool | doesNotReturn () const |
| Determine if the call cannot return. | |
| void | setDoesNotReturn () |
| bool | doesNoCfCheck () const |
| Determine if the call should not perform indirect branch tracking. | |
| bool | doesNotThrow () const |
| Determine if the call cannot unwind. | |
| void | setDoesNotThrow () |
| bool | cannotDuplicate () const |
| Determine if the invoke cannot be duplicated. | |
| void | setCannotDuplicate () |
| bool | cannotMerge () const |
| Determine if the call cannot be tail merged. | |
| void | setCannotMerge () |
| bool | isConvergent () const |
| Determine if the invoke is convergent. | |
| void | setConvergent () |
| void | setNotConvergent () |
| bool | hasStructRetAttr () const |
| Determine if the call returns a structure through first pointer argument. | |
| bool | hasByValArgument () const |
| Determine if any call argument is an aggregate passed by value. | |
| unsigned | getNumOperandBundles () const |
| Return the number of operand bundles associated with this User. | |
| bool | hasOperandBundles () const |
| Return true if this User has any operand bundles. | |
| unsigned | getBundleOperandsStartIndex () const |
| Return the index of the first bundle operand in the Use array. | |
| unsigned | getBundleOperandsEndIndex () const |
| Return the index of the last bundle operand in the Use array. | |
| bool | isBundleOperand (unsigned Idx) const |
Return true if the operand at index Idx is a bundle operand. | |
| bool | isOperandBundleOfType (uint32_t ID, unsigned Idx) const |
Return true if the operand at index Idx is a bundle operand that has tag ID ID. | |
| bool | isBundleOperand (const Use *U) const |
| Returns true if the use is a bundle operand. | |
| bool | isBundleOperand (Value::const_user_iterator UI) const |
| unsigned | getNumTotalBundleOperands () const |
| Return the total number operands (not operand bundles) used by every operand bundle in this OperandBundleUser. | |
| OperandBundleUse | getOperandBundleAt (unsigned Index) const |
| Return the operand bundle at a specific index. | |
| unsigned | countOperandBundlesOfType (StringRef Name) const |
| Return the number of operand bundles with the tag Name attached to this instruction. | |
| unsigned | countOperandBundlesOfType (uint32_t ID) const |
| Return the number of operand bundles with the tag ID attached to this instruction. | |
| std::optional< OperandBundleUse > | getOperandBundle (StringRef Name) const |
| Return an operand bundle by name, if present. | |
| std::optional< OperandBundleUse > | getOperandBundle (uint32_t ID) const |
| Return an operand bundle by tag ID, if present. | |
| LLVM_ABI void | getOperandBundlesAsDefs (SmallVectorImpl< OperandBundleDef > &Defs) const |
| Return the list of operand bundles attached to this instruction as a vector of OperandBundleDefs. | |
| OperandBundleUse | getOperandBundleForOperand (unsigned OpIdx) const |
| Return the operand bundle for the operand at index OpIdx. | |
| LLVM_ABI bool | hasReadingOperandBundles () const |
| Return true if this operand bundle user has operand bundles that may read from the heap. | |
| LLVM_ABI bool | hasClobberingOperandBundles () const |
| Return true if this operand bundle user has operand bundles that may write to the heap. | |
| bool | bundleOperandHasAttr (unsigned OpIdx, Attribute::AttrKind A) const |
Return true if the bundle operand at index OpIdx has the attribute A. | |
| bool | hasIdenticalOperandBundleSchema (const CallBase &Other) const |
Return true if Other has the same sequence of operand bundle tags with the same number of operands on each one of them as this OperandBundleUser. | |
| bool | hasOperandBundlesOtherThan (ArrayRef< uint32_t > IDs) const |
Return true if this operand bundle user contains operand bundles with tags other than those specified in IDs. | |
| OperandBundleUse | operandBundleFromBundleOpInfo (const BundleOpInfo &BOI) const |
| Simple helper function to map a BundleOpInfo to an OperandBundleUse. | |
| bundle_op_iterator | bundle_op_info_begin () |
| Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser. | |
| const_bundle_op_iterator | bundle_op_info_begin () const |
| Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser. | |
| bundle_op_iterator | bundle_op_info_end () |
| Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser. | |
| const_bundle_op_iterator | bundle_op_info_end () const |
| Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser. | |
| iterator_range< bundle_op_iterator > | bundle_op_infos () |
Return the range [bundle_op_info_begin, bundle_op_info_end). | |
| iterator_range< const_bundle_op_iterator > | bundle_op_infos () const |
Return the range [bundle_op_info_begin, bundle_op_info_end). | |
| LLVM_ABI op_iterator | populateBundleOperandInfos (ArrayRef< OperandBundleDef > Bundles, const unsigned BeginIndex) |
Populate the BundleOpInfo instances and the Use& vector from Bundles. | |
| bool | hasDeoptState () const |
| Return true if the call has deopt state bundle. | |
| LLVM_ABI BundleOpInfo & | getBundleOpInfoForOperand (unsigned OpIdx) |
| Return the BundleOpInfo for the operand at index OpIdx. | |
| const BundleOpInfo & | getBundleOpInfoForOperand (unsigned OpIdx) const |
| Public Member Functions inherited from llvm::Instruction | |
| LLVM_ABI iterator_range< simple_ilist< DbgRecord >::iterator > | cloneDebugInfoFrom (const Instruction *From, std::optional< simple_ilist< DbgRecord >::iterator > FromHere=std::nullopt, bool InsertAtHead=false) |
Clone any debug-info attached to From onto this instruction. | |
| iterator_range< simple_ilist< DbgRecord >::iterator > | getDbgRecordRange () const |
| Return a range over the DbgRecords attached to this instruction. | |
| LLVM_ABI std::optional< simple_ilist< DbgRecord >::iterator > | getDbgReinsertionPosition () |
| Return an iterator to the position of the "Next" DbgRecord after this instruction, or std::nullopt. | |
| LLVM_ABI bool | hasDbgRecords () const |
| Returns true if any DbgRecords are attached to this instruction. | |
| LLVM_ABI void | adoptDbgRecords (BasicBlock *BB, InstListType::iterator It, bool InsertAtHead) |
Transfer any DbgRecords on the position It onto this instruction, by simply adopting the sequence of DbgRecords (which is efficient) if possible, by merging two sequences otherwise. | |
| LLVM_ABI void | dropDbgRecords () |
| Erase any DbgRecords attached to this instruction. | |
| LLVM_ABI void | dropOneDbgRecord (DbgRecord *I) |
Erase a single DbgRecord I that is attached to this instruction. | |
| LLVM_ABI void | handleMarkerRemoval () |
| Handle the debug-info implications of this instruction being removed. | |
| Instruction (const Instruction &)=delete | |
| Instruction & | operator= (const Instruction &)=delete |
| Instruction * | user_back () |
| Specialize the methods defined in Value, as we know that an instruction can only be used by other instructions. | |
| const Instruction * | user_back () const |
| LLVM_ABI const Module * | getModule () const |
| Return the module owning the function this instruction belongs to or nullptr it the function does not have a module. | |
| Module * | getModule () |
| LLVM_ABI const Function * | getFunction () const |
| Return the function this instruction belongs to. | |
| Function * | getFunction () |
| LLVM_ABI const DataLayout & | getDataLayout () const |
| Get the data layout of the module this instruction belongs to. | |
| LLVM_ABI void | removeFromParent () |
| This method unlinks 'this' from the containing basic block, but does not delete it. | |
| LLVM_ABI InstListType::iterator | eraseFromParent () |
| This method unlinks 'this' from the containing basic block and deletes it. | |
| LLVM_ABI | LLVM_DEPRECATED ("Use iterators as instruction positions", "") void insertBefore(Instruction *InsertPos) |
| Insert an unlinked instruction into a basic block immediately before the specified instruction. | |
| LLVM_ABI void | insertBefore (InstListType::iterator InsertPos) |
| Insert an unlinked instruction into a basic block immediately before the specified position. | |
| LLVM_ABI void | insertAfter (Instruction *InsertPos) |
| Insert an unlinked instruction into a basic block immediately after the specified instruction. | |
| LLVM_ABI void | insertAfter (InstListType::iterator InsertPos) |
| Insert an unlinked instruction into a basic block immediately after the specified position. | |
| LLVM_ABI InstListType::iterator | insertInto (BasicBlock *ParentBB, InstListType::iterator It) |
Inserts an unlinked instruction into ParentBB at position It and returns the iterator of the inserted instruction. | |
| LLVM_ABI void | insertBefore (BasicBlock &BB, InstListType::iterator InsertPos) |
| LLVM_ABI | LLVM_DEPRECATED ("Use iterators as instruction positions", "") void moveBefore(Instruction *MovePos) |
| Unlink this instruction from its current basic block and insert it into the basic block that MovePos lives in, right before MovePos. | |
| LLVM_ABI void | moveBefore (InstListType::iterator InsertPos) |
| Unlink this instruction from its current basic block and insert it into the basic block that MovePos lives in, right before MovePos. | |
| LLVM_ABI void | moveBeforePreserving (InstListType::iterator MovePos) |
| Perform a moveBefore operation, while signalling that the caller intends to preserve the original ordering of instructions. | |
| LLVM_ABI void | moveBeforePreserving (BasicBlock &BB, InstListType::iterator I) |
| Perform a moveBefore operation, while signalling that the caller intends to preserve the original ordering of instructions. | |
| LLVM_ABI | LLVM_DEPRECATED ("Use iterators as instruction positions", "") void moveBeforePreserving(Instruction *MovePos) |
| Perform a moveBefore operation, while signalling that the caller intends to preserve the original ordering of instructions. | |
| LLVM_ABI void | moveBefore (BasicBlock &BB, InstListType::iterator I) |
| Unlink this instruction and insert into BB before I. | |
| LLVM_ABI void | moveAfter (Instruction *MovePos) |
| Unlink this instruction from its current basic block and insert it into the basic block that MovePos lives in, right after MovePos. | |
| LLVM_ABI void | moveAfter (InstListType::iterator MovePos) |
| Unlink this instruction from its current basic block and insert it into the basic block that MovePos lives in, right after MovePos. | |
| LLVM_ABI void | moveAfterPreserving (Instruction *MovePos) |
| See moveBeforePreserving . | |
| LLVM_ABI 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 std::optional< InstListType::iterator > | getInsertionPointAfterDef () |
| Get the first insertion point at which the result of this instruction is defined. | |
| unsigned | getOpcode () const |
| Returns a member of one of the enums like Instruction::Add. | |
| const char * | getOpcodeName () const |
| bool | isTerminator () const |
| bool | isUnaryOp () const |
| bool | isBinaryOp () const |
| bool | isIntDivRem () const |
| bool | isFPDivRem () const |
| bool | isShift () const |
| bool | isCast () const |
| bool | isFuncletPad () const |
| bool | isSpecialTerminator () const |
| LLVM_ABI bool | isOnlyUserOfAnyOperand () |
| It checks if this instruction is the only user of at least one of its operands. | |
| bool | isLogicalShift () const |
| Return true if this is a logical shift left or a logical shift right. | |
| bool | isArithmeticShift () const |
| Return true if this is an arithmetic shift right. | |
| bool | isBitwiseLogicOp () const |
| Return true if this is and/or/xor. | |
| bool | hasMetadata () const |
| Return true if this instruction has any metadata attached to it. | |
| LLVM_ABI bool | hasNonDebugLocLoopMetadata () const |
| 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. | |
| bool | hasMetadata (StringRef Kind) const |
| Return true if this instruction has the given type of metadata attached. | |
| MDNode * | getMetadata (unsigned KindID) const |
| Get the metadata of given kind attached to this Instruction. | |
| MDNode * | getMetadata (StringRef Kind) const |
| Get the metadata of given kind attached to this Instruction. | |
| void | getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
| Get all metadata attached to this Instruction. | |
| void | getAllMetadataOtherThanDebugLoc (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
| This does the same thing as getAllMetadata, except that it filters out the debug location. | |
| LLVM_ABI void | setMetadata (unsigned KindID, MDNode *Node) |
| Set the metadata of the specified kind to the specified node. | |
| LLVM_ABI void | setMetadata (StringRef Kind, MDNode *Node) |
| LLVM_ABI void | copyMetadata (const Instruction &SrcInst, ArrayRef< unsigned > WL=ArrayRef< unsigned >()) |
Copy metadata from SrcInst to this instruction. | |
| LLVM_ABI void | eraseMetadataIf (function_ref< bool(unsigned, MDNode *)> Pred) |
| Erase all metadata that matches the predicate. | |
| LLVM_ABI void | swapProfMetadata () |
| If the instruction has "branch_weights" MD_prof metadata and the MDNode has three operands (including name string), swap the order of the metadata. | |
| LLVM_ABI void | addAnnotationMetadata (StringRef Annotation) |
Adds an !annotation metadata node with Annotation to this instruction. | |
| LLVM_ABI void | addAnnotationMetadata (SmallVector< StringRef > Annotations) |
Adds an !annotation metadata node with an array of Annotations as a tuple to this instruction. | |
| LLVM_ABI AAMDNodes | getAAMetadata () const |
| Returns the AA metadata for this instruction. | |
| LLVM_ABI void | setAAMetadata (const AAMDNodes &N) |
| Sets the AA metadata on this instruction from the AAMDNodes structure. | |
| LLVM_ABI void | setNoSanitizeMetadata () |
| Sets the nosanitize metadata on this instruction. | |
| LLVM_ABI bool | extractProfTotalWeight (uint64_t &TotalVal) const |
| Retrieve total raw weight values of a branch. | |
| void | setDebugLoc (DebugLoc Loc) |
| Set the debug location information for this instruction. | |
| const DebugLoc & | getDebugLoc () const |
| Return the debug location for this node as a DebugLoc. | |
| LLVM_ABI const DebugLoc & | getStableDebugLoc () const |
| Fetch the debug location for this node, unless this is a debug intrinsic, in which case fetch the debug location of the next non-debug node. | |
| 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. | |
| 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. | |
| 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. | |
| LLVM_ABI void | setNonNeg (bool b=true) |
| Set or clear the nneg flag on this instruction, which must be a zext instruction. | |
| LLVM_ABI bool | hasNoUnsignedWrap () const LLVM_READONLY |
| Determine whether the no unsigned wrap flag is set. | |
| LLVM_ABI bool | hasNoSignedWrap () const LLVM_READONLY |
| Determine whether the no signed wrap flag is set. | |
| LLVM_ABI bool | hasNonNeg () const LLVM_READONLY |
| Determine whether the the nneg flag is set. | |
| LLVM_ABI bool | hasPoisonGeneratingFlags () const LLVM_READONLY |
| Return true if this operator has flags which may cause this instruction to evaluate to poison despite having non-poison inputs. | |
| LLVM_ABI void | dropPoisonGeneratingFlags () |
| Drops flags that may cause this instruction to evaluate to poison despite having non-poison inputs. | |
| LLVM_ABI bool | hasPoisonGeneratingMetadata () const LLVM_READONLY |
| Return true if this instruction has poison-generating metadata. | |
| LLVM_ABI void | dropPoisonGeneratingMetadata () |
| Drops metadata that may generate poison. | |
| LLVM_ABI bool | hasPoisonGeneratingReturnAttributes () const LLVM_READONLY |
| Return true if this instruction has poison-generating attribute. | |
| LLVM_ABI void | dropPoisonGeneratingReturnAttributes () |
| Drops return attributes that may generate poison. | |
| bool | hasPoisonGeneratingAnnotations () const |
| Return true if this instruction has poison-generating flags, return attributes or metadata. | |
| void | dropPoisonGeneratingAnnotations () |
| Drops flags, return attributes and metadata that may generate poison. | |
| LLVM_ABI void | dropUBImplyingAttrsAndUnknownMetadata (ArrayRef< unsigned > KnownIDs={}) |
| This function drops non-debug unknown metadata (through dropUnknownNonDebugMetadata). | |
| LLVM_ABI void | dropUBImplyingAttrsAndMetadata (ArrayRef< unsigned > Keep={}) |
| Drop any attributes or metadata that can cause immediate undefined behavior. | |
| LLVM_ABI bool | hasUBImplyingAttrs () const LLVM_READONLY |
| Return true if this instruction has UB-implying attributes that can cause immediate undefined behavior. | |
| LLVM_ABI bool | isExact () const LLVM_READONLY |
| Determine whether the exact flag is 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. | |
| LLVM_ABI void | setHasAllowReassoc (bool B) |
| Set or clear the reassociation flag on this instruction, which must be an operator which supports this flag. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| 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. | |
| LLVM_ABI bool | isFast () const LLVM_READONLY |
| Determine whether all fast-math-flags are set. | |
| LLVM_ABI bool | hasAllowReassoc () const LLVM_READONLY |
| Determine whether the allow-reassociation flag is set. | |
| LLVM_ABI bool | hasNoNaNs () const LLVM_READONLY |
| Determine whether the no-NaNs flag is set. | |
| LLVM_ABI bool | hasNoInfs () const LLVM_READONLY |
| Determine whether the no-infs flag is set. | |
| LLVM_ABI bool | hasNoSignedZeros () const LLVM_READONLY |
| Determine whether the no-signed-zeros flag is set. | |
| LLVM_ABI bool | hasAllowReciprocal () const LLVM_READONLY |
| Determine whether the allow-reciprocal flag is set. | |
| LLVM_ABI bool | hasAllowContract () const LLVM_READONLY |
| Determine whether the allow-contract flag is set. | |
| LLVM_ABI bool | hasApproxFunc () const LLVM_READONLY |
| Determine whether the approximate-math-functions flag is set. | |
| LLVM_ABI FastMathFlags | getFastMathFlags () const LLVM_READONLY |
| Convenience function for getting all the fast-math flags, which must be an operator which supports these flags. | |
| LLVM_ABI void | copyFastMathFlags (const Instruction *I) |
| Copy I's fast-math flags. | |
| LLVM_ABI void | copyIRFlags (const Value *V, bool IncludeWrapFlags=true) |
| Convenience method to copy supported exact, fast-math, and (optionally) wrapping flags from V to this instruction. | |
| LLVM_ABI void | andIRFlags (const Value *V) |
| Logical 'and' of any supported wrapping, exact, and fast-math flags of V and this instruction. | |
| LLVM_ABI void | applyMergedLocation (DebugLoc LocA, DebugLoc LocB) |
| Merge 2 debug locations and apply it to the Instruction. | |
| LLVM_ABI void | updateLocationAfterHoist () |
| Updates the debug location given that the instruction has been hoisted from a block to a predecessor of that block. | |
| LLVM_ABI void | dropLocation () |
| Drop the instruction's debug location. | |
| LLVM_ABI void | mergeDIAssignID (ArrayRef< const Instruction * > SourceInstructions) |
Merge the DIAssignID metadata from this instruction and those attached to instructions in SourceInstructions. | |
| LLVM_ABI bool | isAssociative () const LLVM_READONLY |
| Return true if the instruction is associative: | |
| LLVM_ABI bool | isCommutative () const LLVM_READONLY |
| Return true if the instruction is commutative: | |
| bool | isIdempotent () const |
| Return true if the instruction is idempotent: | |
| bool | isNilpotent () const |
| Return true if the instruction is nilpotent: | |
| LLVM_ABI bool | mayWriteToMemory () const LLVM_READONLY |
| Return true if this instruction may modify memory. | |
| LLVM_ABI bool | mayReadFromMemory () const LLVM_READONLY |
| Return true if this instruction may read memory. | |
| bool | mayReadOrWriteMemory () const |
| Return true if this instruction may read or write memory. | |
| LLVM_ABI bool | isAtomic () const LLVM_READONLY |
| Return true if this instruction has an AtomicOrdering of unordered or higher. | |
| LLVM_ABI bool | hasAtomicLoad () const LLVM_READONLY |
| Return true if this atomic instruction loads from memory. | |
| LLVM_ABI bool | hasAtomicStore () const LLVM_READONLY |
| Return true if this atomic instruction stores to memory. | |
| LLVM_ABI bool | isVolatile () const LLVM_READONLY |
| Return true if this instruction has a volatile memory access. | |
| LLVM_ABI Type * | getAccessType () const LLVM_READONLY |
| Return the type this instruction accesses in memory, if any. | |
| LLVM_ABI bool | mayThrow (bool IncludePhaseOneUnwind=false) const LLVM_READONLY |
| Return true if this instruction may throw an exception. | |
| bool | isFenceLike () const |
| Return true if this instruction behaves like a memory fence: it can load or store to memory location without being given a memory location. | |
| LLVM_ABI bool | mayHaveSideEffects () const LLVM_READONLY |
| Return true if the instruction may have side effects. | |
| LLVM_ABI bool | isSafeToRemove () const LLVM_READONLY |
| Return true if the instruction can be removed if the result is unused. | |
| LLVM_ABI bool | willReturn () const LLVM_READONLY |
| Return true if the instruction will return (unwinding is considered as a form of returning control flow here). | |
| bool | isEHPad () const |
| Return true if the instruction is a variety of EH-block. | |
| LLVM_ABI bool | isLifetimeStartOrEnd () const LLVM_READONLY |
| Return true if the instruction is a llvm.lifetime.start or llvm.lifetime.end marker. | |
| LLVM_ABI bool | isLaunderOrStripInvariantGroup () const LLVM_READONLY |
| Return true if the instruction is a llvm.launder.invariant.group or llvm.strip.invariant.group. | |
| LLVM_ABI bool | isDebugOrPseudoInst () const LLVM_READONLY |
| Return true if the instruction is a DbgInfoIntrinsic or PseudoProbeInst. | |
| LLVM_ABI Instruction * | clone () const |
| Create a copy of 'this' instruction that is identical in all ways except the following: | |
| LLVM_ABI bool | isIdenticalTo (const Instruction *I) const LLVM_READONLY |
| Return true if the specified instruction is exactly identical to the current one. | |
| LLVM_ABI bool | isIdenticalToWhenDefined (const Instruction *I, bool IntersectAttrs=false) const LLVM_READONLY |
| This is like isIdenticalTo, except that it ignores the SubclassOptionalData flags, which may specify conditions under which the instruction's result is undefined. | |
| LLVM_ABI bool | isSameOperationAs (const Instruction *I, unsigned flags=0) const LLVM_READONLY |
| This function determines if the specified instruction executes the same operation as the current one. | |
| LLVM_ABI bool | hasSameSpecialState (const Instruction *I2, bool IgnoreAlignment=false, bool IntersectAttrs=false) const LLVM_READONLY |
| This function determines if the speficied instruction has the same "special" characteristics as the current one. | |
| LLVM_ABI bool | isUsedOutsideOfBlock (const BasicBlock *BB) const LLVM_READONLY |
| Return true if there are any uses of this instruction in blocks other than the specified block. | |
| LLVM_ABI unsigned | getNumSuccessors () const LLVM_READONLY |
| Return the number of successors that this instruction has. | |
| LLVM_ABI BasicBlock * | getSuccessor (unsigned Idx) const LLVM_READONLY |
| Return the specified successor. This instruction must be a terminator. | |
| LLVM_ABI void | setSuccessor (unsigned Idx, BasicBlock *BB) |
| Update the specified successor to point at the provided block. | |
| LLVM_ABI void | replaceSuccessorWith (BasicBlock *OldBB, BasicBlock *NewBB) |
| Replace specified successor OldBB to point at the provided block. | |
| LLVM_ABI void | dropUnknownNonDebugMetadata (ArrayRef< unsigned > KnownIDs={}) |
| Drop all unknown metadata except for debug locations. | |
| Public Member Functions inherited from llvm::User | |
| User (const User &)=delete | |
| LLVM_ABI void | operator delete (void *Usr) |
| Free memory allocated for User and Use objects. | |
| void | operator delete (void *Usr, HungOffOperandsAllocMarker) |
| Placement delete - required by std, called if the ctor throws. | |
| void | operator delete (void *Usr, IntrusiveOperandsAllocMarker) |
| Placement delete - required by std, called if the ctor throws. | |
| void | operator delete (void *Usr, IntrusiveOperandsAndDescriptorAllocMarker) |
| Placement delete - required by std, called if the ctor throws. | |
| const Use * | getOperandList () const |
| Use * | getOperandList () |
| Value * | getOperand (unsigned i) const |
| void | setOperand (unsigned i, Value *Val) |
| const Use & | getOperandUse (unsigned i) const |
| Use & | getOperandUse (unsigned i) |
| unsigned | getNumOperands () const |
| LLVM_ABI ArrayRef< const uint8_t > | getDescriptor () const |
| Returns the descriptor co-allocated with this User instance. | |
| LLVM_ABI MutableArrayRef< uint8_t > | getDescriptor () |
| Returns the descriptor co-allocated with this User instance. | |
| void | setNumHungOffUseOperands (unsigned NumOps) |
| Subclasses with hung off uses need to manage the operand count themselves. | |
| LLVM_ABI bool | isDroppable () const |
| A droppable user is a user for which uses can be dropped without affecting correctness and should be dropped rather than preventing a transformation from happening. | |
| op_iterator | op_begin () |
| const_op_iterator | op_begin () const |
| op_iterator | op_end () |
| const_op_iterator | op_end () const |
| op_range | operands () |
| const_op_range | operands () const |
| value_op_iterator | value_op_begin () |
| value_op_iterator | value_op_end () |
| iterator_range< value_op_iterator > | operand_values () |
| const_value_op_iterator | value_op_begin () const |
| const_value_op_iterator | value_op_end () const |
| iterator_range< const_value_op_iterator > | operand_values () const |
| void | dropAllReferences () |
| Drop all references to operands. | |
| LLVM_ABI bool | replaceUsesOfWith (Value *From, Value *To) |
| Replace uses of one Value with another. | |
| Public Member Functions inherited from llvm::Value | |
| Value (const Value &)=delete | |
| Value & | operator= (const Value &)=delete |
| LLVM_ABI void | deleteValue () |
| Delete a pointer to a generic Value. | |
| LLVM_ABI void | dump () const |
| Support for debugging, callable in GDB: V->dump() | |
| Type * | getType () const |
| All values are typed, get the type of this value. | |
| LLVM_ABI LLVMContext & | getContext () const |
| All values hold a context through their type. | |
| bool | hasName () const |
| LLVM_ABI ValueName * | getValueName () const |
| LLVM_ABI void | setValueName (ValueName *VN) |
| LLVM_ABI StringRef | getName () const |
| Return a constant reference to the value's name. | |
| LLVM_ABI void | setName (const Twine &Name) |
| Change the name of the value. | |
| LLVM_ABI void | takeName (Value *V) |
| Transfer the name from V to this value. | |
| LLVM_ABI std::string | getNameOrAsOperand () const |
| LLVM_ABI void | replaceAllUsesWith (Value *V) |
| Change all uses of this to point to a new Value. | |
| LLVM_ABI void | replaceNonMetadataUsesWith (Value *V) |
| Change non-metadata uses of this to point to a new Value. | |
| LLVM_ABI void | replaceUsesWithIf (Value *New, llvm::function_ref< bool(Use &U)> ShouldReplace) |
| Go through the uses list for this definition and make each use point to "V" if the callback ShouldReplace returns true for the given Use. | |
| LLVM_ABI void | replaceUsesOutsideBlock (Value *V, BasicBlock *BB) |
| replaceUsesOutsideBlock - Go through the uses list for this definition and make each use point to "V" instead of "this" when the use is outside the block. | |
| LLVM_ABI void | assertModuleIsMaterializedImpl () const |
| void | assertModuleIsMaterialized () const |
| bool | hasUseList () const |
| Check if this Value has a use-list. | |
| bool | use_empty () const |
| bool | materialized_use_empty () const |
| use_iterator | materialized_use_begin () |
| const_use_iterator | materialized_use_begin () const |
| use_iterator | use_begin () |
| const_use_iterator | use_begin () const |
| use_iterator | use_end () |
| const_use_iterator | use_end () const |
| iterator_range< use_iterator > | materialized_uses () |
| iterator_range< const_use_iterator > | materialized_uses () const |
| iterator_range< use_iterator > | uses () |
| iterator_range< const_use_iterator > | uses () const |
| bool | user_empty () const |
| user_iterator | materialized_user_begin () |
| const_user_iterator | materialized_user_begin () const |
| user_iterator | user_begin () |
| const_user_iterator | user_begin () const |
| user_iterator | user_end () |
| const_user_iterator | user_end () const |
| User * | user_back () |
| const User * | user_back () const |
| iterator_range< user_iterator > | materialized_users () |
| iterator_range< const_user_iterator > | materialized_users () const |
| iterator_range< user_iterator > | users () |
| iterator_range< const_user_iterator > | users () const |
| bool | hasOneUse () const |
| Return true if there is exactly one use of this value. | |
| LLVM_ABI bool | hasNUses (unsigned N) const |
| Return true if this Value has exactly N uses. | |
| LLVM_ABI bool | hasNUsesOrMore (unsigned N) const |
| Return true if this value has N uses or more. | |
| LLVM_ABI bool | hasOneUser () const |
| Return true if there is exactly one user of this value. | |
| LLVM_ABI Use * | getSingleUndroppableUse () |
| Return true if there is exactly one use of this value that cannot be dropped. | |
| const Use * | getSingleUndroppableUse () const |
| LLVM_ABI User * | getUniqueUndroppableUser () |
| Return true if there is exactly one unique user of this value that cannot be dropped (that user can have multiple uses of this value). | |
| const User * | getUniqueUndroppableUser () const |
| LLVM_ABI bool | hasNUndroppableUses (unsigned N) const |
| Return true if there this value. | |
| LLVM_ABI bool | hasNUndroppableUsesOrMore (unsigned N) const |
| Return true if this value has N uses or more. | |
| LLVM_ABI void | dropDroppableUses (llvm::function_ref< bool(const Use *)> ShouldDrop=[](const Use *) { return true;}) |
| Remove every uses that can safely be removed. | |
| LLVM_ABI void | dropDroppableUsesIn (User &Usr) |
Remove every use of this value in User that can safely be removed. | |
| LLVM_ABI bool | isUsedInBasicBlock (const BasicBlock *BB) const |
| Check if this value is used in the specified basic block. | |
| LLVM_ABI unsigned | getNumUses () const |
| This method computes the number of uses of this Value. | |
| void | addUse (Use &U) |
| This method should only be used by the Use class. | |
| unsigned | getValueID () const |
| Return an ID for the concrete type of this object. | |
| unsigned | getRawSubclassOptionalData () const |
| Return the raw optional flags value contained in this value. | |
| void | clearSubclassOptionalData () |
| Clear the optional flags contained in this value. | |
| bool | hasSameSubclassOptionalData (const Value *V) const |
| Check the optional flags for equality. | |
| bool | hasValueHandle () const |
| Return true if there is a value handle associated with this value. | |
| bool | isUsedByMetadata () const |
| Return true if there is metadata referencing this value. | |
| LLVM_ABI bool | isSwiftError () const |
| Return true if this value is a swifterror value. | |
| LLVM_ABI const Value * | stripPointerCasts () const |
| Strip off pointer casts, all-zero GEPs and address space casts. | |
| Value * | stripPointerCasts () |
| LLVM_ABI const Value * | stripPointerCastsAndAliases () const |
| Strip off pointer casts, all-zero GEPs, address space casts, and aliases. | |
| Value * | stripPointerCastsAndAliases () |
| LLVM_ABI const Value * | stripPointerCastsSameRepresentation () const |
| Strip off pointer casts, all-zero GEPs and address space casts but ensures the representation of the result stays the same. | |
| Value * | stripPointerCastsSameRepresentation () |
| LLVM_ABI const Value * | stripPointerCastsForAliasAnalysis () const |
| Strip off pointer casts, all-zero GEPs, single-argument phi nodes and invariant group info. | |
| Value * | stripPointerCastsForAliasAnalysis () |
| LLVM_ABI const Value * | stripInBoundsConstantOffsets () const |
| Strip off pointer casts and all-constant inbounds GEPs. | |
| Value * | stripInBoundsConstantOffsets () |
| LLVM_ABI const Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) const |
| Accumulate the constant offset this value has compared to a base pointer. | |
| Value * | stripAndAccumulateConstantOffsets (const DataLayout &DL, APInt &Offset, bool AllowNonInbounds, bool AllowInvariantGroup=false, function_ref< bool(Value &Value, APInt &Offset)> ExternalAnalysis=nullptr, bool LookThroughIntToPtr=false) |
| const Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) const |
| This is a wrapper around stripAndAccumulateConstantOffsets with the in-bounds requirement set to false. | |
| Value * | stripAndAccumulateInBoundsConstantOffsets (const DataLayout &DL, APInt &Offset) |
| LLVM_ABI const Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) const |
| Strip off pointer casts and inbounds GEPs. | |
| Value * | stripInBoundsOffsets (function_ref< void(const Value *)> Func=[](const Value *) {}) |
| LLVM_ABI std::optional< int64_t > | getPointerOffsetFrom (const Value *Other, const DataLayout &DL) const |
If this ptr is provably equal to Other plus a constant offset, return that offset in bytes. | |
| LLVM_ABI bool | canBeFreed () const |
| Return true if the memory object referred to by V can by freed in the scope for which the SSA value defining the allocation is statically defined. | |
| LLVM_ABI uint64_t | getPointerDereferenceableBytes (const DataLayout &DL, bool &CanBeNull, bool &CanBeFreed) const |
| Returns the number of bytes known to be dereferenceable for the pointer value. | |
| LLVM_ABI Align | getPointerAlignment (const DataLayout &DL) const |
| Returns an alignment of the pointer value. | |
| LLVM_ABI const Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) const |
| Translate PHI node to its predecessor from the given basic block. | |
| Value * | DoPHITranslation (const BasicBlock *CurBB, const BasicBlock *PredBB) |
| void | mutateType (Type *Ty) |
| Mutate the type of this Value to be of the specified type. | |
| template<class Compare> | |
| void | sortUseList (Compare Cmp) |
| Sort the use-list. | |
| LLVM_ABI void | reverseUseList () |
| Reverse the use-list. | |
| LLVM_ABI void | print (raw_ostream &O, bool IsForDebug=false) const |
| Implement operator<< on Value. | |
| LLVM_ABI void | print (raw_ostream &O, ModuleSlotTracker &MST, bool IsForDebug=false) const |
| LLVM_ABI void | printAsOperand (raw_ostream &O, bool PrintType=true, const Module *M=nullptr) const |
| Print the name of this Value out to the specified raw_ostream. | |
| LLVM_ABI void | printAsOperand (raw_ostream &O, bool PrintType, ModuleSlotTracker &MST) const |
| Public Member Functions inherited from llvm::ilist_node_with_parent< Instruction, BasicBlock, ilist_iterator_bits< true >, ilist_parent< BasicBlock > > | |
| Instruction * | getPrevNode () |
| Instruction * | getNextNode () |
Get the next node, or nullptr for the list tail. | |
| Public Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< Instruction, Options... >::type > | |
| self_iterator | getIterator () |
| reverse_self_iterator | getReverseIterator () |
| std::enable_if_t< T::is_sentinel_tracking_explicit, bool > | isSentinel () const |
| Check whether this is the sentinel node. | |
| Public Member Functions inherited from llvm::ilist_detail::node_parent_access< ilist_node_impl< ilist_detail::compute_node_options< Instruction, Options... >::type >, ilist_detail::compute_node_options< Instruction, Options... >::type::parent_ty > | |
| const ilist_detail::compute_node_options< Instruction, Options... >::type::parent_ty * | getParent () const |
| void | setParent (ilist_detail::compute_node_options< Instruction, Options... >::type::parent_ty *Parent) |
| Public Attributes inherited from llvm::Instruction | |
| DbgMarker * | DebugMarker = nullptr |
| Optional marker recording the position for debugging information that takes effect immediately before this instruction. | |
| Static Public Attributes inherited from llvm::Value | |
| static constexpr unsigned | MaxAlignmentExponent = 32 |
| The maximum alignment for instructions. | |
| static constexpr uint64_t | MaximumAlignment = 1ULL << MaxAlignmentExponent |
| Protected Types inherited from llvm::CallBase | |
| using | CallInstReservedField = Bitfield::Element<unsigned, 0, 2> |
| using | CallingConvField |
| Protected Types inherited from llvm::Instruction | |
| using | OpaqueField = Bitfield::Element<uint16_t, 0, 15> |
| template<unsigned Offset> | |
| using | AlignmentBitfieldElementT |
| template<unsigned Offset> | |
| using | BoolBitfieldElementT = typename Bitfield::Element<bool, Offset, 1> |
| template<unsigned Offset> | |
| using | AtomicOrderingBitfieldElementT |
| Protected Types inherited from llvm::Value | |
| enum | : unsigned { NumUserOperandsBits = 27 } |
| The number of operands in the subclass. More... | |
| Protected Types inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< Instruction, Options... >::type > | |
| using | self_iterator |
| using | const_self_iterator |
| using | reverse_self_iterator |
| using | const_reverse_self_iterator |
| Protected Member Functions inherited from llvm::CallInst | |
| LLVM_ABI CallInst * | cloneImpl () const |
| Protected Member Functions inherited from llvm::CallBase | |
| template<class... ArgsTy> | |
| CallBase (AttributeList const &A, FunctionType *FT, ArgsTy &&... Args) | |
| bool | hasDescriptor () const |
| unsigned | getNumSubclassExtraOperands () const |
| LLVM_ABI unsigned | getNumSubclassExtraOperandsDynamic () const |
| Get the number of extra operands for instructions that don't have a fixed number of extra operands. | |
| Instruction (const Instruction &)=delete | |
| LLVM_ABI | Instruction (Type *Ty, unsigned iType, AllocInfo AllocInfo, InsertPosition InsertBefore=nullptr) |
| Protected Member Functions inherited from llvm::Instruction | |
| LLVM_ABI | ~Instruction () |
| template<typename BitfieldElement> | |
| BitfieldElement::Type | getSubclassData () const |
| template<typename BitfieldElement> | |
| void | setSubclassData (typename BitfieldElement::Type Value) |
| LLVM_ABI | Instruction (Type *Ty, unsigned iType, AllocInfo AllocInfo, InsertPosition InsertBefore=nullptr) |
| Protected Member Functions inherited from llvm::User | |
| void * | operator new (size_t Size)=delete |
| LLVM_ABI void * | operator new (size_t Size, HungOffOperandsAllocMarker) |
| Allocate a User with an operand pointer co-allocated. | |
| LLVM_ABI void * | operator new (size_t Size, IntrusiveOperandsAllocMarker allocTrait) |
| Allocate a User with the operands co-allocated. | |
| LLVM_ABI void * | operator new (size_t Size, IntrusiveOperandsAndDescriptorAllocMarker allocTrait) |
| Allocate a User with the operands co-allocated. | |
| User (Type *ty, unsigned vty, AllocInfo AllocInfo) | |
| LLVM_ABI void | allocHungoffUses (unsigned N, bool IsPhi=false) |
| Allocate the array of Uses, followed by a pointer (with bottom bit set) to the User. | |
| LLVM_ABI void | growHungoffUses (unsigned N, bool IsPhi=false) |
| Grow the number of hung off uses. | |
| ~User ()=default | |
| template<int Idx> | |
| Use & | Op () |
| template<int Idx> | |
| const Use & | Op () const |
| Protected Member Functions inherited from llvm::Value | |
| LLVM_ABI | Value (Type *Ty, unsigned scid) |
| LLVM_ABI | ~Value () |
| Value's destructor should be virtual by design, but that would require that Value and all of its subclasses have a vtable that effectively duplicates the information in the value ID. | |
| LLVM_ABI void | getAllMetadata (SmallVectorImpl< std::pair< unsigned, MDNode * > > &MDs) const |
Appends all metadata attached to this value to MDs, sorting by KindID. | |
| bool | hasMetadata () const |
| Return true if this value has any metadata attached to it. | |
| LLVM_ABI bool | eraseMetadata (unsigned KindID) |
| Erase all metadata attachments with the given kind. | |
| LLVM_ABI void | eraseMetadataIf (function_ref< bool(unsigned, MDNode *)> Pred) |
| Erase all metadata attachments matching the given predicate. | |
| LLVM_ABI void | clearMetadata () |
| Erase all metadata attached to this Value. | |
| LLVM_ABI MDNode * | getMetadataImpl (unsigned KindID) const |
| Get metadata for the given kind, if any. | |
| unsigned short | getSubclassDataFromValue () const |
| void | setValueSubclassData (unsigned short D) |
| MDNode * | getMetadata (unsigned KindID) const |
| Get the current metadata attachments for the given kind, if any. | |
| LLVM_ABI MDNode * | getMetadata (StringRef Kind) const |
| LLVM_ABI void | getMetadata (unsigned KindID, SmallVectorImpl< MDNode * > &MDs) const |
Appends all attachments with the given ID to MDs in insertion order. | |
| LLVM_ABI void | getMetadata (StringRef Kind, SmallVectorImpl< MDNode * > &MDs) const |
| bool | hasMetadata (unsigned KindID) const |
| Return true if this value has the given type of metadata attached. | |
| bool | hasMetadata (StringRef Kind) const |
| LLVM_ABI void | setMetadata (unsigned KindID, MDNode *Node) |
| Set a particular kind of metadata attachment. | |
| LLVM_ABI void | setMetadata (StringRef Kind, MDNode *Node) |
| LLVM_ABI void | addMetadata (unsigned KindID, MDNode &MD) |
| Add a metadata attachment. | |
| LLVM_ABI void | addMetadata (StringRef Kind, MDNode &MD) |
| Protected Member Functions inherited from llvm::ilist_node_with_parent< Instruction, BasicBlock, ilist_iterator_bits< true >, ilist_parent< BasicBlock > > | |
| ilist_node_with_parent ()=default | |
| Protected Member Functions inherited from llvm::ilist_node_impl< ilist_detail::compute_node_options< Instruction, Options... >::type > | |
| ilist_node_impl ()=default | |
| Static Protected Member Functions inherited from llvm::InstrProfInstBase | |
| static bool | isCounterBase (const IntrinsicInst &I) |
| static bool | isMCDCBitmapBase (const IntrinsicInst &I) |
| static unsigned | CountBundleInputs (ArrayRef< OperandBundleDef > Bundles) |
Return the total number of values used in Bundles. | |
| Static Protected Member Functions inherited from llvm::User | |
| template<int Idx, typename U> | |
| static Use & | OpFrom (const U *that) |
| Protected Attributes inherited from llvm::CallBase | |
| AttributeList | Attrs |
| parameter attributes for callable | |
| FunctionType * | FTy |
| Protected Attributes inherited from llvm::Value | |
| unsigned char | SubclassOptionalData: 7 |
| Hold subclass data that can be dropped. | |
| unsigned | NumUserOperands: NumUserOperandsBits |
| unsigned | IsUsedByMD: 1 |
| unsigned | HasName: 1 |
| unsigned | HasMetadata: 1 |
| unsigned | HasHungOffUses: 1 |
| unsigned | HasDescriptor: 1 |
| Static Protected Attributes inherited from llvm::CallBase | |
| static constexpr int | CalledOperandOpEndIdx = -1 |
| The last operand is the called operand. | |
This represents the llvm.instrprof.increment.step intrinsic.
Definition at line 1522 of file IntrinsicInst.h.
|
inlinestatic |
Definition at line 1524 of file IntrinsicInst.h.
References I.
Referenced by classof(), and llvm::InstrProfIncrementInst::getStep().
Definition at line 1527 of file IntrinsicInst.h.
References llvm::cast(), classof(), and llvm::isa().