class CallBase
Declaration
class CallBase : public Instruction { /* full declaration omitted */ };
Declared at: llvm/include/llvm/IR/InstrTypes.h:1105
Inherits from: Instruction
Member Variables
- protected llvm::AttributeList Attrs
- parameter attributes for callable
- protected llvm::FunctionType* FTy
- protected static const int CalledOperandOpEndIdx = -1
- The last operand is the called operand.
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 29
- public static MaximumAlignment = 1U << MaxAlignmentExponent
Method Overview
- protected template <class... ArgsTy> CallBase(const llvm::AttributeList & A, llvm::FunctionType * FT, ArgsTy &&... Args)
- protected static unsigned int CountBundleInputs(ArrayRef<llvm::OperandBundleDef> Bundles)
- public void addAttribute(unsigned int i, Attribute::AttrKind Kind)
- public void addAttribute(unsigned int i, llvm::Attribute Attr)
- public void addDereferenceableAttr(unsigned int i, uint64_t Bytes)
- public void addDereferenceableOrNullAttr(unsigned int i, uint64_t Bytes)
- public void addParamAttr(unsigned int ArgNo, Attribute::AttrKind Kind)
- public void addParamAttr(unsigned int ArgNo, llvm::Attribute Attr)
- public User::const_op_iterator arg_begin() const
- public User::op_iterator arg_begin()
- public bool arg_empty() const
- public User::const_op_iterator arg_end() const
- public User::op_iterator arg_end()
- public iterator_range<User::const_op_iterator> arg_operands() const
- public iterator_range<User::op_iterator> arg_operands()
- public unsigned int arg_size() const
- public iterator_range<User::op_iterator> args()
- public iterator_range<User::const_op_iterator> args() const
- public bool bundleOperandHasAttr(unsigned int OpIdx, Attribute::AttrKind A) const
- public llvm::CallBase::bundle_op_iterator bundle_op_info_begin()
- public llvm::CallBase::const_bundle_op_iterator bundle_op_info_begin() const
- public llvm::CallBase::bundle_op_iterator bundle_op_info_end()
- public llvm::CallBase::const_bundle_op_iterator bundle_op_info_end() const
- public iterator_range<llvm::CallBase::const_bundle_op_iterator> bundle_op_infos() const
- public iterator_range<llvm::CallBase::bundle_op_iterator> bundle_op_infos()
- public bool cannotDuplicate() const
- public static bool classof(const llvm::Value * V)
- public static bool classof(const llvm::Instruction * I)
- public unsigned int countOperandBundlesOfType(llvm::StringRef Name) const
- public unsigned int countOperandBundlesOfType(uint32_t ID) const
- public bool dataOperandHasImpliedAttr(unsigned int i, Attribute::AttrKind Kind) const
- public User::op_iterator data_operands_begin()
- public User::const_op_iterator data_operands_begin() const
- public bool data_operands_empty() const
- public User::const_op_iterator data_operands_end() const
- public User::op_iterator data_operands_end()
- public unsigned int data_operands_size() const
- public iterator_range<User::const_op_iterator> data_ops() const
- public iterator_range<User::op_iterator> data_ops()
- public bool doesNoCfCheck() const
- public bool doesNotAccessMemory(unsigned int OpNo) const
- public bool doesNotAccessMemory() const
- public bool doesNotCapture(unsigned int OpNo) const
- public bool doesNotReadMemory(unsigned int OpNo) const
- public bool doesNotReadMemory() const
- public bool doesNotReturn() const
- public bool doesNotThrow() const
- public llvm::Value * getArgOperand(unsigned int i) const
- public unsigned int getArgOperandNo(Value::const_user_iterator UI) const
- public unsigned int getArgOperandNo(const llvm::Use * U) const
- public llvm::Use & getArgOperandUse(unsigned int i)
- public const llvm::Use & getArgOperandUse(unsigned int i) const
- public llvm::Attribute getAttribute(unsigned int i, Attribute::AttrKind Kind) const
- public llvm::Attribute getAttribute(unsigned int i, llvm::StringRef Kind) const
- public llvm::AttributeList getAttributes() const
- public const llvm::CallBase::BundleOpInfo & getBundleOpInfoForOperand(unsigned int OpIdx) const
- public unsigned int getBundleOperandsEndIndex() const
- public unsigned int getBundleOperandsStartIndex() const
- public llvm::Function * getCalledFunction() const
- public llvm::Value * getCalledOperand() const
- public llvm::Use & getCalledOperandUse()
- public const llvm::Use & getCalledOperandUse() const
- public llvm::Value * getCalledValue() const
- public const llvm::Function * getCaller() const
- public llvm::Function * getCaller()
- public CallingConv::ID getCallingConv() const
- public unsigned int getDataOperandNo(const llvm::Use * U) const
- public unsigned int getDataOperandNo(Value::const_user_iterator UI) const
- public uint64_t getDereferenceableBytes(unsigned int i) const
- public uint64_t getDereferenceableOrNullBytes(unsigned int i) const
- public llvm::FunctionType * getFunctionType() const
- public Intrinsic::ID getIntrinsicID() const
- public unsigned int getNumArgOperands() const
- public unsigned int getNumOperandBundles() const
- protected unsigned int getNumSubclassExtraOperands() const
- protected unsigned int getNumSubclassExtraOperandsDynamic() const
- public unsigned int getNumTotalBundleOperands() const
- public Optional<llvm::OperandBundleUse> getOperandBundle(uint32_t ID) const
- public Optional<llvm::OperandBundleUse> getOperandBundle(llvm::StringRef Name) const
- public llvm::OperandBundleUse getOperandBundleAt(unsigned int Index) const
- public llvm::OperandBundleUse getOperandBundleForOperand(unsigned int OpIdx) const
- public void getOperandBundlesAsDefs(SmallVectorImpl<llvm::OperandBundleDef> & Defs) const
- public llvm::MaybeAlign getParamAlign(unsigned int ArgNo) const
- public unsigned int getParamAlignment(unsigned int ArgNo) const
- public llvm::Attribute getParamAttr(unsigned int ArgNo, llvm::StringRef Kind) const
- public llvm::Attribute getParamAttr(unsigned int ArgNo, Attribute::AttrKind Kind) const
- public llvm::Type * getParamByValType(unsigned int ArgNo) const
- public llvm::MaybeAlign getRetAlign() const
- public unsigned int getRetAlignment() const
- public llvm::Value * getReturnedArgOperand() const
- public bool hasArgument(const llvm::Value * V) const
- public bool hasByValArgument() const
- public bool hasClobberingOperandBundles() const
- protected bool hasDescriptor() const
- public bool hasFnAttr(Attribute::AttrKind Kind) const
- public bool hasFnAttr(llvm::StringRef Kind) const
- public bool hasIdenticalOperandBundleSchema(const llvm::CallBase & Other) const
- public bool hasInAllocaArgument() const
- public bool hasOperandBundles() const
- public bool hasOperandBundlesOtherThan(ArrayRef<uint32_t> IDs) const
- public bool hasReadingOperandBundles() const
- public bool hasRetAttr(Attribute::AttrKind Kind) const
- public bool hasStructRetAttr() const
- public bool isArgOperand(Value::const_user_iterator UI) const
- public bool isArgOperand(const llvm::Use * U) const
- public bool isBundleOperand(Value::const_user_iterator UI) const
- public bool isBundleOperand(const llvm::Use * U) const
- public bool isBundleOperand(unsigned int Idx) const
- public bool isByValArgument(unsigned int ArgNo) const
- public bool isByValOrInAllocaArgument(unsigned int ArgNo) const
- public bool isCallee(const llvm::Use * U) const
- public bool isCallee(Value::const_user_iterator UI) const
- public bool isConvergent() const
- public bool isDataOperand(Value::const_user_iterator UI) const
- public bool isDataOperand(const llvm::Use * U) const
- public bool isFnAttrDisallowedByOpBundle(Attribute::AttrKind A) const
- public bool isFnAttrDisallowedByOpBundle(llvm::StringRef S) const
- public bool isInAllocaArgument(unsigned int ArgNo) const
- public bool isIndirectCall() const
- public bool isInlineAsm() const
- public bool isMustTailCall() const
- public bool isNoBuiltin() const
- public bool isNoInline() const
- public bool isReturnNonNull() const
- public bool isStrictFP() const
- public bool isTailCall() const
- public void mutateFunctionType(llvm::FunctionType * FTy)
- public bool onlyAccessesArgMemory() const
- public bool onlyAccessesInaccessibleMemOrArgMem() const
- public bool onlyAccessesInaccessibleMemory() const
- public bool onlyReadsMemory() const
- public bool onlyReadsMemory(unsigned int OpNo) const
- public llvm::OperandBundleUse operandBundleFromBundleOpInfo(const llvm::CallBase::BundleOpInfo & BOI) const
- public bool paramHasAttr(unsigned int ArgNo, Attribute::AttrKind Kind) const
- public llvm::User::op_iterator populateBundleOperandInfos(ArrayRef<llvm::OperandBundleDef> Bundles, const unsigned int BeginIndex)
- public void removeAttribute(unsigned int i, Attribute::AttrKind Kind)
- public void removeAttribute(unsigned int i, llvm::StringRef Kind)
- public void removeParamAttr(unsigned int ArgNo, Attribute::AttrKind Kind)
- public void removeParamAttr(unsigned int ArgNo, llvm::StringRef Kind)
- public bool returnDoesNotAlias() const
- public void setArgOperand(unsigned int i, llvm::Value * v)
- public void setAttributes(llvm::AttributeList A)
- public void setCalledFunction(llvm::Function * Fn)
- public void setCalledFunction(llvm::FunctionCallee Fn)
- public void setCalledFunction(llvm::FunctionType * FTy, llvm::Value * Fn)
- public void setCalledOperand(llvm::Value * V)
- public void setCallingConv(CallingConv::ID CC)
- public void setCannotDuplicate()
- public void setConvergent()
- public void setDoesNotAccessMemory()
- public void setDoesNotReadMemory()
- public void setDoesNotReturn()
- public void setDoesNotThrow()
- public void setIsNoInline()
- public void setNotConvergent()
- public void setOnlyAccessesArgMemory()
- public void setOnlyAccessesInaccessibleMemOrArgMem()
- public void setOnlyAccessesInaccessibleMemory()
- public void setOnlyReadsMemory()
Inherited from Instruction:
- public andIRFlags
- public applyMergedLocation
- public classof
- public clone
- public copyFastMathFlags
- public copyFastMathFlags
- public copyIRFlags
- public copyMetadata
- public dropPoisonGeneratingFlags
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public dropUnknownNonDebugMetadata
- public eraseFromParent
- public extractProfMetadata
- public extractProfTotalWeight
- public getAAMetadata
- public getAllMetadata
- public getAllMetadataOtherThanDebugLoc
- public getDebugLoc
- public getFastMathFlags
- public getFunction
- public getFunction
- public getMetadata
- public getMetadata
- public getModule
- public getModule
- public getNextNonDebugInstruction
- public getNextNonDebugInstruction
- public getNumSuccessors
- public getOpcode
- public getOpcodeName
- public getOpcodeName
- public getParent
- public getParent
- public getPrevNonDebugInstruction
- public getPrevNonDebugInstruction
- protected getSubclassDataFromInstruction
- public getSuccessor
- public hasAllowContract
- public hasAllowReassoc
- public hasAllowReciprocal
- public hasApproxFunc
- public hasAtomicLoad
- public hasAtomicStore
- public hasMetadata
- public hasMetadata
- public hasMetadata
- public hasMetadataOtherThanDebugLoc
- public hasNoInfs
- public hasNoNaNs
- public hasNoSignedWrap
- public hasNoSignedZeros
- public hasNoUnsignedWrap
- public insertAfter
- public insertBefore
- public isArithmeticShift
- public isAssociative
- public isAssociative
- public isAtomic
- public isBinaryOp
- public isBinaryOp
- public isBitwiseLogicOp
- public isBitwiseLogicOp
- public isCast
- public isCast
- public isCommutative
- public isCommutative
- public isEHPad
- public isExact
- public isExceptionalTerminator
- public isExceptionalTerminator
- public isFast
- public isFenceLike
- public isFuncletPad
- public isFuncletPad
- public isIdempotent
- public isIdempotent
- public isIdenticalTo
- public isIdenticalToWhenDefined
- public isIndirectTerminator
- public isIndirectTerminator
- public isIntDivRem
- public isIntDivRem
- public isLifetimeStartOrEnd
- public isLogicalShift
- public isNilpotent
- public isNilpotent
- public isSafeToRemove
- public isSameOperationAs
- public isShift
- public isShift
- public isTerminator
- public isTerminator
- public isUnaryOp
- public isUnaryOp
- public isUsedOutsideOfBlock
- public mayHaveSideEffects
- public mayReadFromMemory
- public mayReadOrWriteMemory
- public mayThrow
- public mayWriteToMemory
- public moveAfter
- public moveBefore
- public moveBefore
- public removeFromParent
- public replaceSuccessorWith
- public setAAMetadata
- public setDebugLoc
- public setFast
- public setFastMathFlags
- public setHasAllowReassoc
- public setHasAllowReciprocal
- public setHasApproxFunc
- public setHasNoInfs
- public setHasNoNaNs
- public setHasNoSignedWrap
- public setHasNoSignedZeros
- public setHasNoUnsignedWrap
- protected setInstructionSubclassData
- public setIsExact
- public setMetadata
- public setMetadata
- public setProfWeight
- public setSuccessor
- public swapProfMetadata
- public user_back
- public user_back
Inherited from User:
- protected Op
- protected Op
- protected OpFrom
- protected allocHungoffUses
- public classof
- public dropAllReferences
- public getDescriptor
- public getDescriptor
- public getNumOperands
- public getOperand
- public getOperandList
- public getOperandList
- public getOperandUse
- public getOperandUse
- protected growHungoffUses
- public op_begin
- public op_begin
- public op_end
- public op_end
- public operand_values
- public operand_values
- public operands
- public operands
- public replaceUsesOfWith
- public setGlobalVariableNumOperands
- public setNumHungOffUseOperands
- public setOperand
- public value_op_begin
- public value_op_begin
- public value_op_end
- public value_op_end
Inherited from Value:
- public DoPHITranslation
- public DoPHITranslation
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public clearSubclassOptionalData
- public deleteValue
- public dump
- public getContext
- public getName
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- protected getSubclassDataFromValue
- public getType
- public getValueID
- public getValueName
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isUsedByMetadata
- public isUsedInBasicBlock
- public materialized_use_begin
- public materialized_use_begin
- public materialized_use_empty
- public materialized_user_begin
- public materialized_user_begin
- public materialized_users
- public materialized_users
- public materialized_uses
- public materialized_uses
- public mutateType
- public print
- public print
- public printAsOperand
- public printAsOperand
- public replaceAllUsesWith
- public replaceNonMetadataUsesWith
- public replaceUsesOutsideBlock
- public replaceUsesWithIf
- public reverseUseList
- public setName
- public setValueName
- protected setValueSubclassData
- public sortUseList
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripAndAccumulateInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsConstantOffsets
- public stripInBoundsOffsets
- public stripInBoundsOffsets
- public stripPointerCasts
- public stripPointerCasts
- public stripPointerCastsAndAliases
- public stripPointerCastsAndAliases
- public stripPointerCastsAndInvariantGroups
- public stripPointerCastsAndInvariantGroups
- public stripPointerCastsSameRepresentation
- public stripPointerCastsSameRepresentation
- public takeName
- public use_begin
- public use_begin
- public use_empty
- public use_end
- public use_end
- public user_back
- public user_back
- public user_begin
- public user_begin
- public user_empty
- public user_end
- public user_end
- public users
- public users
- public uses
- public uses
Methods
¶template <class... ArgsTy>
CallBase(const llvm::AttributeList& A,
llvm::FunctionType* FT,
ArgsTy&&... Args)
template <class... ArgsTy>
CallBase(const llvm::AttributeList& A,
llvm::FunctionType* FT,
ArgsTy&&... Args)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1114
Templates
- ArgsTy
Parameters
- const llvm::AttributeList& A
- llvm::FunctionType* FT
- ArgsTy&&... Args
¶static unsigned int CountBundleInputs(
ArrayRef<llvm::OperandBundleDef> Bundles)
static unsigned int CountBundleInputs(
ArrayRef<llvm::OperandBundleDef> Bundles)
Description
Return the total number of values used in \p Bundles.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2124
Parameters
- ArrayRef<llvm::OperandBundleDef> Bundles
¶void addAttribute(unsigned int i,
Attribute::AttrKind Kind)
void addAttribute(unsigned int i,
Attribute::AttrKind Kind)
Description
adds the attribute to the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1401
Parameters
- unsigned int i
- Attribute::AttrKind Kind
¶void addAttribute(unsigned int i,
llvm::Attribute Attr)
void addAttribute(unsigned int i,
llvm::Attribute Attr)
Description
adds the attribute to the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1408
Parameters
- unsigned int i
- llvm::Attribute Attr
¶void addDereferenceableAttr(unsigned int i,
uint64_t Bytes)
void addDereferenceableAttr(unsigned int i,
uint64_t Bytes)
Description
adds the dereferenceable attribute to the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1461
Parameters
- unsigned int i
- uint64_t Bytes
¶void addDereferenceableOrNullAttr(unsigned int i,
uint64_t Bytes)
void addDereferenceableOrNullAttr(unsigned int i,
uint64_t Bytes)
Description
adds the dereferenceable_or_null attribute to the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1469
Parameters
- unsigned int i
- uint64_t Bytes
¶void addParamAttr(unsigned int ArgNo,
Attribute::AttrKind Kind)
void addParamAttr(unsigned int ArgNo,
Attribute::AttrKind Kind)
Description
Adds the attribute to the indicated argument
Declared at: llvm/include/llvm/IR/InstrTypes.h:1415
Parameters
- unsigned int ArgNo
- Attribute::AttrKind Kind
¶void addParamAttr(unsigned int ArgNo,
llvm::Attribute Attr)
void addParamAttr(unsigned int ArgNo,
llvm::Attribute Attr)
Description
Adds the attribute to the indicated argument
Declared at: llvm/include/llvm/IR/InstrTypes.h:1423
Parameters
- unsigned int ArgNo
- llvm::Attribute Attr
¶User::const_op_iterator arg_begin() const
User::const_op_iterator arg_begin() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1212
¶User::op_iterator arg_begin()
User::op_iterator arg_begin()
Description
Return the iterator pointing to the beginning of the argument list.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1211
¶bool arg_empty() const
bool arg_empty() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1233
¶User::const_op_iterator arg_end() const
User::const_op_iterator arg_end() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1222
¶User::op_iterator arg_end()
User::op_iterator arg_end()
Description
Return the iterator pointing to the end of the argument list.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1217
¶iterator_range<User::const_op_iterator>
arg_operands() const
iterator_range<User::const_op_iterator>
arg_operands() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1241
¶iterator_range<User::op_iterator> arg_operands()
iterator_range<User::op_iterator> arg_operands()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1238
¶unsigned int arg_size() const
unsigned int arg_size() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1234
¶iterator_range<User::op_iterator> args()
iterator_range<User::op_iterator> args()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1227
¶iterator_range<User::const_op_iterator> args()
const
iterator_range<User::const_op_iterator> args()
const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1230
¶bool bundleOperandHasAttr(
unsigned int OpIdx,
Attribute::AttrKind A) const
bool bundleOperandHasAttr(
unsigned int OpIdx,
Attribute::AttrKind A) const
Description
Return true if the bundle operand at index \p OpIdx has the attribute \p A.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1919
Parameters
- unsigned int OpIdx
- Attribute::AttrKind A
¶llvm::CallBase::bundle_op_iterator
bundle_op_info_begin()
llvm::CallBase::bundle_op_iterator
bundle_op_info_begin()
Description
Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser. OperandBundleUser uses the descriptor area co-allocated with the host User to store some meta information about which operands are "normal" operands, and which ones belong to some operand bundle. The layout of an operand bundle user is +-----------uint32_t End-------------------------------------+ | | | +--------uint32_t Begin--------------------+ | | | | | ^ ^ v v |------|------|----|----|----|----|----|---------|----|---------|----|----- | BOI0 | BOI1 | .. | DU | U0 | U1 | .. | BOI0_U0 | .. | BOI1_U0 | .. | Un |------|------|----|----|----|----|----|---------|----|---------|----|----- v v ^ ^ | | | | | +--------uint32_t Begin------------+ | | | +-----------uint32_t End-----------------------------+ BOI0, BOI1 ... are descriptions of operand bundles in this User's use list. These descriptions are installed and managed by this class, and they're all instances of OperandBundleUser <T >::BundleOpInfo. DU is an additional descriptor installed by User's 'operator new' to keep track of the 'BOI0 ... BOIN' co-allocation. OperandBundleUser does not access or modify DU in any way, it's an implementation detail private to User. The regular Use & vector for the User starts at U0. The operand bundle uses are part of the Use & vector, just like normal uses. In the diagram above, the operand bundle uses start at BOI0_U0. Each instance of BundleOpInfo has information about a contiguous set of uses constituting an operand bundle, and the total set of operand bundle uses themselves form a contiguous set of uses (i.e. there are no gaps between uses corresponding to individual operand bundles). This class does not know the location of the set of operand bundle uses within the use list -- that is decided by the User using this class via the BeginIdx argument in populateBundleOperandInfos. Currently operand bundle users with hung-off operands are not supported.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2059
¶llvm::CallBase::const_bundle_op_iterator
bundle_op_info_begin() const
llvm::CallBase::const_bundle_op_iterator
bundle_op_info_begin() const
Description
Return the start of the list of BundleOpInfo instances associated with this OperandBundleUser.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2069
¶llvm::CallBase::bundle_op_iterator
bundle_op_info_end()
llvm::CallBase::bundle_op_iterator
bundle_op_info_end()
Description
Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2076
¶llvm::CallBase::const_bundle_op_iterator
bundle_op_info_end() const
llvm::CallBase::const_bundle_op_iterator
bundle_op_info_end() const
Description
Return the end of the list of BundleOpInfo instances associated with this OperandBundleUser.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2086
¶iterator_range<
llvm::CallBase::const_bundle_op_iterator>
bundle_op_infos() const
iterator_range<
llvm::CallBase::const_bundle_op_iterator>
bundle_op_infos() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:2097
¶iterator_range<llvm::CallBase::bundle_op_iterator>
bundle_op_infos()
iterator_range<llvm::CallBase::bundle_op_iterator>
bundle_op_infos()
Declared at: llvm/include/llvm/IR/InstrTypes.h:2092
¶bool cannotDuplicate() const
bool cannotDuplicate() const
Description
Determine if the invoke cannot be duplicated.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1725
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1145
Parameters
- const llvm::Value* V
¶static bool classof(const llvm::Instruction* I)
static bool classof(const llvm::Instruction* I)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1140
Parameters
- const llvm::Instruction* I
¶unsigned int countOperandBundlesOfType(
llvm::StringRef Name) const
unsigned int countOperandBundlesOfType(
llvm::StringRef Name) const
Description
Return the number of operand bundles with the tag Name attached to this instruction.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1820
Parameters
- llvm::StringRef Name
¶unsigned int countOperandBundlesOfType(
uint32_t ID) const
unsigned int countOperandBundlesOfType(
uint32_t ID) const
Description
Return the number of operand bundles with the tag ID attached to this instruction.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1831
Parameters
- uint32_t ID
¶bool dataOperandHasImpliedAttr(
unsigned int i,
Attribute::AttrKind Kind) const
bool dataOperandHasImpliedAttr(
unsigned int i,
Attribute::AttrKind Kind) const
Description
Return true if the data operand at index \p i has the attribute \p A. Data operands include call arguments and values used in operand bundles, but does not include the callee operand. This routine dispatches to the underlying AttributeList or the OperandBundleUser as appropriate. The index \p i is interpreted as \p i == Attribute::ReturnIndex -> the return value\p i in [1, arg_size + 1) -> argument number (\p i - 1)\p i in [arg_size + 1, data_operand_size + 1) -> bundle operand at index (\p i - 1) in the operand list.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1516
Parameters
- unsigned int i
- Attribute::AttrKind Kind
¶User::op_iterator data_operands_begin()
User::op_iterator data_operands_begin()
Description
data_operands_begin/data_operands_end - Return iterators iterating over the call / invoke argument list and bundle operands. For invokes, this is the set of instruction operands except the invoke target and the two successor blocks; and for calls this is the set of instruction operands except the call target.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1163
¶User::const_op_iterator data_operands_begin()
const
User::const_op_iterator data_operands_begin()
const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1164
¶bool data_operands_empty() const
bool data_operands_empty() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1181
¶User::const_op_iterator data_operands_end() const
User::const_op_iterator data_operands_end() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1172
¶User::op_iterator data_operands_end()
User::op_iterator data_operands_end()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1167
¶unsigned int data_operands_size() const
unsigned int data_operands_size() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1184
¶iterator_range<User::const_op_iterator> data_ops()
const
iterator_range<User::const_op_iterator> data_ops()
const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1178
¶iterator_range<User::op_iterator> data_ops()
iterator_range<User::op_iterator> data_ops()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1175
¶bool doesNoCfCheck() const
bool doesNoCfCheck() const
Description
Determine if the call should not perform indirect branch tracking.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1716
¶bool doesNotAccessMemory(unsigned int OpNo) const
bool doesNotAccessMemory(unsigned int OpNo) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1569
Parameters
- unsigned int OpNo
¶bool doesNotAccessMemory() const
bool doesNotAccessMemory() const
Description
Determine if the call does not access memory.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1661
¶bool doesNotCapture(unsigned int OpNo) const
bool doesNotCapture(unsigned int OpNo) const
Description
Determine whether this data operand is not captured.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1541
Parameters
- unsigned int OpNo
¶bool doesNotReadMemory(unsigned int OpNo) const
bool doesNotReadMemory(unsigned int OpNo) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1582
Parameters
- unsigned int OpNo
¶bool doesNotReadMemory() const
bool doesNotReadMemory() const
Description
Determine if the call does not access or only writes memory.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1675
¶bool doesNotReturn() const
bool doesNotReturn() const
Description
Determine if the call cannot return.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1710
¶bool doesNotThrow() const
bool doesNotThrow() const
Description
Determine if the call cannot unwind.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1719
¶llvm::Value* getArgOperand(unsigned int i) const
llvm::Value* getArgOperand(unsigned int i) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1246
Parameters
- unsigned int i
¶unsigned int getArgOperandNo(
Value::const_user_iterator UI) const
unsigned int getArgOperandNo(
Value::const_user_iterator UI) const
Description
Given a value use iterator, return the arg operand number corresponding to it. Iterator must actually correspond to a data operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1284
Parameters
¶unsigned int getArgOperandNo(
const llvm::Use* U) const
unsigned int getArgOperandNo(
const llvm::Use* U) const
Description
Given a use for a arg operand, get the arg operand number that corresponds to it.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1277
Parameters
- const llvm::Use* U
¶llvm::Use& getArgOperandUse(unsigned int i)
llvm::Use& getArgOperandUse(unsigned int i)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1261
Parameters
- unsigned int i
¶const llvm::Use& getArgOperandUse(
unsigned int i) const
const llvm::Use& getArgOperandUse(
unsigned int i) const
Description
Wrappers for getting the \c Use of a call argument.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1257
Parameters
- unsigned int i
¶llvm::Attribute getAttribute(
unsigned int i,
Attribute::AttrKind Kind) const
llvm::Attribute getAttribute(
unsigned int i,
Attribute::AttrKind Kind) const
Description
Get the attribute of a given kind at a position.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1482
Parameters
- unsigned int i
- Attribute::AttrKind Kind
¶llvm::Attribute getAttribute(
unsigned int i,
llvm::StringRef Kind) const
llvm::Attribute getAttribute(
unsigned int i,
llvm::StringRef Kind) const
Description
Get the attribute of a given kind at a position.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1487
Parameters
- unsigned int i
- llvm::StringRef Kind
¶llvm::AttributeList getAttributes() const
llvm::AttributeList getAttributes() const
Description
Return the parameter attributes for this call.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1384
¶const llvm::CallBase::BundleOpInfo&
getBundleOpInfoForOperand(
unsigned int OpIdx) const
const llvm::CallBase::BundleOpInfo&
getBundleOpInfoForOperand(
unsigned int OpIdx) const
Description
Return the BundleOpInfo for the operand at index OpIdx. It is an error to call this with an OpIdx that does not correspond to an bundle operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2114
Parameters
- unsigned int OpIdx
¶unsigned int getBundleOperandsEndIndex() const
unsigned int getBundleOperandsEndIndex() const
Description
Return the index of the last bundle operand in the Use array.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1778
¶unsigned int getBundleOperandsStartIndex() const
unsigned int getBundleOperandsStartIndex() const
Description
Return the index of the first bundle operand in the Use array.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1772
¶llvm::Function* getCalledFunction() const
llvm::Function* getCalledFunction() const
Description
Returns the function called, or null if this is an indirect function invocation.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1305
¶llvm::Value* getCalledOperand() const
llvm::Value* getCalledOperand() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1294
¶llvm::Use& getCalledOperandUse()
llvm::Use& getCalledOperandUse()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1301
¶const llvm::Use& getCalledOperandUse() const
const llvm::Use& getCalledOperandUse() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1300
¶llvm::Value* getCalledValue() const
llvm::Value* getCalledValue() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1298
¶const llvm::Function* getCaller() const
const llvm::Function* getCaller() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1322
¶llvm::Function* getCaller()
llvm::Function* getCaller()
Description
Helper to get the caller (the parent function).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1321
¶CallingConv::ID getCallingConv() const
CallingConv::ID getCallingConv() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1362
¶unsigned int getDataOperandNo(
const llvm::Use* U) const
unsigned int getDataOperandNo(
const llvm::Use* U) const
Description
Given a use for a data operand, get the data operand number that corresponds to it.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1205
Parameters
- const llvm::Use* U
¶unsigned int getDataOperandNo(
Value::const_user_iterator UI) const
unsigned int getDataOperandNo(
Value::const_user_iterator UI) const
Description
Given a value use iterator, return the data operand corresponding to it. Iterator must actually correspond to a data operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1199
Parameters
¶uint64_t getDereferenceableBytes(
unsigned int i) const
uint64_t getDereferenceableBytes(
unsigned int i) const
Description
Extract the number of dereferenceable bytes for a call or parameter (0=unknown).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1621
Parameters
- unsigned int i
¶uint64_t getDereferenceableOrNullBytes(
unsigned int i) const
uint64_t getDereferenceableOrNullBytes(
unsigned int i) const
Description
Extract the number of dereferenceable_or_null bytes for a call or parameter (0=unknown).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1627
Parameters
- unsigned int i
¶llvm::FunctionType* getFunctionType() const
llvm::FunctionType* getFunctionType() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1149
¶Intrinsic::ID getIntrinsicID() const
Intrinsic::ID getIntrinsicID() const
Description
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.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1336
¶unsigned int getNumArgOperands() const
unsigned int getNumArgOperands() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1244
¶unsigned int getNumOperandBundles() const
unsigned int getNumOperandBundles() const
Description
Return the number of operand bundles associated with this User.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1764
¶unsigned int getNumSubclassExtraOperands() const
unsigned int getNumSubclassExtraOperands() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1121
¶unsigned int getNumSubclassExtraOperandsDynamic()
const
unsigned int getNumSubclassExtraOperandsDynamic()
const
Description
Get the number of extra operands for instructions that don't have a fixed number of extra operands.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1135
¶unsigned int getNumTotalBundleOperands() const
unsigned int getNumTotalBundleOperands() const
Description
Return the total number operands (not operand bundles) used by every operand bundle in this OperandBundleUser.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1801
¶Optional<llvm::OperandBundleUse> getOperandBundle(
uint32_t ID) const
Optional<llvm::OperandBundleUse> getOperandBundle(
uint32_t ID) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1860
Parameters
- uint32_t ID
¶Optional<llvm::OperandBundleUse> getOperandBundle(
llvm::StringRef Name) const
Optional<llvm::OperandBundleUse> getOperandBundle(
llvm::StringRef Name) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1844
Parameters
- llvm::StringRef Name
¶llvm::OperandBundleUse getOperandBundleAt(
unsigned int Index) const
llvm::OperandBundleUse getOperandBundleAt(
unsigned int Index) const
Description
Return the operand bundle at a specific index.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1813
Parameters
- unsigned int Index
¶llvm::OperandBundleUse getOperandBundleForOperand(
unsigned int OpIdx) const
llvm::OperandBundleUse getOperandBundleForOperand(
unsigned int OpIdx) const
Description
Return the operand bundle for the operand at index OpIdx. It is an error to call this with an OpIdx that does not correspond to an bundle operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1888
Parameters
- unsigned int OpIdx
¶void getOperandBundlesAsDefs(
SmallVectorImpl<llvm::OperandBundleDef>& Defs)
const
void getOperandBundlesAsDefs(
SmallVectorImpl<llvm::OperandBundleDef>& Defs)
const
Description
Return the list of operand bundles attached to this instruction as a vector of OperandBundleDefs. This function copies the OperandBundeUse instances associated with this OperandBundleUser to a vector of OperandBundleDefs. Note: OperandBundeUses and OperandBundleDefs are non-trivially *different* representations of operand bundles (see documentation above).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1879
Parameters
- SmallVectorImpl<llvm::OperandBundleDef>& Defs
¶llvm::MaybeAlign getParamAlign(
unsigned int ArgNo) const
llvm::MaybeAlign getParamAlign(
unsigned int ArgNo) const
Description
Extract the alignment for a call or parameter (0=unknown).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1609
Parameters
- unsigned int ArgNo
¶unsigned int getParamAlignment(
unsigned int ArgNo) const
unsigned int getParamAlignment(
unsigned int ArgNo) const
Description
Extract the alignment for a call or parameter (0=unknown). FIXME: Remove this function once transition to Align is over. Use getParamAlign() instead.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1602
Parameters
- unsigned int ArgNo
¶llvm::Attribute getParamAttr(
unsigned int ArgNo,
llvm::StringRef Kind) const
llvm::Attribute getParamAttr(
unsigned int ArgNo,
llvm::StringRef Kind) const
Description
Get the attribute of a given kind from a given arg
Declared at: llvm/include/llvm/IR/InstrTypes.h:1498
Parameters
- unsigned int ArgNo
- llvm::StringRef Kind
¶llvm::Attribute getParamAttr(
unsigned int ArgNo,
Attribute::AttrKind Kind) const
llvm::Attribute getParamAttr(
unsigned int ArgNo,
Attribute::AttrKind Kind) const
Description
Get the attribute of a given kind from a given arg
Declared at: llvm/include/llvm/IR/InstrTypes.h:1492
Parameters
- unsigned int ArgNo
- Attribute::AttrKind Kind
¶llvm::Type* getParamByValType(
unsigned int ArgNo) const
llvm::Type* getParamByValType(
unsigned int ArgNo) const
Description
Extract the byval type for a call or parameter.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1614
Parameters
- unsigned int ArgNo
¶llvm::MaybeAlign getRetAlign() const
llvm::MaybeAlign getRetAlign() const
Description
Extract the alignment of the return value.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1597
¶unsigned int getRetAlignment() const
unsigned int getRetAlignment() const
Description
Extract the alignment of the return value. FIXME: Remove this function once transition to Align is over. Use getRetAlign() instead.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1590
¶llvm::Value* getReturnedArgOperand() const
llvm::Value* getReturnedArgOperand() const
Description
If one of the arguments has the 'returned' attribute, returns its operand value. Otherwise, return nullptr.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1643
¶bool hasArgument(const llvm::Value* V) const
bool hasArgument(const llvm::Value* V) const
Description
Returns true if this CallSite passes the given Value* as an argument to the called function.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1290
Parameters
- const llvm::Value* V
¶bool hasByValArgument() const
bool hasByValArgument() const
Description
Determine if any call argument is an aggregate passed by value.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1750
¶bool hasClobberingOperandBundles() const
bool hasClobberingOperandBundles() const
Description
Return true if this operand bundle user has operand bundles that may write to the heap.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1903
¶bool hasDescriptor() const
bool hasDescriptor() const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1119
¶bool hasFnAttr(Attribute::AttrKind Kind) const
bool hasFnAttr(Attribute::AttrKind Kind) const
Description
Determine whether this call has the given attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1391
Parameters
- Attribute::AttrKind Kind
¶bool hasFnAttr(llvm::StringRef Kind) const
bool hasFnAttr(llvm::StringRef Kind) const
Description
Determine whether this call has the given attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1398
Parameters
- llvm::StringRef Kind
¶bool hasIdenticalOperandBundleSchema(
const llvm::CallBase& Other) const
bool hasIdenticalOperandBundleSchema(
const llvm::CallBase& Other) const
Description
Return true if \p Other has the same sequence of operand bundle tags with the same number of operands on each one of them as this OperandBundleUser.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1928
Parameters
- const llvm::CallBase& Other
¶bool hasInAllocaArgument() const
bool hasInAllocaArgument() const
Description
Determine if there are is an inalloca argument. Only the last argument can have the inalloca attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1563
¶bool hasOperandBundles() const
bool hasOperandBundles() const
Description
Return true if this User has any operand bundles.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1769
¶bool hasOperandBundlesOtherThan(
ArrayRef<uint32_t> IDs) const
bool hasOperandBundlesOtherThan(
ArrayRef<uint32_t> IDs) const
Description
Return true if this operand bundle user contains operand bundles with tags other than those specified in \p IDs.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1938
Parameters
- ArrayRef<uint32_t> IDs
¶bool hasReadingOperandBundles() const
bool hasReadingOperandBundles() const
Description
Return true if this operand bundle user has operand bundles that may read from the heap.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1894
¶bool hasRetAttr(Attribute::AttrKind Kind) const
bool hasRetAttr(Attribute::AttrKind Kind) const
Description
Determine whether the return value has the given attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1476
Parameters
- Attribute::AttrKind Kind
¶bool hasStructRetAttr() const
bool hasStructRetAttr() const
Description
Determine if the call returns a structure through first pointer argument.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1741
¶bool isArgOperand(
Value::const_user_iterator UI) const
bool isArgOperand(
Value::const_user_iterator UI) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1271
Parameters
¶bool isArgOperand(const llvm::Use* U) const
bool isArgOperand(const llvm::Use* U) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1266
Parameters
- const llvm::Use* U
¶bool isBundleOperand(
Value::const_user_iterator UI) const
bool isBundleOperand(
Value::const_user_iterator UI) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1795
Parameters
¶bool isBundleOperand(const llvm::Use* U) const
bool isBundleOperand(const llvm::Use* U) const
Description
Returns true if the use is a bundle operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1790
Parameters
- const llvm::Use* U
¶bool isBundleOperand(unsigned int Idx) const
bool isBundleOperand(unsigned int Idx) const
Description
Return true if the operand at index \p Idx is a bundle operand.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1784
Parameters
- unsigned int Idx
¶bool isByValArgument(unsigned int ArgNo) const
bool isByValArgument(unsigned int ArgNo) const
Description
Determine whether this argument is passed by value.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1546
Parameters
- unsigned int ArgNo
¶bool isByValOrInAllocaArgument(
unsigned int ArgNo) const
bool isByValOrInAllocaArgument(
unsigned int ArgNo) const
Description
Determine whether this argument is passed by value or in an alloca.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1556
Parameters
- unsigned int ArgNo
¶bool isCallee(const llvm::Use* U) const
bool isCallee(const llvm::Use* U) const
Description
Determine whether this Use is the callee operand's Use.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1318
Parameters
- const llvm::Use* U
¶bool isCallee(Value::const_user_iterator UI) const
bool isCallee(Value::const_user_iterator UI) const
Description
Determine whether the passed iterator points to the callee operand's Use.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1313
Parameters
¶bool isConvergent() const
bool isConvergent() const
Description
Determine if the invoke is convergent
Declared at: llvm/include/llvm/IR/InstrTypes.h:1731
¶bool isDataOperand(
Value::const_user_iterator UI) const
bool isDataOperand(
Value::const_user_iterator UI) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1193
Parameters
¶bool isDataOperand(const llvm::Use* U) const
bool isDataOperand(const llvm::Use* U) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1188
Parameters
- const llvm::Use* U
¶bool isFnAttrDisallowedByOpBundle(
Attribute::AttrKind A) const
bool isFnAttrDisallowedByOpBundle(
Attribute::AttrKind A) const
Description
Is the function attribute A disallowed by some operand bundle on this operand bundle user?
Declared at: llvm/include/llvm/IR/InstrTypes.h:1957
Parameters
- Attribute::AttrKind A
¶bool isFnAttrDisallowedByOpBundle(
llvm::StringRef S) const
bool isFnAttrDisallowedByOpBundle(
llvm::StringRef S) const
Description
Is the function attribute S disallowed by some operand bundle on this operand bundle user?
Declared at: llvm/include/llvm/IR/InstrTypes.h:1949
Parameters
¶bool isInAllocaArgument(unsigned int ArgNo) const
bool isInAllocaArgument(unsigned int ArgNo) const
Description
Determine whether this argument is passed in an alloca.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1551
Parameters
- unsigned int ArgNo
¶bool isIndirectCall() const
bool isIndirectCall() const
Description
Return true if the callsite is an indirect call.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1310
¶bool isInlineAsm() const
bool isInlineAsm() const
Description
Check if this call is an inline asm statement.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1374
¶bool isMustTailCall() const
bool isMustTailCall() const
Description
Tests if this call site must be tail call optimized. Only a CallInst can be tail call optimized.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1328
¶bool isNoBuiltin() const
bool isNoBuiltin() const
Description
Return true if the call should not be treated as a call to a builtin.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1647
¶bool isNoInline() const
bool isNoInline() const
Description
Return true if the call should not be inlined.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1656
¶bool isReturnNonNull() const
bool isReturnNonNull() const
Description
Return true if the return value is known to be not null. This may be because it has the nonnull attribute, or because at least one byte is dereferenceable and the pointer is in addrspace(0).
Declared at: llvm/include/llvm/IR/InstrTypes.h:1634
¶bool isStrictFP() const
bool isStrictFP() const
Description
Determine if the call requires strict floating point semantics.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1653
¶bool isTailCall() const
bool isTailCall() const
Description
Tests if this call site is marked as a tail call.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1331
¶void mutateFunctionType(llvm::FunctionType* FTy)
void mutateFunctionType(llvm::FunctionType* FTy)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1151
Parameters
- llvm::FunctionType* FTy
¶bool onlyAccessesArgMemory() const
bool onlyAccessesArgMemory() const
Description
Determine if the call can access memmory only using pointers based on its arguments.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1684
¶bool onlyAccessesInaccessibleMemOrArgMem() const
bool onlyAccessesInaccessibleMemOrArgMem() const
Description
Determine if the function may only access memory that is either inaccessible from the IR or pointed to by its arguments.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1702
¶bool onlyAccessesInaccessibleMemory() const
bool onlyAccessesInaccessibleMemory() const
Description
Determine if the function may only access memory that is inaccessible from the IR.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1693
¶bool onlyReadsMemory() const
bool onlyReadsMemory() const
Description
Determine if the call does not access or only reads memory.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1667
¶bool onlyReadsMemory(unsigned int OpNo) const
bool onlyReadsMemory(unsigned int OpNo) const
Declared at: llvm/include/llvm/IR/InstrTypes.h:1575
Parameters
- unsigned int OpNo
¶llvm::OperandBundleUse
operandBundleFromBundleOpInfo(
const llvm::CallBase::BundleOpInfo& BOI) const
llvm::OperandBundleUse
operandBundleFromBundleOpInfo(
const llvm::CallBase::BundleOpInfo& BOI) const
Description
Simple helper function to map a BundleOpInfo to an OperandBundleUse.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2004
Parameters
- const llvm::CallBase::BundleOpInfo& BOI
¶bool paramHasAttr(unsigned int ArgNo,
Attribute::AttrKind Kind) const
bool paramHasAttr(unsigned int ArgNo,
Attribute::AttrKind Kind) const
Description
Determine whether the argument or parameter has the given attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1479
Parameters
- unsigned int ArgNo
- Attribute::AttrKind Kind
¶llvm::User::op_iterator
populateBundleOperandInfos(
ArrayRef<llvm::OperandBundleDef> Bundles,
const unsigned int BeginIndex)
llvm::User::op_iterator
populateBundleOperandInfos(
ArrayRef<llvm::OperandBundleDef> Bundles,
const unsigned int BeginIndex)
Description
Populate the BundleOpInfo instances and the Use & vector from \p Bundles. Return the op_iterator pointing to the Use & one past the last last bundle operand use. Each \p OperandBundleDef instance is tracked by a OperandBundleInfo instance allocated in this User's descriptor.
Declared at: llvm/include/llvm/IR/InstrTypes.h:2107
Parameters
- ArrayRef<llvm::OperandBundleDef> Bundles
- const unsigned int BeginIndex
¶void removeAttribute(unsigned int i,
Attribute::AttrKind Kind)
void removeAttribute(unsigned int i,
Attribute::AttrKind Kind)
Description
removes the attribute from the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1431
Parameters
- unsigned int i
- Attribute::AttrKind Kind
¶void removeAttribute(unsigned int i,
llvm::StringRef Kind)
void removeAttribute(unsigned int i,
llvm::StringRef Kind)
Description
removes the attribute from the list of attributes.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1438
Parameters
- unsigned int i
- llvm::StringRef Kind
¶void removeParamAttr(unsigned int ArgNo,
Attribute::AttrKind Kind)
void removeParamAttr(unsigned int ArgNo,
Attribute::AttrKind Kind)
Description
Removes the attribute from the given argument
Declared at: llvm/include/llvm/IR/InstrTypes.h:1445
Parameters
- unsigned int ArgNo
- Attribute::AttrKind Kind
¶void removeParamAttr(unsigned int ArgNo,
llvm::StringRef Kind)
void removeParamAttr(unsigned int ArgNo,
llvm::StringRef Kind)
Description
Removes the attribute from the given argument
Declared at: llvm/include/llvm/IR/InstrTypes.h:1453
Parameters
- unsigned int ArgNo
- llvm::StringRef Kind
¶bool returnDoesNotAlias() const
bool returnDoesNotAlias() const
Description
Determine if the return value is marked with NoAlias attribute.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1637
¶void setArgOperand(unsigned int i, llvm::Value* v)
void setArgOperand(unsigned int i, llvm::Value* v)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1251
Parameters
- unsigned int i
- llvm::Value* v
¶void setAttributes(llvm::AttributeList A)
void setAttributes(llvm::AttributeList A)
Description
Set the parameter attributes for this call.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1388
Parameters
¶void setCalledFunction(llvm::Function* Fn)
void setCalledFunction(llvm::Function* Fn)
Description
Sets the function called, including updating the function type.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1341
Parameters
- llvm::Function* Fn
¶void setCalledFunction(llvm::FunctionCallee Fn)
void setCalledFunction(llvm::FunctionCallee Fn)
Description
Sets the function called, including updating the function type.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1346
Parameters
¶void setCalledFunction(llvm::FunctionType* FTy,
llvm::Value* Fn)
void setCalledFunction(llvm::FunctionType* FTy,
llvm::Value* Fn)
Description
Sets the function called, including updating to the specified function type.
Declared at: llvm/include/llvm/IR/InstrTypes.h:1352
Parameters
- llvm::FunctionType* FTy
- llvm::Value* Fn
¶void setCalledOperand(llvm::Value* V)
void setCalledOperand(llvm::Value* V)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1338
Parameters
- llvm::Value* V
¶void setCallingConv(CallingConv::ID CC)
void setCallingConv(CallingConv::ID CC)
Declared at: llvm/include/llvm/IR/InstrTypes.h:1366
Parameters
- CallingConv::ID CC
¶void setCannotDuplicate()
void setCannotDuplicate()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1726
¶void setConvergent()
void setConvergent()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1732
¶void setDoesNotAccessMemory()
void setDoesNotAccessMemory()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1662
¶void setDoesNotReadMemory()
void setDoesNotReadMemory()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1678
¶void setDoesNotReturn()
void setDoesNotReturn()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1711
¶void setDoesNotThrow()
void setDoesNotThrow()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1720
¶void setIsNoInline()
void setIsNoInline()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1657
¶void setNotConvergent()
void setNotConvergent()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1735
¶void setOnlyAccessesArgMemory()
void setOnlyAccessesArgMemory()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1687
¶void setOnlyAccessesInaccessibleMemOrArgMem()
void setOnlyAccessesInaccessibleMemOrArgMem()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1705
¶void setOnlyAccessesInaccessibleMemory()
void setOnlyAccessesInaccessibleMemory()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1696
¶void setOnlyReadsMemory()
void setOnlyReadsMemory()
Declared at: llvm/include/llvm/IR/InstrTypes.h:1670