class CallInst
Declaration
class CallInst : public CallBase { /* full declaration omitted */ };
Description
This class represents a function call, abstracting a target machine's calling convention. This class uses low bit of the SubClassData field to indicate whether or not this is a tail call. The rest of the bits hold the calling convention of the call.
Declared at: llvm/include/llvm/IR/Instructions.h:1474
Inherits from: CallBase
Member Variables
Inherited from CallBase:
Inherited from Value:
- protected SubclassOptionalData
- protected NumUserOperands
- protected IsUsedByMD
- protected HasName
- protected HasMetadata
- protected HasHungOffUses
- protected HasDescriptor
- public static MaxAlignmentExponent = 32
- public static MaximumAlignment = 1ULL << MaxAlignmentExponent
Method Overview
- private inline CallInst(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore)
- private inline CallInst(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore)
- private inline CallInst(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- private CallInst(llvm::FunctionType * Ty, llvm::Value * F, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore)
- private CallInst(llvm::FunctionType * ty, llvm::Value * F, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- private CallInst(const llvm::CallInst & CI)
- private static int ComputeNumOperands(int NumArgs, int NumBundleInputs = 0)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::CallInst * Create(llvm::CallInst * CI, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::Instruction * InsertPt = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = None, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionCallee Func, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * F, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = None, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * F, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
- public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
- public static llvm::Instruction * CreateFree(llvm::Value * Source, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::Instruction * InsertBefore)
- public static llvm::Instruction * CreateFree(llvm::Value * Source, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::BasicBlock * InsertAtEnd)
- public static llvm::Instruction * CreateFree(llvm::Value * Source, llvm::BasicBlock * InsertAtEnd)
- public static llvm::Instruction * CreateFree(llvm::Value * Source, llvm::Instruction * InsertBefore)
- public static llvm::Instruction * CreateMalloc(llvm::Instruction * InsertBefore, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, ArrayRef<llvm::OperandBundleDef> Bundles = None, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
- public static llvm::Instruction * CreateMalloc(llvm::BasicBlock * InsertAtEnd, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, ArrayRef<llvm::OperandBundleDef> Bundles = None, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
- public static llvm::Instruction * CreateMalloc(llvm::Instruction * InsertBefore, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
- public static llvm::Instruction * CreateMalloc(llvm::BasicBlock * InsertAtEnd, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
- public bool canReturnTwice() const
- public static bool classof(const llvm::Value * V)
- public static bool classof(const llvm::Instruction * I)
- protected llvm::CallInst * cloneImpl() const
- public llvm::CallInst::TailCallKind getTailCallKind() const
- private void init(llvm::FunctionType * FTy, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr)
- private void init(llvm::FunctionType * FTy, llvm::Value * Func, const llvm::Twine & NameStr)
- public bool isMustTailCall() const
- public bool isNoTailCall() const
- public bool isTailCall() const
- public void setCanReturnTwice()
- private template <typename Bitfield>void setSubclassData(typename Bitfield::Type Value)
- public void setTailCall(bool IsTc = true)
- public void setTailCallKind(llvm::CallInst::TailCallKind TCK)
- public void updateProfWeight(uint64_t S, uint64_t T)
Inherited from CallBase:
- protected CountBundleInputs
- public Create
- public Create
- public addAttributeAtIndex
- public addAttributeAtIndex
- public addDereferenceableParamAttr
- public addDereferenceableRetAttr
- public addFnAttr
- public addFnAttr
- public addOperandBundle
- public addParamAttr
- public addParamAttr
- public addRetAttr
- public addRetAttr
- public arg_begin
- public arg_begin
- public arg_empty
- public arg_end
- public arg_end
- public arg_size
- public args
- public args
- public bundleOperandHasAttr
- public bundle_op_info_begin
- public bundle_op_info_begin
- public bundle_op_info_end
- public bundle_op_info_end
- public bundle_op_infos
- public bundle_op_infos
- public cannotDuplicate
- public cannotMerge
- public classof
- public classof
- public countOperandBundlesOfType
- public countOperandBundlesOfType
- public dataOperandHasImpliedAttr
- public data_operands_begin
- public data_operands_begin
- public data_operands_empty
- public data_operands_end
- public data_operands_end
- public data_operands_size
- public data_ops
- public data_ops
- public doesNoCfCheck
- public doesNotAccessMemory
- public doesNotAccessMemory
- public doesNotCapture
- public doesNotReturn
- public doesNotThrow
- public getArgOperand
- public getArgOperandNo
- public getArgOperandNo
- public getArgOperandUse
- public getArgOperandUse
- public getArgOperandWithAttribute
- public getAttributeAtIndex
- public getAttributeAtIndex
- public getAttributes
- public getBundleOpInfoForOperand
- public getBundleOpInfoForOperand
- public getBundleOperandsEndIndex
- public getBundleOperandsStartIndex
- public getCalledFunction
- public getCalledOperand
- public getCalledOperandUse
- public getCalledOperandUse
- public getCaller
- public getCaller
- public getCallingConv
- public getDataOperandNo
- public getDataOperandNo
- public getFnAttr
- public getFnAttr
- public getFunctionType
- public getIntrinsicID
- public getNumOperandBundles
- protected getNumSubclassExtraOperands
- protected getNumSubclassExtraOperandsDynamic
- public getNumTotalBundleOperands
- public getOperandBundle
- public getOperandBundle
- public getOperandBundleAt
- public getOperandBundleForOperand
- public getOperandBundlesAsDefs
- public getParamAlign
- public getParamAttr
- public getParamAttr
- public getParamByValType
- public getParamDereferenceableBytes
- public getParamDereferenceableOrNullBytes
- public getParamElementType
- public getParamInAllocaType
- public getParamPreallocatedType
- public getParamStackAlign
- public getParamStructRetType
- public getRetAlign
- public getRetDereferenceableBytes
- public getRetDereferenceableOrNullBytes
- public getReturnedArgOperand
- public hasArgument
- public hasByValArgument
- public hasClobberingOperandBundles
- protected hasDescriptor
- public hasFnAttr
- public hasFnAttr
- public hasIdenticalOperandBundleSchema
- public hasInAllocaArgument
- public hasOperandBundles
- public hasOperandBundlesOtherThan
- public hasReadingOperandBundles
- public hasRetAttr
- public hasRetAttr
- public hasStructRetAttr
- public isArgOperand
- public isArgOperand
- public isBundleOperand
- public isBundleOperand
- public isBundleOperand
- public isByValArgument
- public isCallee
- public isCallee
- public isConvergent
- public isDataOperand
- public isDataOperand
- public isFnAttrDisallowedByOpBundle
- public isFnAttrDisallowedByOpBundle
- public isInAllocaArgument
- public isIndirectCall
- public isInlineAsm
- public isMustTailCall
- public isNoBuiltin
- public isNoInline
- public isOperandBundleOfType
- public isPassPointeeByValueArgument
- public isPassingUndefUB
- public isReturnNonNull
- public isStrictFP
- public isTailCall
- public mutateFunctionType
- public onlyAccessesArgMemory
- public onlyAccessesInaccessibleMemOrArgMem
- public onlyAccessesInaccessibleMemory
- public onlyReadsMemory
- public onlyReadsMemory
- public onlyWritesMemory
- public onlyWritesMemory
- public operandBundleFromBundleOpInfo
- public paramHasAttr
- public populateBundleOperandInfos
- public removeAttributeAtIndex
- public removeAttributeAtIndex
- public removeFnAttr
- public removeFnAttrs
- public removeOperandBundle
- public removeParamAttr
- public removeParamAttr
- public removeParamAttrs
- public removeRetAttr
- public removeRetAttrs
- public returnDoesNotAlias
- public setArgOperand
- public setAttributes
- public setCalledFunction
- public setCalledFunction
- public setCalledFunction
- public setCalledOperand
- public setCallingConv
- public setCannotDuplicate
- public setCannotMerge
- public setConvergent
- public setDoesNotAccessMemory
- public setDoesNotReturn
- public setDoesNotThrow
- public setIsNoInline
- public setNotConvergent
- public setOnlyAccessesArgMemory
- public setOnlyAccessesInaccessibleMemOrArgMem
- public setOnlyAccessesInaccessibleMemory
- public setOnlyReadsMemory
- public setOnlyWritesMemory
Inherited from Instruction:
- public addAnnotationMetadata
- public andIRFlags
- public applyMergedLocation
- public classof
- public clone
- public comesBefore
- public copyFastMathFlags
- public copyFastMathFlags
- public copyIRFlags
- public copyMetadata
- public dropLocation
- public dropPoisonGeneratingFlags
- public dropUndefImplyingAttrsAndUnknownMetadata
- 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 getSubclassData
- 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 hasPoisonGeneratingFlags
- 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 isDebugOrPseudoInst
- 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 isIntDivRem
- public isIntDivRem
- public isLaunderOrStripInvariantGroup
- public isLifetimeStartOrEnd
- public isLogicalShift
- public isNilpotent
- public isNilpotent
- public isOnlyUserOfAnyOperand
- public isSafeToRemove
- public isSameOperationAs
- public isShift
- public isShift
- public isTerminator
- public isTerminator
- public isUnaryOp
- public isUnaryOp
- public isUsedOutsideOfBlock
- public isVolatile
- 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 setHasAllowContract
- public setHasAllowReassoc
- public setHasAllowReciprocal
- public setHasApproxFunc
- public setHasNoInfs
- public setHasNoNaNs
- public setHasNoSignedWrap
- public setHasNoSignedZeros
- public setHasNoUnsignedWrap
- public setIsExact
- public setMetadata
- public setMetadata
- protected setSubclassData
- public setSuccessor
- public swapProfMetadata
- public updateLocationAfterHoist
- public user_back
- public user_back
- public willReturn
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 isDroppable
- 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
- protected addMetadata
- protected addMetadata
- public addUse
- public assertModuleIsMaterialized
- public assertModuleIsMaterializedImpl
- public canBeFreed
- protected clearMetadata
- public clearSubclassOptionalData
- public deleteValue
- public dropDroppableUse
- public dropDroppableUses
- public dropDroppableUsesIn
- public dump
- protected eraseMetadata
- protected getAllMetadata
- public getContext
- protected getMetadata
- protected getMetadata
- protected getMetadata
- protected getMetadata
- public getName
- public getNameOrAsOperand
- public getNumUses
- public getPointerAlignment
- public getPointerDereferenceableBytes
- public getRawSubclassOptionalData
- public getSingleUndroppableUse
- public getSingleUndroppableUse
- protected getSubclassDataFromValue
- public getType
- public getUniqueUndroppableUser
- public getUniqueUndroppableUser
- public getValueID
- public getValueName
- protected hasMetadata
- protected hasMetadata
- protected hasMetadata
- public hasNUndroppableUses
- public hasNUndroppableUsesOrMore
- public hasNUses
- public hasNUsesOrMore
- public hasName
- public hasOneUse
- public hasOneUser
- public hasSameSubclassOptionalData
- public hasValueHandle
- public isSwiftError
- public isTransitiveUsedByMetadataOnly
- 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
- protected setMetadata
- protected setMetadata
- 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 stripPointerCastsForAliasAnalysis
- public stripPointerCastsForAliasAnalysis
- 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
¶inline CallInst(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
inline CallInst(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
Description
Construct a CallInst given a range of arguments. Construct a CallInst from a range of arguments
Declared at: llvm/include/llvm/IR/Instructions.h:1479
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles
- const llvm::Twine& NameStr
- llvm::Instruction* InsertBefore
¶inline CallInst(llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
inline CallInst(llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
Declared at: llvm/include/llvm/IR/Instructions.h:1483
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& NameStr
- llvm::Instruction* InsertBefore
¶inline CallInst(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
inline CallInst(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Description
Construct a CallInst given a range of arguments. Construct a CallInst from a range of arguments
Declared at: llvm/include/llvm/IR/Instructions.h:1489
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶CallInst(llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
CallInst(llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore)
Declared at: llvm/include/llvm/IR/Instructions.h:1493
Parameters
- llvm::FunctionType* Ty
- llvm::Value* F
- const llvm::Twine& NameStr
- llvm::Instruction* InsertBefore
¶CallInst(llvm::FunctionType* ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
CallInst(llvm::FunctionType* ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1496
Parameters
- llvm::FunctionType* ty
- llvm::Value* F
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶CallInst(const llvm::CallInst& CI)
CallInst(const llvm::CallInst& CI)
Declared at: llvm/include/llvm/IR/Instructions.h:1475
Parameters
- const llvm::CallInst& CI
¶static int ComputeNumOperands(
int NumArgs,
int NumBundleInputs = 0)
static int ComputeNumOperands(
int NumArgs,
int NumBundleInputs = 0)
Description
Compute the number of operands to allocate.
Declared at: llvm/include/llvm/IR/Instructions.h:1504
Parameters
- int NumArgs
- int NumBundleInputs = 0
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1596
Parameters
- llvm::FunctionCallee Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::CallInst* Create(
llvm::CallInst* CI,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::Instruction* InsertPt = nullptr)
static llvm::CallInst* Create(
llvm::CallInst* CI,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::Instruction* InsertPt = nullptr)
Description
Create a clone of \p CI with a different set of operand bundles and insert it before \p InsertPt. The returned call instruction is identical \p CI in every way except that the operand bundles for the new instruction are set to the operand bundles in \p Bundles.
Declared at: llvm/include/llvm/IR/Instructions.h:1609
Parameters
- llvm::CallInst* CI
- ArrayRef<llvm::OperandBundleDef> Bundles
- llvm::Instruction* InsertPt = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1590
Parameters
- llvm::FunctionCallee Func
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1584
Parameters
- llvm::FunctionCallee Func
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1577
Parameters
- llvm::FunctionCallee Func
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& NameStr
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1569
Parameters
- llvm::FunctionCallee Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles = None
- const llvm::Twine& NameStr = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionCallee Func,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionCallee Func,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1563
Parameters
- llvm::FunctionCallee Func
- const llvm::Twine& NameStr = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1552
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1541
Parameters
- llvm::FunctionType* Ty
- llvm::Value* F
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1529
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles = None
- const llvm::Twine& NameStr = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1522
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& NameStr
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* F,
const llvm::Twine& NameStr = "",
llvm::Instruction* InsertBefore = nullptr)
Declared at: llvm/include/llvm/IR/Instructions.h:1517
Parameters
- llvm::FunctionType* Ty
- llvm::Value* F
- const llvm::Twine& NameStr = ""
- llvm::Instruction* InsertBefore = nullptr
¶static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
static llvm::CallInst* Create(
llvm::FunctionType* Ty,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
const llvm::Twine& NameStr,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1546
Parameters
- llvm::FunctionType* Ty
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- const llvm::Twine& NameStr
- llvm::BasicBlock* InsertAtEnd
¶static llvm::Instruction* CreateFree(
llvm::Value* Source,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::Instruction* InsertBefore)
static llvm::Instruction* CreateFree(
llvm::Value* Source,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::Instruction* InsertBefore)
Declared at: llvm/include/llvm/IR/Instructions.h:1643
Parameters
- llvm::Value* Source
- ArrayRef<llvm::OperandBundleDef> Bundles
- llvm::Instruction* InsertBefore
¶static llvm::Instruction* CreateFree(
llvm::Value* Source,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::BasicBlock* InsertAtEnd)
static llvm::Instruction* CreateFree(
llvm::Value* Source,
ArrayRef<llvm::OperandBundleDef> Bundles,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1646
Parameters
- llvm::Value* Source
- ArrayRef<llvm::OperandBundleDef> Bundles
- llvm::BasicBlock* InsertAtEnd
¶static llvm::Instruction* CreateFree(
llvm::Value* Source,
llvm::BasicBlock* InsertAtEnd)
static llvm::Instruction* CreateFree(
llvm::Value* Source,
llvm::BasicBlock* InsertAtEnd)
Declared at: llvm/include/llvm/IR/Instructions.h:1642
Parameters
- llvm::Value* Source
- llvm::BasicBlock* InsertAtEnd
¶static llvm::Instruction* CreateFree(
llvm::Value* Source,
llvm::Instruction* InsertBefore)
static llvm::Instruction* CreateFree(
llvm::Value* Source,
llvm::Instruction* InsertBefore)
Description
Generate the IR for a call to the builtin free function.
Declared at: llvm/include/llvm/IR/Instructions.h:1641
Parameters
- llvm::Value* Source
- llvm::Instruction* InsertBefore
¶static llvm::Instruction* CreateMalloc(
llvm::Instruction* InsertBefore,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
static llvm::Instruction* CreateMalloc(
llvm::Instruction* InsertBefore,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/Instructions.h:1628
Parameters
- llvm::Instruction* InsertBefore
- llvm::Type* IntPtrTy
- llvm::Type* AllocTy
- llvm::Value* AllocSize
- llvm::Value* ArraySize = nullptr
- ArrayRef<llvm::OperandBundleDef> Bundles = None
- llvm::Function* MallocF = nullptr
- const llvm::Twine& Name = ""
¶static llvm::Instruction* CreateMalloc(
llvm::BasicBlock* InsertAtEnd,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
static llvm::Instruction* CreateMalloc(
llvm::BasicBlock* InsertAtEnd,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
ArrayRef<llvm::OperandBundleDef> Bundles =
None,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/Instructions.h:1634
Parameters
- llvm::BasicBlock* InsertAtEnd
- llvm::Type* IntPtrTy
- llvm::Type* AllocTy
- llvm::Value* AllocSize
- llvm::Value* ArraySize = nullptr
- ArrayRef<llvm::OperandBundleDef> Bundles = None
- llvm::Function* MallocF = nullptr
- const llvm::Twine& Name = ""
¶static llvm::Instruction* CreateMalloc(
llvm::Instruction* InsertBefore,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
static llvm::Instruction* CreateMalloc(
llvm::Instruction* InsertBefore,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
Description
Generate the IR for a call to malloc: 1. Compute the malloc call's argument as the specified type's size, possibly multiplied by the array size if the array size is not constant 1. 2. Call malloc with that argument. 3. Bitcast the result of the malloc call to the specified type.
Declared at: llvm/include/llvm/IR/Instructions.h:1618
Parameters
- llvm::Instruction* InsertBefore
- llvm::Type* IntPtrTy
- llvm::Type* AllocTy
- llvm::Value* AllocSize
- llvm::Value* ArraySize = nullptr
- llvm::Function* MallocF = nullptr
- const llvm::Twine& Name = ""
¶static llvm::Instruction* CreateMalloc(
llvm::BasicBlock* InsertAtEnd,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
static llvm::Instruction* CreateMalloc(
llvm::BasicBlock* InsertAtEnd,
llvm::Type* IntPtrTy,
llvm::Type* AllocTy,
llvm::Value* AllocSize,
llvm::Value* ArraySize = nullptr,
llvm::Function* MallocF = nullptr,
const llvm::Twine& Name = "")
Declared at: llvm/include/llvm/IR/Instructions.h:1623
Parameters
- llvm::BasicBlock* InsertAtEnd
- llvm::Type* IntPtrTy
- llvm::Type* AllocTy
- llvm::Value* AllocSize
- llvm::Value* ArraySize = nullptr
- llvm::Function* MallocF = nullptr
- const llvm::Twine& Name = ""
¶bool canReturnTwice() const
bool canReturnTwice() const
Description
Return true if the call can return twice
Declared at: llvm/include/llvm/IR/Instructions.h:1686
¶static bool classof(const llvm::Value* V)
static bool classof(const llvm::Value* V)
Declared at: llvm/include/llvm/IR/Instructions.h:1693
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/Instructions.h:1690
Parameters
- const llvm::Instruction* I
¶llvm::CallInst* cloneImpl() const
llvm::CallInst* cloneImpl() const
Declared at: llvm/include/llvm/IR/Instructions.h:1514
¶llvm::CallInst::TailCallKind getTailCallKind()
const
llvm::CallInst::TailCallKind getTailCallKind()
const
Declared at: llvm/include/llvm/IR/Instructions.h:1664
¶void init(
llvm::FunctionType* FTy,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr)
void init(
llvm::FunctionType* FTy,
llvm::Value* Func,
ArrayRef<llvm::Value*> Args,
ArrayRef<llvm::OperandBundleDef> Bundles,
const llvm::Twine& NameStr)
Declared at: llvm/include/llvm/IR/Instructions.h:1499
Parameters
- llvm::FunctionType* FTy
- llvm::Value* Func
- ArrayRef<llvm::Value*> Args
- ArrayRef<llvm::OperandBundleDef> Bundles
- const llvm::Twine& NameStr
¶void init(llvm::FunctionType* FTy,
llvm::Value* Func,
const llvm::Twine& NameStr)
void init(llvm::FunctionType* FTy,
llvm::Value* Func,
const llvm::Twine& NameStr)
Declared at: llvm/include/llvm/IR/Instructions.h:1501
Parameters
- llvm::FunctionType* FTy
- llvm::Value* Func
- const llvm::Twine& NameStr
¶bool isMustTailCall() const
bool isMustTailCall() const
Declared at: llvm/include/llvm/IR/Instructions.h:1673
¶bool isNoTailCall() const
bool isNoTailCall() const
Declared at: llvm/include/llvm/IR/Instructions.h:1675
¶bool isTailCall() const
bool isTailCall() const
Declared at: llvm/include/llvm/IR/Instructions.h:1668
¶void setCanReturnTwice()
void setCanReturnTwice()
Declared at: llvm/include/llvm/IR/Instructions.h:1687
¶template <typename Bitfield>
void setSubclassData(
typename Bitfield::Type Value)
template <typename Bitfield>
void setSubclassData(
typename Bitfield::Type Value)
Declared at: llvm/include/llvm/IR/Instructions.h:1704
Templates
- Bitfield
Parameters
- typename Bitfield::Type Value
¶void setTailCall(bool IsTc = true)
void setTailCall(bool IsTc = true)
Declared at: llvm/include/llvm/IR/Instructions.h:1681
Parameters
- bool IsTc = true
¶void setTailCallKind(
llvm::CallInst::TailCallKind TCK)
void setTailCallKind(
llvm::CallInst::TailCallKind TCK)
Declared at: llvm/include/llvm/IR/Instructions.h:1677
Parameters
- llvm::CallInst::TailCallKind TCK
¶void updateProfWeight(uint64_t S, uint64_t T)
void updateProfWeight(uint64_t S, uint64_t T)
Description
Updates profile metadata by scaling it by \p S / \p T.
Declared at: llvm/include/llvm/IR/Instructions.h:1698
Parameters
- uint64_t S
- uint64_t T