LLVM: BuilderTy Class Reference (original) (raw)

Public Member Functions

BuilderTy (BasicBlock *TheBB, BasicBlock::iterator IP, TargetFolder Folder)

Public Member Functions inherited from llvm::IRBuilder< TargetFolder >

IRBuilder (LLVMContext &C, TargetFolder Folder, IRBuilderDefaultInserter Inserter, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles={})

IRBuilderDefaultInserter &

getInserter ()

Public Member Functions inherited from llvm::IRBuilderBase

IRBuilderBase (LLVMContext &context, const IRBuilderFolder &Folder, const IRBuilderDefaultInserter &Inserter, MDNode *FPMathTag, ArrayRef< OperandBundleDef > OpBundles)

template

InstTy *

Insert (InstTy *I, const Twine &Name="") const

Insert and return the specified instruction.

Constant *

Insert (Constant *C, const Twine &="") const

No-op overload to handle constants.

Value *

Insert (Value *V, const Twine &Name="") const

void

ClearInsertionPoint ()

Clear the insertion point: created instructions will not be inserted into a block.

BasicBlock *

GetInsertBlock () const

BasicBlock::iterator

GetInsertPoint () const

LLVMContext &

getContext () const

void

SetInsertPoint (BasicBlock *TheBB)

This specifies that created instructions should be appended to the end of the specified block.

void

SetInsertPoint (Instruction *I)

This specifies that created instructions should be inserted before the specified instruction.

void

SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP)

This specifies that created instructions should be inserted at the specified point.

void

SetInsertPoint (BasicBlock::iterator IP)

This specifies that created instructions should be inserted at the specified point, but also requires that IP is dereferencable.

void

SetInsertPointPastAllocas (Function *F)

This specifies that created instructions should inserted at the beginning end of the specified function, but after already existing static alloca instructions that are at the start.

void

SetCurrentDebugLocation (DebugLoc L)

Set location information used by debugging information.

void

SetNoSanitizeMetadata ()

Set nosanitize metadata.

void

CollectMetadataToCopy (Instruction *Src, ArrayRef< unsigned > MetadataKinds)

Collect metadata with IDs MetadataKinds from Src which should be added to all created instructions.

LLVM_ABI DebugLoc

getCurrentDebugLocation () const

Get location information used by debugging information.

LLVM_ABI void

SetInstDebugLocation (Instruction *I) const

If this builder has a current debug location, set it on the specified instruction.

void

AddMetadataToInst (Instruction *I) const

Add all entries in MetadataToCopy to I.

LLVM_ABI Type *

getCurrentFunctionReturnType () const

Get the return type of the current function that we're emitting into.

InsertPoint

saveIP () const

Returns the current insert point.

InsertPoint

saveAndClearIP ()

Returns the current insert point, clearing it in the process.

void

restoreIP (InsertPoint IP)

Sets the current insert point to a previously-saved location.

MDNode *

getDefaultFPMathTag () const

Get the floating point math metadata being used.

FastMathFlags

getFastMathFlags () const

Get the flags to be applied to created floating point ops.

FastMathFlags &

getFastMathFlags ()

void

clearFastMathFlags ()

Clear the fast-math flags.

void

setDefaultFPMathTag (MDNode *FPMathTag)

Set the floating point math metadata to be used.

void

setFastMathFlags (FastMathFlags NewFMF)

Set the fast-math flags to be used with generated fp-math operators.

void

setIsFPConstrained (bool IsCon)

Enable/Disable use of constrained floating point math.

bool

getIsFPConstrained ()

Query for the use of constrained floating point math.

void

setDefaultConstrainedExcept (fp::ExceptionBehavior NewExcept)

Set the exception handling to be used with constrained floating point.

void

setDefaultConstrainedRounding (RoundingMode NewRounding)

Set the rounding mode handling to be used with constrained floating point.

fp::ExceptionBehavior

getDefaultConstrainedExcept ()

Get the exception handling used with constrained floating point.

RoundingMode

getDefaultConstrainedRounding ()

Get the rounding mode handling used with constrained floating point.

void

setConstrainedFPFunctionAttr ()

void

setConstrainedFPCallAttr (CallBase *I)

void

setDefaultOperandBundles (ArrayRef< OperandBundleDef > OpBundles)

LLVM_ABI GlobalVariable *

CreateGlobalString (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr, bool AddNull=true)

Make a new global variable with initializer type i8*.

ConstantInt *

getInt1 (bool V)

Get a constant value representing either true or false.

ConstantInt *

getTrue ()

Get the constant value for i1 true.

ConstantInt *

getFalse ()

Get the constant value for i1 false.

ConstantInt *

getInt8 (uint8_t C)

Get a constant 8-bit value.

ConstantInt *

getInt16 (uint16_t C)

Get a constant 16-bit value.

ConstantInt *

getInt32 (uint32_t C)

Get a constant 32-bit value.

ConstantInt *

getInt64 (uint64_t C)

Get a constant 64-bit value.

ConstantInt *

getIntN (unsigned N, uint64_t C)

Get a constant N-bit value, zero extended or truncated from a 64-bit value.

ConstantInt *

getInt (const APInt &AI)

Get a constant integer value.

IntegerType *

getInt1Ty ()

Fetch the type representing a single bit.

IntegerType *

getInt8Ty ()

Fetch the type representing an 8-bit integer.

IntegerType *

getInt16Ty ()

Fetch the type representing a 16-bit integer.

IntegerType *

getInt32Ty ()

Fetch the type representing a 32-bit integer.

IntegerType *

getInt64Ty ()

Fetch the type representing a 64-bit integer.

IntegerType *

getInt128Ty ()

Fetch the type representing a 128-bit integer.

IntegerType *

getIntNTy (unsigned N)

Fetch the type representing an N-bit integer.

Type *

getHalfTy ()

Fetch the type representing a 16-bit floating point value.

Type *

getBFloatTy ()

Fetch the type representing a 16-bit brain floating point value.

Type *

getFloatTy ()

Fetch the type representing a 32-bit floating point value.

Type *

getDoubleTy ()

Fetch the type representing a 64-bit floating point value.

Type *

getVoidTy ()

Fetch the type representing void.

PointerType *

getPtrTy (unsigned AddrSpace=0)

Fetch the type representing a pointer.

IntegerType *

getIntPtrTy (const DataLayout &DL, unsigned AddrSpace=0)

Fetch the type of an integer with size at least as big as that of a pointer in the given address space.

IntegerType *

getIndexTy (const DataLayout &DL, unsigned AddrSpace)

Fetch the type of an integer that should be used to index GEP operations within AddressSpace.

CallInst *

CreateMemSet (Value *Ptr, Value *Val, uint64_t Size, MaybeAlign Align, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

Create and insert a memset to the specified pointer and the specified value.

LLVM_ABI CallInst *

CreateMemSet (Value *Ptr, Value *Val, Value *Size, MaybeAlign Align, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

LLVM_ABI CallInst *

CreateMemSetInline (Value *Dst, MaybeAlign DstAlign, Value *Val, Value *Size, bool IsVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

CallInst *

CreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, uint64_t Size, Align Alignment, uint32_t ElementSize, const AAMDNodes &AAInfo=AAMDNodes())

Create and insert an element unordered-atomic memset of the region of memory starting at the given pointer to the given value.

LLVM_ABI CallInst *

CreateMalloc (Type *IntPtrTy, Type *AllocTy, Value *AllocSize, Value *ArraySize, ArrayRef< OperandBundleDef > OpB, Function *MallocF=nullptr, const Twine &Name="")

LLVM_ABI CallInst *

CreateMalloc (Type *IntPtrTy, Type *AllocTy, Value *AllocSize, Value *ArraySize, Function *MallocF=nullptr, const Twine &Name="")

CreateMalloc - Generate the IR for a call to malloc:

LLVM_ABI CallInst *

CreateFree (Value *Source, ArrayRef< OperandBundleDef > Bundles={})

Generate the IR for a call to the builtin free function.

LLVM_ABI CallInst *

CreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, Value *Size, Align Alignment, uint32_t ElementSize, const AAMDNodes &AAInfo=AAMDNodes())

CallInst *

CreateMemCpy (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, uint64_t Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

Create and insert a memcpy between the specified pointers.

LLVM_ABI CallInst *

CreateMemTransferInst (Intrinsic::ID IntrID, Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

CallInst *

CreateMemCpy (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

CallInst *

CreateMemCpyInline (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

LLVM_ABI CallInst *

CreateElementUnorderedAtomicMemCpy (Value *Dst, Align DstAlign, Value *Src, Align SrcAlign, Value *Size, uint32_t ElementSize, const AAMDNodes &AAInfo=AAMDNodes())

Create and insert an element unordered-atomic memcpy between the specified pointers.

CallInst *

CreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, uint64_t Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

CallInst *

CreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, const AAMDNodes &AAInfo=AAMDNodes())

LLVM_ABI CallInst *

CreateElementUnorderedAtomicMemMove (Value *Dst, Align DstAlign, Value *Src, Align SrcAlign, Value *Size, uint32_t ElementSize, const AAMDNodes &AAInfo=AAMDNodes())

Create and insert an element unordered-atomic memmove between the specified pointers.

LLVM_ABI CallInst *

CreateFAddReduce (Value *Acc, Value *Src)

Create a sequential vector fadd reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateFMulReduce (Value *Acc, Value *Src)

Create a sequential vector fmul reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateAddReduce (Value *Src)

Create a vector int add reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateMulReduce (Value *Src)

Create a vector int mul reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateAndReduce (Value *Src)

Create a vector int AND reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateOrReduce (Value *Src)

Create a vector int OR reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateXorReduce (Value *Src)

Create a vector int XOR reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateIntMaxReduce (Value *Src, bool IsSigned=false)

Create a vector integer max reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateIntMinReduce (Value *Src, bool IsSigned=false)

Create a vector integer min reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateFPMaxReduce (Value *Src)

Create a vector float max reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateFPMinReduce (Value *Src)

Create a vector float min reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateFPMaximumReduce (Value *Src)

Create a vector float maximum reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateFPMinimumReduce (Value *Src)

Create a vector float minimum reduction intrinsic of the source vector.

LLVM_ABI CallInst *

CreateLifetimeStart (Value *Ptr)

Create a lifetime.start intrinsic.

LLVM_ABI CallInst *

CreateLifetimeEnd (Value *Ptr)

Create a lifetime.end intrinsic.

LLVM_ABI CallInst *

CreateInvariantStart (Value *Ptr, ConstantInt *Size=nullptr)

Create a call to invariant.start intrinsic.

LLVM_ABI CallInst *

CreateThreadLocalAddress (Value *Ptr)

Create a call to llvm.threadlocal.address intrinsic.

LLVM_ABI CallInst *

CreateMaskedLoad (Type *Ty, Value *Ptr, Align Alignment, Value *Mask, Value *PassThru=nullptr, const Twine &Name="")

Create a call to Masked Load intrinsic.

LLVM_ABI CallInst *

CreateMaskedStore (Value *Val, Value *Ptr, Align Alignment, Value *Mask)

Create a call to Masked Store intrinsic.

LLVM_ABI CallInst *

CreateMaskedGather (Type *Ty, Value *Ptrs, Align Alignment, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="")

Create a call to Masked Gather intrinsic.

LLVM_ABI CallInst *

CreateMaskedScatter (Value *Val, Value *Ptrs, Align Alignment, Value *Mask=nullptr)

Create a call to Masked Scatter intrinsic.

LLVM_ABI CallInst *

CreateMaskedExpandLoad (Type *Ty, Value *Ptr, MaybeAlign Align, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="")

Create a call to Masked Expand Load intrinsic.

LLVM_ABI CallInst *

CreateMaskedCompressStore (Value *Val, Value *Ptr, MaybeAlign Align, Value *Mask=nullptr)

Create a call to Masked Compress Store intrinsic.

Value *

getAllOnesMask (ElementCount NumElts)

Return an all true boolean vector (mask) with NumElts lanes.

LLVM_ABI CallInst *

CreateAssumption (Value *Cond, ArrayRef< OperandBundleDef > OpBundles={})

Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true.

LLVM_ABI Instruction *

CreateNoAliasScopeDeclaration (Value *Scope)

Create a llvm.experimental.noalias.scope.decl intrinsic call.

Instruction *

CreateNoAliasScopeDeclaration (MDNode *ScopeTag)

LLVM_ABI CallInst *

CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, ArrayRef< Value * > CallArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence.

LLVM_ABI CallInst *

CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, uint32_t Flags, ArrayRef< Value * > CallArgs, std::optional< ArrayRef< Use > > TransitionArgs, std::optional< ArrayRef< Use > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence.

LLVM_ABI CallInst *

CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, ArrayRef< Use > CallArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

Conveninence function for the common case when CallArgs are filled in using ArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer.

LLVM_ABI InvokeInst *

CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > InvokeArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence.

LLVM_ABI InvokeInst *

CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< Value * > InvokeArgs, std::optional< ArrayRef< Use > > TransitionArgs, std::optional< ArrayRef< Use > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence.

LLVM_ABI InvokeInst *

CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Use > InvokeArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")

LLVM_ABI CallInst *

CreateGCResult (Instruction *Statepoint, Type *ResultType, const Twine &Name="")

Create a call to the experimental.gc.result intrinsic to extract the result from a call wrapped in a statepoint.

LLVM_ABI CallInst *

CreateGCRelocate (Instruction *Statepoint, int BaseOffset, int DerivedOffset, Type *ResultType, const Twine &Name="")

Create a call to the experimental.gc.relocate intrinsics to project the relocated value of one pointer from the statepoint.

LLVM_ABI CallInst *

CreateGCGetPointerBase (Value *DerivedPtr, const Twine &Name="")

Create a call to the experimental.gc.pointer.base intrinsic to get the base pointer for the specified derived pointer.

LLVM_ABI CallInst *

CreateGCGetPointerOffset (Value *DerivedPtr, const Twine &Name="")

Create a call to the experimental.gc.get.pointer.offset intrinsic to get the offset of the specified derived pointer from its base.

Value *

CreateVScale (Type *Ty, const Twine &Name="")

Create a call to llvm.vscale.().

LLVM_ABI Value *

CreateElementCount (Type *Ty, ElementCount EC)

Create an expression which evaluates to the number of elements in EC at runtime.

LLVM_ABI Value *

CreateTypeSize (Type *Ty, TypeSize Size)

Create an expression which evaluates to the number of units in Size at runtime.

LLVM_ABI Value *

CreateStepVector (Type *DstType, const Twine &Name="")

Creates a vector of type DstType with the linear sequence <0, 1, ...>

LLVM_ABI CallInst *

CreateUnaryIntrinsic (Intrinsic::ID ID, Value *V, FMFSource FMFSource={}, const Twine &Name="")

Create a call to intrinsic [ID](namespacellvm%5F1%5F1CallingConv.html#abdf8cf606905c10634e831390981b0ed "LLVM IR allows to use arbitrary numbers as calling convention identifiers.") with 1 operand which is mangled on its type.

LLVM_ABI Value *

CreateBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="")

Create a call to intrinsic [ID](namespacellvm%5F1%5F1CallingConv.html#abdf8cf606905c10634e831390981b0ed "LLVM IR allows to use arbitrary numbers as calling convention identifiers.") with 2 operands which is mangled on the first type.

LLVM_ABI CallInst *

CreateIntrinsic (Intrinsic::ID ID, ArrayRef< Type * > Types, ArrayRef< Value * > Args, FMFSource FMFSource={}, const Twine &Name="")

Create a call to intrinsic [ID](namespacellvm%5F1%5F1CallingConv.html#abdf8cf606905c10634e831390981b0ed "LLVM IR allows to use arbitrary numbers as calling convention identifiers.") with Args, mangled using Types.

LLVM_ABI CallInst *

CreateIntrinsic (Type *RetTy, Intrinsic::ID ID, ArrayRef< Value * > Args, FMFSource FMFSource={}, const Twine &Name="")

Create a call to intrinsic [ID](namespacellvm%5F1%5F1CallingConv.html#abdf8cf606905c10634e831390981b0ed "LLVM IR allows to use arbitrary numbers as calling convention identifiers.") with RetTy and Args.

CallInst *

CreateIntrinsic (Intrinsic::ID ID, ArrayRef< Value * > Args, FMFSource FMFSource={}, const Twine &Name="")

Create a call to non-overloaded intrinsic [ID](namespacellvm%5F1%5F1CallingConv.html#abdf8cf606905c10634e831390981b0ed "LLVM IR allows to use arbitrary numbers as calling convention identifiers.") with Args.

Value *

CreateMinNum (Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="")

Create call to the minnum intrinsic.

Value *

CreateMaxNum (Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="")

Create call to the maxnum intrinsic.

Value *

CreateMinimum (Value *LHS, Value *RHS, const Twine &Name="")

Create call to the minimum intrinsic.

Value *

CreateMaximum (Value *LHS, Value *RHS, const Twine &Name="")

Create call to the maximum intrinsic.

Value *

CreateMinimumNum (Value *LHS, Value *RHS, const Twine &Name="")

Create call to the minimumnum intrinsic.

Value *

CreateMaximumNum (Value *LHS, Value *RHS, const Twine &Name="")

Create call to the maximum intrinsic.

Value *

CreateCopySign (Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="")

Create call to the copysign intrinsic.

Value *

CreateLdexp (Value *Src, Value *Exp, FMFSource FMFSource={}, const Twine &Name="")

Create call to the ldexp intrinsic.

Value *

CreateFMA (Value *Factor1, Value *Factor2, Value *Summand, FMFSource FMFSource={}, const Twine &Name="")

Create call to the fma intrinsic.

CallInst *

CreateArithmeticFence (Value *Val, Type *DstType, const Twine &Name="")

Create a call to the arithmetic_fence intrinsic.

CallInst *

CreateExtractVector (Type *DstType, Value *SrcVec, Value *Idx, const Twine &Name="")

Create a call to the vector.extract intrinsic.

CallInst *

CreateExtractVector (Type *DstType, Value *SrcVec, uint64_t Idx, const Twine &Name="")

Create a call to the vector.extract intrinsic.

CallInst *

CreateInsertVector (Type *DstType, Value *SrcVec, Value *SubVec, Value *Idx, const Twine &Name="")

Create a call to the vector.insert intrinsic.

CallInst *

CreateInsertVector (Type *DstType, Value *SrcVec, Value *SubVec, uint64_t Idx, const Twine &Name="")

Create a call to the vector.extract intrinsic.

CallInst *

CreateStackSave (const Twine &Name="")

Create a call to llvm.stacksave.

CallInst *

CreateStackRestore (Value *Ptr, const Twine &Name="")

Create a call to llvm.stackrestore.

Value *

CreateCountTrailingZeroElems (Type *ResTy, Value *Mask, bool ZeroIsPoison=true, const Twine &Name="")

Create a call to llvm.experimental_cttz_elts.

ReturnInst *

CreateRetVoid ()

Create a 'ret void' instruction.

ReturnInst *

CreateRet (Value *V)

Create a 'ret ' instruction.

ReturnInst *

CreateAggregateRet (Value *const *retVals, unsigned N)

Create a sequence of N insertvalue instructions, with one Value from the retVals array each, that build a aggregate return value one value at a time, and a ret instruction to return the resulting aggregate value.

BranchInst *

CreateBr (BasicBlock *Dest)

Create an unconditional 'br label X' instruction.

BranchInst *

CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)

Create a conditional 'br Cond, TrueDest, FalseDest' instruction.

BranchInst *

CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, Instruction *MDSrc)

Create a conditional 'br Cond, TrueDest, FalseDest' instruction.

SwitchInst *

CreateSwitch (Value *V, BasicBlock *Dest, unsigned NumCases=10, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)

Create a switch instruction with the specified value, default dest, and with a hint for the number of cases that will be added (for efficient allocation).

IndirectBrInst *

CreateIndirectBr (Value *Addr, unsigned NumDests=10)

Create an indirect branch instruction with the specified address operand, with an optional hint for the number of destinations that will be added (for efficient allocation).

InvokeInst *

CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")

Create an invoke instruction.

InvokeInst *

CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args={}, const Twine &Name="")

InvokeInst *

CreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")

InvokeInst *

CreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args={}, const Twine &Name="")

CallBrInst *

CreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args={}, const Twine &Name="")

Create a callbr instruction.

CallBrInst *

CreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")

CallBrInst *

CreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args={}, const Twine &Name="")

CallBrInst *

CreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")

ResumeInst *

CreateResume (Value *Exn)

CleanupReturnInst *

CreateCleanupRet (CleanupPadInst *CleanupPad, BasicBlock *UnwindBB=nullptr)

CatchSwitchInst *

CreateCatchSwitch (Value *ParentPad, BasicBlock *UnwindBB, unsigned NumHandlers, const Twine &Name="")

CatchPadInst *

CreateCatchPad (Value *ParentPad, ArrayRef< Value * > Args, const Twine &Name="")

CleanupPadInst *

CreateCleanupPad (Value *ParentPad, ArrayRef< Value * > Args={}, const Twine &Name="")

CatchReturnInst *

CreateCatchRet (CatchPadInst *CatchPad, BasicBlock *BB)

UnreachableInst *

CreateUnreachable ()

Value *

CreateAdd (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateNSWAdd (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateNUWAdd (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateSub (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateNSWSub (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateNUWSub (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateMul (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateNSWMul (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateNUWMul (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateUDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)

Value *

CreateExactUDiv (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateSDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)

Value *

CreateExactSDiv (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateURem (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateSRem (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateShl (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateShl (Value *LHS, const APInt &RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateShl (Value *LHS, uint64_t RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)

Value *

CreateLShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)

Value *

CreateLShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)

Value *

CreateLShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)

Value *

CreateAShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)

Value *

CreateAShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)

Value *

CreateAShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)

Value *

CreateAnd (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateAnd (Value *LHS, const APInt &RHS, const Twine &Name="")

Value *

CreateAnd (Value *LHS, uint64_t RHS, const Twine &Name="")

Value *

CreateAnd (ArrayRef< Value * > Ops)

Value *

CreateOr (Value *LHS, Value *RHS, const Twine &Name="", bool IsDisjoint=false)

Value *

CreateOr (Value *LHS, const APInt &RHS, const Twine &Name="")

Value *

CreateOr (Value *LHS, uint64_t RHS, const Twine &Name="")

Value *

CreateOr (ArrayRef< Value * > Ops)

Value *

CreateXor (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateXor (Value *LHS, const APInt &RHS, const Twine &Name="")

Value *

CreateXor (Value *LHS, uint64_t RHS, const Twine &Name="")

Value *

CreateFAdd (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFAddFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFSub (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFSubFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFMul (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFMulFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFDiv (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFDivFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFRem (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateFRemFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr)

Value *

CreateBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateBinOpFMF (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateLogicalAnd (Value *Cond1, Value *Cond2, const Twine &Name="", Instruction *MDFrom=nullptr)

Value *

CreateLogicalOr (Value *Cond1, Value *Cond2, const Twine &Name="", Instruction *MDFrom=nullptr)

Value *

CreateLogicalOp (Instruction::BinaryOps Opc, Value *Cond1, Value *Cond2, const Twine &Name="")

Value *

CreateLogicalOr (ArrayRef< Value * > Ops)

LLVM_ABI CallInst *

CreateConstrainedFPIntrinsic (Intrinsic::ID ID, ArrayRef< Type * > Types, ArrayRef< Value * > Args, FMFSource FMFSource, const Twine &Name, MDNode *FPMathTag=nullptr, std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt)

This function is like CreateIntrinsic for constrained fp intrinsics.

LLVM_ABI CallInst *

CreateConstrainedFPBinOp (Intrinsic::ID ID, Value *L, Value *R, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt)

LLVM_ABI CallInst *

CreateConstrainedFPUnroundedBinOp (Intrinsic::ID ID, Value *L, Value *R, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< fp::ExceptionBehavior > Except=std::nullopt)

Value *

CreateNeg (Value *V, const Twine &Name="", bool HasNSW=false)

Value *

CreateNSWNeg (Value *V, const Twine &Name="")

Value *

CreateFNeg (Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFNegFMF (Value *V, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateNot (Value *V, const Twine &Name="")

Value *

CreateUnOp (Instruction::UnaryOps Opc, Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)

LLVM_ABI Value *

CreateNAryOp (unsigned Opc, ArrayRef< Value * > Ops, const Twine &Name="", MDNode *FPMathTag=nullptr)

Create either a UnaryOperator or BinaryOperator depending on Opc.

AllocaInst *

CreateAlloca (Type *Ty, unsigned AddrSpace, Value *ArraySize=nullptr, const Twine &Name="")

AllocaInst *

CreateAlloca (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="")

LoadInst *

CreateLoad (Type *Ty, Value *Ptr, const char *Name)

Provided to resolve 'CreateLoad(Ty, Ptr, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter.

LoadInst *

CreateLoad (Type *Ty, Value *Ptr, const Twine &Name="")

LoadInst *

CreateLoad (Type *Ty, Value *Ptr, bool isVolatile, const Twine &Name="")

StoreInst *

CreateStore (Value *Val, Value *Ptr, bool isVolatile=false)

LoadInst *

CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const char *Name)

LoadInst *

CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const Twine &Name="")

LoadInst *

CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, bool isVolatile, const Twine &Name="")

StoreInst *

CreateAlignedStore (Value *Val, Value *Ptr, MaybeAlign Align, bool isVolatile=false)

FenceInst *

CreateFence (AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System, const Twine &Name="")

AtomicCmpXchgInst *

CreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, MaybeAlign Align, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SyncScope::ID SSID=SyncScope::System)

AtomicRMWInst *

CreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, MaybeAlign Align, AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System)

Value *

CreateGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="", GEPNoWrapFlags NW=GEPNoWrapFlags::none())

Value *

CreateInBoundsGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="")

Value *

CreateConstGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")

Value *

CreateConstInBoundsGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")

Value *

CreateConstGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="", GEPNoWrapFlags NWFlags=GEPNoWrapFlags::none())

Value *

CreateConstInBoundsGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")

Value *

CreateConstGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")

Value *

CreateConstInBoundsGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")

Value *

CreateConstGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")

Value *

CreateConstInBoundsGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")

Value *

CreateStructGEP (Type *Ty, Value *Ptr, unsigned Idx, const Twine &Name="")

Value *

CreatePtrAdd (Value *Ptr, Value *Offset, const Twine &Name="", GEPNoWrapFlags NW=GEPNoWrapFlags::none())

Value *

CreateInBoundsPtrAdd (Value *Ptr, Value *Offset, const Twine &Name="")

Constant *

CreateGlobalStringPtr (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr, bool AddNull=true)

Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8.

Value *

CreateTrunc (Value *V, Type *DestTy, const Twine &Name="", bool IsNUW=false, bool IsNSW=false)

Value *

CreateZExt (Value *V, Type *DestTy, const Twine &Name="", bool IsNonNeg=false)

Value *

CreateSExt (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateZExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")

Create a ZExt or Trunc from the integer value V to DestTy.

Value *

CreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")

Create a SExt or Trunc from the integer value V to DestTy.

Value *

CreateFPToUI (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateFPToSI (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateUIToFP (Value *V, Type *DestTy, const Twine &Name="", bool IsNonNeg=false)

Value *

CreateSIToFP (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateFPTrunc (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFPTruncFMF (Value *V, Type *DestTy, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFPExt (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFPExtFMF (Value *V, Type *DestTy, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreatePtrToAddr (Value *V, const Twine &Name="")

Value *

CreatePtrToInt (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateIntToPtr (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateBitCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateZExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateSExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateTruncOrBitCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateCast (Instruction::CastOps Op, Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr, FMFSource FMFSource={})

Value *

CreatePointerCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreatePointerBitCastOrAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateIntCast (Value *V, Type *DestTy, bool isSigned, const Twine &Name="")

Value *

CreateBitOrPointerCast (Value *V, Type *DestTy, const Twine &Name="")

Value *

CreateFPCast (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr)

LLVM_ABI CallInst *

CreateConstrainedFPCast (Intrinsic::ID ID, Value *V, Type *DestTy, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt)

Value *

CreateIntCast (Value *, Type *, const char *)=delete

LLVM_ABI Value *

CreateAggregateCast (Value *V, Type *DestTy)

Cast between aggregate types that must have identical structure but may differ in their leaf types.

Value *

CreateICmpEQ (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpNE (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpUGT (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpUGE (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpULT (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpULE (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpSGT (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpSGE (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpSLT (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateICmpSLE (Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateFCmpOEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpOGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpOGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpOLT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpOLE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpONE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpORD (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpUNO (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpUEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpUGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpUGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpULT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpULE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpUNE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateICmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="")

Value *

CreateFCmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpFMF (CmpInst::Predicate P, Value *LHS, Value *RHS, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateCmp (CmpInst::Predicate Pred, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

Value *

CreateFCmpS (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)

LLVM_ABI CallInst *

CreateConstrainedFPCmp (Intrinsic::ID ID, CmpInst::Predicate P, Value *L, Value *R, const Twine &Name="", std::optional< fp::ExceptionBehavior > Except=std::nullopt)

PHINode *

CreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="")

CallInst *

CreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args={}, const Twine &Name="", MDNode *FPMathTag=nullptr)

CallInst *

CreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)

CallInst *

CreateCall (FunctionCallee Callee, ArrayRef< Value * > Args={}, const Twine &Name="", MDNode *FPMathTag=nullptr)

CallInst *

CreateCall (FunctionCallee Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)

LLVM_ABI CallInst *

CreateConstrainedFPCall (Function *Callee, ArrayRef< Value * > Args, const Twine &Name="", std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt)

LLVM_ABI Value *

CreateSelectWithUnknownProfile (Value *C, Value *True, Value *False, StringRef PassName, const Twine &Name="")

LLVM_ABI Value *

CreateSelect (Value *C, Value *True, Value *False, const Twine &Name="", Instruction *MDFrom=nullptr)

LLVM_ABI Value *

CreateSelectFMF (Value *C, Value *True, Value *False, FMFSource FMFSource, const Twine &Name="", Instruction *MDFrom=nullptr)

VAArgInst *

CreateVAArg (Value *List, Type *Ty, const Twine &Name="")

Value *

CreateExtractElement (Value *Vec, Value *Idx, const Twine &Name="")

Value *

CreateExtractElement (Value *Vec, uint64_t Idx, const Twine &Name="")

Value *

CreateInsertElement (Type *VecTy, Value *NewElt, Value *Idx, const Twine &Name="")

Value *

CreateInsertElement (Type *VecTy, Value *NewElt, uint64_t Idx, const Twine &Name="")

Value *

CreateInsertElement (Value *Vec, Value *NewElt, Value *Idx, const Twine &Name="")

Value *

CreateInsertElement (Value *Vec, Value *NewElt, uint64_t Idx, const Twine &Name="")

Value *

CreateShuffleVector (Value *V1, Value *V2, Value *Mask, const Twine &Name="")

Value *

CreateShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask, const Twine &Name="")

See class ShuffleVectorInst for a description of the mask representation.

Value *

CreateShuffleVector (Value *V, ArrayRef< int > Mask, const Twine &Name="")

Create a unary shuffle.

LLVM_ABI Value *

CreateVectorInterleave (ArrayRef< Value * > Ops, const Twine &Name="")

Value *

CreateExtractValue (Value *Agg, ArrayRef< unsigned > Idxs, const Twine &Name="")

Value *

CreateInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const Twine &Name="")

LandingPadInst *

CreateLandingPad (Type *Ty, unsigned NumClauses, const Twine &Name="")

Value *

CreateFreeze (Value *V, const Twine &Name="")

Value *

CreateIsNull (Value *Arg, const Twine &Name="")

Return a boolean value testing if Arg == 0.

Value *

CreateIsNotNull (Value *Arg, const Twine &Name="")

Return a boolean value testing if Arg != 0.

Value *

CreateIsNeg (Value *Arg, const Twine &Name="")

Return a boolean value testing if Arg < 0.

Value *

CreateIsNotNeg (Value *Arg, const Twine &Name="")

Return a boolean value testing if Arg > -1.

LLVM_ABI Value *

CreatePtrDiff (Type *ElemTy, Value *LHS, Value *RHS, const Twine &Name="")

Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects.

LLVM_ABI Value *

CreateLaunderInvariantGroup (Value *Ptr)

Create a launder.invariant.group intrinsic call.

LLVM_ABI Value *

CreateStripInvariantGroup (Value *Ptr)

Create a strip.invariant.group intrinsic call.

LLVM_ABI Value *

CreateVectorReverse (Value *V, const Twine &Name="")

Return a vector value that contains the vector V reversed.

LLVM_ABI Value *

CreateVectorSplice (Value *V1, Value *V2, int64_t Imm, const Twine &Name="")

Return a vector splice intrinsic if using scalable vectors, otherwise return a shufflevector.

LLVM_ABI Value *

CreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")

Return a vector value that contains.

LLVM_ABI Value *

CreateVectorSplat (ElementCount EC, Value *V, const Twine &Name="")

Return a vector value that contains.

LLVM_ABI Value *

CreatePreserveArrayAccessIndex (Type *ElTy, Value *Base, unsigned Dimension, unsigned LastIndex, MDNode *DbgInfo)

LLVM_ABI Value *

CreatePreserveUnionAccessIndex (Value *Base, unsigned FieldIndex, MDNode *DbgInfo)

LLVM_ABI Value *

CreatePreserveStructAccessIndex (Type *ElTy, Value *Base, unsigned Index, unsigned FieldIndex, MDNode *DbgInfo)

LLVM_ABI Value *

createIsFPClass (Value *FPNum, unsigned Test)

LLVM_ABI CallInst *

CreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, unsigned Alignment, Value *OffsetValue=nullptr)

Create an assume intrinsic call that represents an alignment assumption on the provided pointer.

LLVM_ABI CallInst *

CreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, Value *Alignment, Value *OffsetValue=nullptr)

Create an assume intrinsic call that represents an alignment assumption on the provided pointer.

LLVM_ABI CallInst *

CreateDereferenceableAssumption (Value *PtrValue, Value *SizeValue)

Create an assume intrinsic call that represents an dereferencable assumption on the provided pointer.