LLVM  9.0.0svn
Public Member Functions | List of all members
llvm::IRBuilder< T, Inserter > Class Template Reference

This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More...

#include "llvm/IR/IRBuilder.h"

Inheritance diagram for llvm::IRBuilder< T, Inserter >:
Inheritance graph
[legend]
Collaboration diagram for llvm::IRBuilder< T, Inserter >:
Collaboration graph
[legend]

Public Member Functions

 IRBuilder (LLVMContext &C, const T &F, Inserter I=Inserter(), MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (LLVMContext &C, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (BasicBlock *TheBB, const T &F, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (BasicBlock *TheBB, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (Instruction *IP, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, const T &F, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
 IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
const TgetFolder ()
 Get the constant folder being used. More...
 
template<typename InstTy >
InstTy * Insert (InstTy *I, const Twine &Name="") const
 Insert and return the specified instruction. More...
 
ConstantInsert (Constant *C, const Twine &="") const
 No-op overload to handle constants. More...
 
ReturnInstCreateRetVoid ()
 Create a 'ret void' instruction. More...
 
ReturnInstCreateRet (Value *V)
 Create a 'ret <val>' instruction. More...
 
ReturnInstCreateAggregateRet (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. More...
 
BranchInstCreateBr (BasicBlock *Dest)
 Create an unconditional 'br label X' instruction. More...
 
BranchInstCreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More...
 
BranchInstCreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, Instruction *MDSrc)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More...
 
SwitchInstCreateSwitch (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). More...
 
IndirectBrInstCreateIndirectBr (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). More...
 
InvokeInstCreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 Create an invoke instruction. More...
 
InvokeInstCreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, const Twine &Name="")
 
InvokeInstCreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
InvokeInstCreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, const Twine &Name="")
 
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock *> IndirectDests, ArrayRef< Value *> Args=None, const Twine &Name="")
 Create a callbr instruction. More...
 
CallBrInstCreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock *> IndirectDests, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock *> IndirectDests, ArrayRef< Value *> Args=None, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock *> IndirectDests, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
ResumeInstCreateResume (Value *Exn)
 
CleanupReturnInstCreateCleanupRet (CleanupPadInst *CleanupPad, BasicBlock *UnwindBB=nullptr)
 
CatchSwitchInstCreateCatchSwitch (Value *ParentPad, BasicBlock *UnwindBB, unsigned NumHandlers, const Twine &Name="")
 
CatchPadInstCreateCatchPad (Value *ParentPad, ArrayRef< Value *> Args, const Twine &Name="")
 
CleanupPadInstCreateCleanupPad (Value *ParentPad, ArrayRef< Value *> Args=None, const Twine &Name="")
 
CatchReturnInstCreateCatchRet (CatchPadInst *CatchPad, BasicBlock *BB)
 
UnreachableInstCreateUnreachable ()
 
ValueCreateAdd (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWAdd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWAdd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSub (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWSub (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWSub (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateMul (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWMul (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWMul (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateUDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateExactUDiv (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateExactSDiv (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateURem (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSRem (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateShl (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateShl (Value *LHS, const APInt &RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateShl (Value *LHS, uint64_t RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateLShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateLShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateLShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAnd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateAnd (Value *LHS, const APInt &RHS, const Twine &Name="")
 
ValueCreateAnd (Value *LHS, uint64_t RHS, const Twine &Name="")
 
ValueCreateOr (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateOr (Value *LHS, const APInt &RHS, const Twine &Name="")
 
ValueCreateOr (Value *LHS, uint64_t RHS, const Twine &Name="")
 
ValueCreateXor (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateXor (Value *LHS, const APInt &RHS, const Twine &Name="")
 
ValueCreateXor (Value *LHS, uint64_t RHS, const Twine &Name="")
 
ValueCreateFAdd (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFAddFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFSub (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFSubFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFMul (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFMulFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFDiv (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFDivFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFRem (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFRemFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateNeg (Value *V, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWNeg (Value *V, const Twine &Name="")
 
ValueCreateNUWNeg (Value *V, const Twine &Name="")
 
ValueCreateFNeg (Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFNegFMF (Value *V, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateNot (Value *V, const Twine &Name="")
 
ValueCreateUnOp (Instruction::UnaryOps Opc, Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateNAryOp (unsigned Opc, ArrayRef< Value *> Ops, const Twine &Name="", MDNode *FPMathTag=nullptr)
 Create either a UnaryOperator or BinaryOperator depending on Opc. More...
 
AllocaInstCreateAlloca (Type *Ty, unsigned AddrSpace, Value *ArraySize=nullptr, const Twine &Name="")
 
AllocaInstCreateAlloca (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="")
 
LoadInstCreateLoad (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. More...
 
LoadInstCreateLoad (Type *Ty, Value *Ptr, const Twine &Name="")
 
LoadInstCreateLoad (Type *Ty, Value *Ptr, bool isVolatile, const Twine &Name="")
 
LoadInstCreateLoad (Value *Ptr, const char *Name)
 
LoadInstCreateLoad (Value *Ptr, const Twine &Name="")
 
LoadInstCreateLoad (Value *Ptr, bool isVolatile, const Twine &Name="")
 
StoreInstCreateStore (Value *Val, Value *Ptr, bool isVolatile=false)
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, const char *Name)
 Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter. More...
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, const Twine &Name="")
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, bool isVolatile, const Twine &Name="")
 
LoadInstCreateAlignedLoad (Value *Ptr, unsigned Align, const char *Name)
 
LoadInstCreateAlignedLoad (Value *Ptr, unsigned Align, const Twine &Name="")
 
LoadInstCreateAlignedLoad (Value *Ptr, unsigned Align, bool isVolatile, const Twine &Name="")
 
StoreInstCreateAlignedStore (Value *Val, Value *Ptr, unsigned Align, bool isVolatile=false)
 
FenceInstCreateFence (AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System, const Twine &Name="")
 
AtomicCmpXchgInstCreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SyncScope::ID SSID=SyncScope::System)
 
AtomicRMWInstCreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System)
 
ValueCreateGEP (Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="")
 
ValueCreateGEP (Type *Ty, Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="")
 
ValueCreateInBoundsGEP (Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="")
 
ValueCreateInBoundsGEP (Type *Ty, Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="")
 
ValueCreateGEP (Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateInBoundsGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateConstGEP1_32 (Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstInBoundsGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")
 
ValueCreateConstInBoundsGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")
 
ValueCreateConstGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
ValueCreateConstGEP1_64 (Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
ValueCreateConstInBoundsGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
ValueCreateConstInBoundsGEP1_64 (Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
ValueCreateConstGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
ValueCreateConstGEP2_64 (Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
ValueCreateConstInBoundsGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
ValueCreateConstInBoundsGEP2_64 (Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
ValueCreateStructGEP (Type *Ty, Value *Ptr, unsigned Idx, const Twine &Name="")
 
ValueCreateStructGEP (Value *Ptr, unsigned Idx, const Twine &Name="")
 
ConstantCreateGlobalStringPtr (StringRef Str, const Twine &Name="", unsigned AddressSpace=0)
 Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8. More...
 
ValueCreateTrunc (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a ZExt or Trunc from the integer value V to DestTy. More...
 
ValueCreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a SExt or Trunc from the integer value V to DestTy. More...
 
ValueCreateFPToUI (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPToSI (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateUIToFP (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSIToFP (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPTrunc (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePtrToInt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateIntToPtr (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateTruncOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateCast (Instruction::CastOps Op, Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePointerCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePointerBitCastOrAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateIntCast (Value *V, Type *DestTy, bool isSigned, const Twine &Name="")
 
ValueCreateBitOrPointerCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateIntCast (Value *, Type *, const char *)=delete
 
ValueCreateICmpEQ (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpNE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpUGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpUGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpULT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpULE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSLT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSLE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpOEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOLT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOLE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpONE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpORD (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUNO (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpULT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpULE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUNE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateICmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
PHINodeCreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="")
 
CallInstCreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value *> Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionCallee Callee, ArrayRef< Value *> Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionCallee Callee, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (Value *Callee, ArrayRef< Value *> Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (Value *Callee, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateSelect (Value *C, Value *True, Value *False, const Twine &Name="", Instruction *MDFrom=nullptr)
 
VAArgInstCreateVAArg (Value *List, Type *Ty, const Twine &Name="")
 
ValueCreateExtractElement (Value *Vec, Value *Idx, const Twine &Name="")
 
ValueCreateExtractElement (Value *Vec, uint64_t Idx, const Twine &Name="")
 
ValueCreateInsertElement (Value *Vec, Value *NewElt, Value *Idx, const Twine &Name="")
 
ValueCreateInsertElement (Value *Vec, Value *NewElt, uint64_t Idx, const Twine &Name="")
 
ValueCreateShuffleVector (Value *V1, Value *V2, Value *Mask, const Twine &Name="")
 
ValueCreateShuffleVector (Value *V1, Value *V2, ArrayRef< uint32_t > IntMask, const Twine &Name="")
 
ValueCreateExtractValue (Value *Agg, ArrayRef< unsigned > Idxs, const Twine &Name="")
 
ValueCreateInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const Twine &Name="")
 
LandingPadInstCreateLandingPad (Type *Ty, unsigned NumClauses, const Twine &Name="")
 
ValueCreateIsNull (Value *Arg, const Twine &Name="")
 Return an i1 value testing if Arg is null. More...
 
ValueCreateIsNotNull (Value *Arg, const Twine &Name="")
 Return an i1 value testing if Arg is not null. More...
 
ValueCreatePtrDiff (Value *LHS, Value *RHS, const Twine &Name="")
 Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects. More...
 
ValueCreateLaunderInvariantGroup (Value *Ptr)
 Create a launder.invariant.group intrinsic call. More...
 
ValueCreateStripInvariantGroup (Value *Ptr)
 Create a strip.invariant.group intrinsic call. More...
 
ValueCreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")
 Return a vector value that contains. More...
 
ValueCreateExtractInteger (const DataLayout &DL, Value *From, IntegerType *ExtractedTy, uint64_t Offset, const Twine &Name)
 Return a value that has been extracted from a larger integer type. More...
 
CallInstCreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, unsigned Alignment, Value *OffsetValue=nullptr, Value **TheCheck=nullptr)
 Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More...
 
CallInstCreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, Value *Alignment, Value *OffsetValue=nullptr, Value **TheCheck=nullptr)
 Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More...
 
- Public Member Functions inherited from llvm::IRBuilderBase
 IRBuilderBase (LLVMContext &context, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None)
 
void ClearInsertionPoint ()
 Clear the insertion point: created instructions will not be inserted into a block. More...
 
BasicBlockGetInsertBlock () const
 
BasicBlock::iterator GetInsertPoint () const
 
LLVMContextgetContext () const
 
void SetInsertPoint (BasicBlock *TheBB)
 This specifies that created instructions should be appended to the end of the specified block. More...
 
void SetInsertPoint (Instruction *I)
 This specifies that created instructions should be inserted before the specified instruction. More...
 
void SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP)
 This specifies that created instructions should be inserted at the specified point. More...
 
void SetCurrentDebugLocation (DebugLoc L)
 Set location information used by debugging information. More...
 
const DebugLocgetCurrentDebugLocation () const
 Get location information used by debugging information. More...
 
void SetInstDebugLocation (Instruction *I) const
 If this builder has a current debug location, set it on the specified instruction. More...
 
TypegetCurrentFunctionReturnType () const
 Get the return type of the current function that we're emitting into. More...
 
InsertPoint saveIP () const
 Returns the current insert point. More...
 
InsertPoint saveAndClearIP ()
 Returns the current insert point, clearing it in the process. More...
 
void restoreIP (InsertPoint IP)
 Sets the current insert point to a previously-saved location. More...
 
MDNodegetDefaultFPMathTag () const
 Get the floating point math metadata being used. More...
 
FastMathFlags getFastMathFlags () const
 Get the flags to be applied to created floating point ops. More...
 
void clearFastMathFlags ()
 Clear the fast-math flags. More...
 
void setDefaultFPMathTag (MDNode *FPMathTag)
 Set the floating point math metadata to be used. More...
 
void setFastMathFlags (FastMathFlags NewFMF)
 Set the fast-math flags to be used with generated fp-math operators. More...
 
GlobalVariableCreateGlobalString (StringRef Str, const Twine &Name="", unsigned AddressSpace=0)
 Make a new global variable with initializer type i8*. More...
 
ConstantIntgetInt1 (bool V)
 Get a constant value representing either true or false. More...
 
ConstantIntgetTrue ()
 Get the constant value for i1 true. More...
 
ConstantIntgetFalse ()
 Get the constant value for i1 false. More...
 
ConstantIntgetInt8 (uint8_t C)
 Get a constant 8-bit value. More...
 
ConstantIntgetInt16 (uint16_t C)
 Get a constant 16-bit value. More...
 
ConstantIntgetInt32 (uint32_t C)
 Get a constant 32-bit value. More...
 
ConstantIntgetInt64 (uint64_t C)
 Get a constant 64-bit value. More...
 
ConstantIntgetIntN (unsigned N, uint64_t C)
 Get a constant N-bit value, zero extended or truncated from a 64-bit value. More...
 
ConstantIntgetInt (const APInt &AI)
 Get a constant integer value. More...
 
IntegerTypegetInt1Ty ()
 Fetch the type representing a single bit. More...
 
IntegerTypegetInt8Ty ()
 Fetch the type representing an 8-bit integer. More...
 
IntegerTypegetInt16Ty ()
 Fetch the type representing a 16-bit integer. More...
 
IntegerTypegetInt32Ty ()
 Fetch the type representing a 32-bit integer. More...
 
IntegerTypegetInt64Ty ()
 Fetch the type representing a 64-bit integer. More...
 
IntegerTypegetInt128Ty ()
 Fetch the type representing a 128-bit integer. More...
 
IntegerTypegetIntNTy (unsigned N)
 Fetch the type representing an N-bit integer. More...
 
TypegetHalfTy ()
 Fetch the type representing a 16-bit floating point value. More...
 
TypegetFloatTy ()
 Fetch the type representing a 32-bit floating point value. More...
 
TypegetDoubleTy ()
 Fetch the type representing a 64-bit floating point value. More...
 
TypegetVoidTy ()
 Fetch the type representing void. More...
 
PointerTypegetInt8PtrTy (unsigned AddrSpace=0)
 Fetch the type representing a pointer to an 8-bit integer value. More...
 
IntegerTypegetIntPtrTy (const DataLayout &DL, unsigned AddrSpace=0)
 Fetch the type representing a pointer to an integer value. More...
 
CallInstCreateMemSet (Value *Ptr, Value *Val, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert a memset to the specified pointer and the specified value. More...
 
CallInstCreateMemSet (Value *Ptr, Value *Val, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, uint64_t Size, unsigned Align, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memset of the region of memory starting at the given pointer to the given value. More...
 
CallInstCreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, Value *Size, unsigned Align, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert a memcpy between the specified pointers. More...
 
CallInstCreateMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memcpy between the specified pointers. More...
 
CallInstCreateElementUnorderedAtomicMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert a memmove between the specified pointers. More...
 
CallInstCreateMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memmove between the specified pointers. More...
 
CallInstCreateElementUnorderedAtomicMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateFAddReduce (Value *Acc, Value *Src)
 Create a vector fadd reduction intrinsic of the source vector. More...
 
CallInstCreateFMulReduce (Value *Acc, Value *Src)
 Create a vector fmul reduction intrinsic of the source vector. More...
 
CallInstCreateAddReduce (Value *Src)
 Create a vector int add reduction intrinsic of the source vector. More...
 
CallInstCreateMulReduce (Value *Src)
 Create a vector int mul reduction intrinsic of the source vector. More...
 
CallInstCreateAndReduce (Value *Src)
 Create a vector int AND reduction intrinsic of the source vector. More...
 
CallInstCreateOrReduce (Value *Src)
 Create a vector int OR reduction intrinsic of the source vector. More...
 
CallInstCreateXorReduce (Value *Src)
 Create a vector int XOR reduction intrinsic of the source vector. More...
 
CallInstCreateIntMaxReduce (Value *Src, bool IsSigned=false)
 Create a vector integer max reduction intrinsic of the source vector. More...
 
CallInstCreateIntMinReduce (Value *Src, bool IsSigned=false)
 Create a vector integer min reduction intrinsic of the source vector. More...
 
CallInstCreateFPMaxReduce (Value *Src, bool NoNaN=false)
 Create a vector float max reduction intrinsic of the source vector. More...
 
CallInstCreateFPMinReduce (Value *Src, bool NoNaN=false)
 Create a vector float min reduction intrinsic of the source vector. More...
 
CallInstCreateLifetimeStart (Value *Ptr, ConstantInt *Size=nullptr)
 Create a lifetime.start intrinsic. More...
 
CallInstCreateLifetimeEnd (Value *Ptr, ConstantInt *Size=nullptr)
 Create a lifetime.end intrinsic. More...
 
CallInstCreateInvariantStart (Value *Ptr, ConstantInt *Size=nullptr)
 Create a call to invariant.start intrinsic. More...
 
CallInstCreateMaskedLoad (Value *Ptr, unsigned Align, Value *Mask, Value *PassThru=nullptr, const Twine &Name="")
 Create a call to Masked Load intrinsic. More...
 
CallInstCreateMaskedStore (Value *Val, Value *Ptr, unsigned Align, Value *Mask)
 Create a call to Masked Store intrinsic. More...
 
CallInstCreateMaskedGather (Value *Ptrs, unsigned Align, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="")
 Create a call to Masked Gather intrinsic. More...
 
CallInstCreateMaskedScatter (Value *Val, Value *Ptrs, unsigned Align, Value *Mask=nullptr)
 Create a call to Masked Scatter intrinsic. More...
 
CallInstCreateAssumption (Value *Cond)
 Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true. More...
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Value *> CallArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< Use > CallArgs, ArrayRef< Use > TransitionArgs, ArrayRef< Use > DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Use > CallArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 Conveninence function for the common case when CallArgs are filled in using makeArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> InvokeArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< Use > InvokeArgs, ArrayRef< Use > TransitionArgs, ArrayRef< Use > DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Use > InvokeArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="")
 
CallInstCreateGCResult (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. More...
 
CallInstCreateGCRelocate (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. More...
 
CallInstCreateUnaryIntrinsic (Intrinsic::ID ID, Value *V, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with 1 operand which is mangled on its type. More...
 
CallInstCreateBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with 2 operands which is mangled on the first type. More...
 
CallInstCreateIntrinsic (Intrinsic::ID ID, ArrayRef< Type *> Types, ArrayRef< Value *> Args, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with args, mangled using Types. More...
 
CallInstCreateMinNum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the minnum intrinsic. More...
 
CallInstCreateMaxNum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the maxnum intrinsic. More...
 
CallInstCreateMinimum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the minimum intrinsic. More...
 
CallInstCreateMaximum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the maximum intrinsic. More...
 

Additional Inherited Members

- Protected Attributes inherited from llvm::IRBuilderBase
BasicBlockBB
 
BasicBlock::iterator InsertPt
 
LLVMContextContext
 
MDNodeDefaultFPMathTag
 
FastMathFlags FMF
 
ArrayRef< OperandBundleDefDefaultOperandBundles
 

Detailed Description

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
class llvm::IRBuilder< T, Inserter >

This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block.

Note that the builder does not expose the full generality of LLVM instructions. For access to extra instruction properties, use the mutators (e.g. setVolatile) on the instructions after they have been created. Convenience state exists to specify fast-math flags and fp-math tags.

The first template argument specifies a class to use for creating constants. This defaults to creating minimally folded constants. The second template argument allows clients to specify custom insertion hooks that are called on every newly created insertion.

Definition at line 742 of file IRBuilder.h.

Constructor & Destructor Documentation

◆ IRBuilder() [1/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( LLVMContext C,
const T F,
Inserter  I = Inserter(),
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inline

Definition at line 746 of file IRBuilder.h.

◆ IRBuilder() [2/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( LLVMContext C,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inlineexplicit

Definition at line 752 of file IRBuilder.h.

◆ IRBuilder() [3/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( BasicBlock TheBB,
const T F,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inlineexplicit

Definition at line 756 of file IRBuilder.h.

◆ IRBuilder() [4/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( BasicBlock TheBB,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inlineexplicit

Definition at line 762 of file IRBuilder.h.

◆ IRBuilder() [5/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( Instruction IP,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inlineexplicit

Definition at line 768 of file IRBuilder.h.

◆ IRBuilder() [6/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( BasicBlock TheBB,
BasicBlock::iterator  IP,
const T F,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inline

Definition at line 774 of file IRBuilder.h.

◆ IRBuilder() [7/7]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
llvm::IRBuilder< T, Inserter >::IRBuilder ( BasicBlock TheBB,
BasicBlock::iterator  IP,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
)
inline

Definition at line 781 of file IRBuilder.h.

Member Function Documentation

◆ CreateAdd()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAdd ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateAddrSpaceCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1814 of file IRBuilder.h.

Referenced by GetRMWLibcall(), INITIALIZE_PASS(), and simplifyInvariantGroupIntrinsic().

◆ CreateAggregateRet()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
ReturnInst* llvm::IRBuilder< T, Inserter >::CreateAggregateRet ( Value *const retVals,
unsigned  N 
)
inline

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.

This is a convenience function for code that uses aggregate return values as a vehicle for having multiple return values.

Definition at line 839 of file IRBuilder.h.

◆ CreateAlignedLoad() [1/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Type Ty,
Value Ptr,
unsigned  Align,
const char Name 
)
inline

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

Definition at line 1470 of file IRBuilder.h.

Referenced by combineLoadToNewType(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), INITIALIZE_PASS(), lowerLoadRelative(), simplifyNeonVld1(), TypeSizeToSizeIndex(), unpackLoadToAggregate(), UpgradeMaskedLoad(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ CreateAlignedLoad() [2/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Type Ty,
Value Ptr,
unsigned  Align,
const Twine Name = "" 
)
inline

Definition at line 1476 of file IRBuilder.h.

◆ CreateAlignedLoad() [3/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Type Ty,
Value Ptr,
unsigned  Align,
bool  isVolatile,
const Twine Name = "" 
)
inline

Definition at line 1482 of file IRBuilder.h.

◆ CreateAlignedLoad() [4/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Value Ptr,
unsigned  Align,
const char Name 
)
inline

Definition at line 1490 of file IRBuilder.h.

◆ CreateAlignedLoad() [5/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Value Ptr,
unsigned  Align,
const Twine Name = "" 
)
inline

Definition at line 1495 of file IRBuilder.h.

◆ CreateAlignedLoad() [6/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateAlignedLoad ( Value Ptr,
unsigned  Align,
bool  isVolatile,
const Twine Name = "" 
)
inline

Definition at line 1501 of file IRBuilder.h.

◆ CreateAlignedStore()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
StoreInst* llvm::IRBuilder< T, Inserter >::CreateAlignedStore ( Value Val,
Value Ptr,
unsigned  Align,
bool  isVolatile = false 
)
inline

◆ CreateAlignmentAssumption() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateAlignmentAssumption ( const DataLayout DL,
Value PtrValue,
unsigned  Alignment,
Value OffsetValue = nullptr,
Value **  TheCheck = nullptr 
)
inline

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

An optional offset can be provided, and if it is provided, the offset must be subtracted from the provided pointer to get the pointer with the specified alignment.

It may be sometimes useful to do some other logic based on this alignment check, thus it can be stored into 'TheCheck'.

Definition at line 2357 of file IRBuilder.h.

◆ CreateAlignmentAssumption() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateAlignmentAssumption ( const DataLayout DL,
Value PtrValue,
Value Alignment,
Value OffsetValue = nullptr,
Value **  TheCheck = nullptr 
)
inline

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

An optional offset can be provided, and if it is provided, the offset must be subtracted from the provided pointer to get the pointer with the specified alignment.

It may be sometimes useful to do some other logic based on this alignment check, thus it can be stored into 'TheCheck'.

This overload handles the condition where the Alignment is dependent on an existing value rather than a static value.

Definition at line 2384 of file IRBuilder.h.

◆ CreateAlloca() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
AllocaInst* llvm::IRBuilder< T, Inserter >::CreateAlloca ( Type Ty,
unsigned  AddrSpace,
Value ArraySize = nullptr,
const Twine Name = "" 
)
inline

◆ CreateAlloca() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
AllocaInst* llvm::IRBuilder< T, Inserter >::CreateAlloca ( Type Ty,
Value ArraySize = nullptr,
const Twine Name = "" 
)
inline

Definition at line 1426 of file IRBuilder.h.

◆ CreateAnd() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAnd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateAnd() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAnd ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1209 of file IRBuilder.h.

◆ CreateAnd() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAnd ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1213 of file IRBuilder.h.

◆ CreateAShr() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAShr ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateAShr() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAShr ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1189 of file IRBuilder.h.

◆ CreateAShr() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateAShr ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1194 of file IRBuilder.h.

◆ CreateAtomicCmpXchg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
AtomicCmpXchgInst* llvm::IRBuilder< T, Inserter >::CreateAtomicCmpXchg ( Value Ptr,
Value Cmp,
Value New,
AtomicOrdering  SuccessOrdering,
AtomicOrdering  FailureOrdering,
SyncScope::ID  SSID = SyncScope::System 
)
inline

◆ CreateAtomicRMW()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
AtomicRMWInst* llvm::IRBuilder< T, Inserter >::CreateAtomicRMW ( AtomicRMWInst::BinOp  Op,
Value Ptr,
Value Val,
AtomicOrdering  Ordering,
SyncScope::ID  SSID = SyncScope::System 
)
inline

◆ CreateBinOp()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateBinOp ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

◆ CreateBitCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1809 of file IRBuilder.h.

Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), ApplyX86MaskOn1BitsVec(), atomicSizeSupported(), canonicalizeBitCastExtElt(), canTransformToMemCmp(), llvm::castToCStr(), combineLoadToNewType(), combineStoreToNewValue(), createCast(), createCmpXchgInstFun(), llvm::createMemCpyLoopUnknownSize(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), EmitX86ScalarSelect(), foldBitCastBitwiseLogic(), foldBitcastExtElt(), foldICmpBitCast(), foldVecTruncToExtElt(), getMulHu(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), getSuccState(), getX86MaskVec(), handleNoSuspendCoroutine(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::log2(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), lowerLoadRelative(), lowerSubFn(), needsRuntimeRegistrationOfSectionRange(), optimizeMemCmpConstantSize(), optimizeVectorResize(), llvm::WholeProgramDevirtPass::run(), simplifyInvariantGroupIntrinsic(), simplifyNeonVld1(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), TypeSizeToSizeIndex(), unifyBitWidth(), UpgradeMaskedLoad(), UpgradeMaskedStore(), upgradePMULDQ(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), UpgradeX86VPERMT2Intrinsics(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ CreateBitOrPointerCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateBitOrPointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateBr()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
BranchInst* llvm::IRBuilder< T, Inserter >::CreateBr ( BasicBlock Dest)
inline

◆ CreateCall() [1/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( FunctionType FTy,
Value Callee,
ArrayRef< Value *>  Args = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2051 of file IRBuilder.h.

Referenced by callIntrinsic(), llvm::SanitizerStatReport::create(), createFFSIntrinsic(), CreateGCRelocates(), createOrdering(), createPopcntIntrinsic(), CreatePrologue(), llvm::AArch64TargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::ARMTargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::emitBinaryFloatFnCall(), llvm::emitCalloc(), llvm::emitFGetCUnlocked(), llvm::emitFGetSUnlocked(), llvm::emitFPutC(), llvm::emitFPutCUnlocked(), llvm::emitFPutS(), llvm::emitFPutSUnlocked(), llvm::emitFReadUnlocked(), llvm::emitFWrite(), llvm::emitFWriteUnlocked(), emitLibCall(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::emitMalloc(), llvm::emitMemCpyChk(), llvm::emitPutChar(), llvm::emitPutS(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::PPCTargetLowering::emitTrailingFence(), emitUnaryFloatFnCallHelper(), getAllocaSizeInBytes(), getDeclareIntrin(), getIntrinsicForMaskedAtomicRMWBinOp(), getPow(), GetRMWLibcall(), llvm::TargetLoweringBase::getSafeStackPointerLocation(), getSignature(), getSqrtCall(), getStackGuard(), getSuccState(), GlobalWasGeneratedByCompiler(), INITIALIZE_PASS(), insertSinCosCall(), instrumentMaskedLoadOrStore(), instrumentOneFunc(), isAtomic(), isCallPromotable(), isIndirectBrTarget(), IsInterestingCmp(), isInterestingPointerSubtraction(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::makeDMB(), llvm::makeGuardControlFlowExplicit(), needsRuntimeRegistrationOfSectionRange(), optimizeBinaryDoubleFP(), optimizeDoubleFP(), optimizeTrigReflections(), processUMulZExtIdiom(), promotedOpIsNUW(), RedzoneSizeForScale(), replaceUnaryCall(), RetagMask(), llvm::LoopDataPrefetchPass::run(), llvm::HWAddressSanitizerPass::run(), llvm::WholeProgramDevirtPass::run(), shouldKeepFDivF32(), shouldKeepInEntry(), SimplifyBSwap(), TypeSizeToSizeIndex(), upgradeAVX512MaskToSelect(), UpgradeX86AddSubSatIntrinsics(), upgradeX86ConcatShift(), UpgradeX86MaskedShift(), upgradeX86Rotate(), UpgradeX86VPERMT2Intrinsics(), llvm::AMDGPULibCalls::useNative(), and UseTlsOffset().

◆ CreateCall() [2/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( FunctionType FTy,
Value Callee,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2060 of file IRBuilder.h.

◆ CreateCall() [3/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( FunctionCallee  Callee,
ArrayRef< Value *>  Args = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2069 of file IRBuilder.h.

◆ CreateCall() [4/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( FunctionCallee  Callee,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2075 of file IRBuilder.h.

◆ CreateCall() [5/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( Value Callee,
ArrayRef< Value *>  Args = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2083 of file IRBuilder.h.

◆ CreateCall() [6/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallInst* llvm::IRBuilder< T, Inserter >::CreateCall ( Value Callee,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2091 of file IRBuilder.h.

◆ CreateCallBr() [1/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallBrInst* llvm::IRBuilder< T, Inserter >::CreateCallBr ( FunctionType Ty,
Value Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock *>  IndirectDests,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Create a callbr instruction.

Definition at line 947 of file IRBuilder.h.

◆ CreateCallBr() [2/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallBrInst* llvm::IRBuilder< T, Inserter >::CreateCallBr ( FunctionType Ty,
Value Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock *>  IndirectDests,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 955 of file IRBuilder.h.

◆ CreateCallBr() [3/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallBrInst* llvm::IRBuilder< T, Inserter >::CreateCallBr ( FunctionCallee  Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock *>  IndirectDests,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Definition at line 966 of file IRBuilder.h.

◆ CreateCallBr() [4/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CallBrInst* llvm::IRBuilder< T, Inserter >::CreateCallBr ( FunctionCallee  Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock *>  IndirectDests,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 973 of file IRBuilder.h.

◆ CreateCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateCast ( Instruction::CastOps  Op,
Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateCatchPad()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CatchPadInst* llvm::IRBuilder< T, Inserter >::CreateCatchPad ( Value ParentPad,
ArrayRef< Value *>  Args,
const Twine Name = "" 
)
inline

Definition at line 998 of file IRBuilder.h.

◆ CreateCatchRet()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CatchReturnInst* llvm::IRBuilder< T, Inserter >::CreateCatchRet ( CatchPadInst CatchPad,
BasicBlock BB 
)
inline

Definition at line 1009 of file IRBuilder.h.

◆ CreateCatchSwitch()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CatchSwitchInst* llvm::IRBuilder< T, Inserter >::CreateCatchSwitch ( Value ParentPad,
BasicBlock UnwindBB,
unsigned  NumHandlers,
const Twine Name = "" 
)
inline

Definition at line 991 of file IRBuilder.h.

◆ CreateCleanupPad()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CleanupPadInst* llvm::IRBuilder< T, Inserter >::CreateCleanupPad ( Value ParentPad,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Definition at line 1003 of file IRBuilder.h.

◆ CreateCleanupRet()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
CleanupReturnInst* llvm::IRBuilder< T, Inserter >::CreateCleanupRet ( CleanupPadInst CleanupPad,
BasicBlock UnwindBB = nullptr 
)
inline

Definition at line 986 of file IRBuilder.h.

◆ CreateCondBr() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
BranchInst* llvm::IRBuilder< T, Inserter >::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
MDNode BranchWeights = nullptr,
MDNode Unpredictable = nullptr 
)
inline

◆ CreateCondBr() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
BranchInst* llvm::IRBuilder< T, Inserter >::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
Instruction MDSrc 
)
inline

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

Copy branch meta data if available.

Definition at line 862 of file IRBuilder.h.

◆ CreateConstGEP1_32() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP1_32 ( Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
)
inline

◆ CreateConstGEP1_32() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP1_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1597 of file IRBuilder.h.

◆ CreateConstGEP1_64() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP1_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1643 of file IRBuilder.h.

◆ CreateConstGEP1_64() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP1_64 ( Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1653 of file IRBuilder.h.

◆ CreateConstGEP2_32()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP2_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
unsigned  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1617 of file IRBuilder.h.

◆ CreateConstGEP2_64() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP2_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1672 of file IRBuilder.h.

Referenced by INITIALIZE_PASS().

◆ CreateConstGEP2_64() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstGEP2_64 ( Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1685 of file IRBuilder.h.

◆ CreateConstInBoundsGEP1_32()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP1_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1607 of file IRBuilder.h.

◆ CreateConstInBoundsGEP1_64() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP1_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1657 of file IRBuilder.h.

Referenced by canTransformToMemCmp().

◆ CreateConstInBoundsGEP1_64() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP1_64 ( Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

Definition at line 1667 of file IRBuilder.h.

◆ CreateConstInBoundsGEP2_32()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP2_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
unsigned  Idx1,
const Twine Name = "" 
)
inline

◆ CreateConstInBoundsGEP2_64() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP2_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1690 of file IRBuilder.h.

Referenced by getOrInsertValueProfilingCall().

◆ CreateConstInBoundsGEP2_64() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateConstInBoundsGEP2_64 ( Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1703 of file IRBuilder.h.

◆ CreateExactSDiv()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExactSDiv ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1124 of file IRBuilder.h.

◆ CreateExactUDiv()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExactUDiv ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1110 of file IRBuilder.h.

◆ CreateExtractElement() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExtractElement ( Value Vec,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateExtractElement() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExtractElement ( Value Vec,
uint64_t  Idx,
const Twine Name = "" 
)
inline

Definition at line 2129 of file IRBuilder.h.

◆ CreateExtractInteger()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExtractInteger ( const DataLayout DL,
Value From,
IntegerType ExtractedTy,
uint64_t  Offset,
const Twine Name 
)
inline

Return a value that has been extracted from a larger integer type.

Definition at line 2291 of file IRBuilder.h.

◆ CreateExtractValue()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateExtractValue ( Value Agg,
ArrayRef< unsigned Idxs,
const Twine Name = "" 
)
inline

◆ CreateFAdd()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFAdd ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

◆ CreateFAddFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFAddFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1257 of file IRBuilder.h.

Referenced by factorizeFAddFSub().

◆ CreateFCmp()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmp ( CmpInst::Predicate  P,
Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2034 of file IRBuilder.h.

Referenced by llvm::createMinMaxOp(), foldVectorCmp(), getFCmpValue(), and reassociateFCmps().

◆ CreateFCmpOEQ()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpOEQ ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1956 of file IRBuilder.h.

◆ CreateFCmpOGE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpOGE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1966 of file IRBuilder.h.

Referenced by getMulHu().

◆ CreateFCmpOGT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpOGT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1961 of file IRBuilder.h.

Referenced by createRdxShuffleMask(), and getSqrtCall().

◆ CreateFCmpOLE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpOLE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1976 of file IRBuilder.h.

◆ CreateFCmpOLT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpOLT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1971 of file IRBuilder.h.

Referenced by createRdxShuffleMask(), and getSqrtCall().

◆ CreateFCmpONE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpONE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1981 of file IRBuilder.h.

◆ CreateFCmpORD()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpORD ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1986 of file IRBuilder.h.

◆ CreateFCmpUEQ()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpUEQ ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1996 of file IRBuilder.h.

◆ CreateFCmpUGE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpUGE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2006 of file IRBuilder.h.

◆ CreateFCmpUGT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpUGT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2001 of file IRBuilder.h.

◆ CreateFCmpULE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpULE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2016 of file IRBuilder.h.

◆ CreateFCmpULT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpULT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2011 of file IRBuilder.h.

◆ CreateFCmpUNE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpUNE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2021 of file IRBuilder.h.

◆ CreateFCmpUNO()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFCmpUNO ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1991 of file IRBuilder.h.

◆ CreateFDiv()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFDiv ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

◆ CreateFDivFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFDivFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1308 of file IRBuilder.h.

◆ CreateFence()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
FenceInst* llvm::IRBuilder< T, Inserter >::CreateFence ( AtomicOrdering  Ordering,
SyncScope::ID  SSID = SyncScope::System,
const Twine Name = "" 
)
inline

◆ CreateFMul()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFMul ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

◆ CreateFMulFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFMulFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1291 of file IRBuilder.h.

◆ CreateFNeg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFNeg ( Value V,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1361 of file IRBuilder.h.

Referenced by canonicalizeSaturatedAdd(), getMulHu(), and optimizeTrigReflections().

◆ CreateFNegFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFNegFMF ( Value V,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1371 of file IRBuilder.h.

◆ CreateFPCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFPCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1899 of file IRBuilder.h.

◆ CreateFPExt()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFPExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1795 of file IRBuilder.h.

Referenced by optimizeDoubleFP().

◆ CreateFPToSI()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFPToSI ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1778 of file IRBuilder.h.

Referenced by getMulHu(), and llvm::log2().

◆ CreateFPToUI()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFPToUI ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1774 of file IRBuilder.h.

Referenced by getMulHu().

◆ CreateFPTrunc()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFPTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1790 of file IRBuilder.h.

◆ CreateFRem()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFRem ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1316 of file IRBuilder.h.

◆ CreateFRemFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFRemFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1325 of file IRBuilder.h.

◆ CreateFSub()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFSub ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1265 of file IRBuilder.h.

Referenced by LowerAtomicRMWInst(), and performAtomicOp().

◆ CreateFSubFMF()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateFSubFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

Copy fast-math-flags from an instruction rather than using the builder's default FMF.

Definition at line 1274 of file IRBuilder.h.

Referenced by factorizeFAddFSub().

◆ CreateGEP() [1/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateGEP ( Value Ptr,
ArrayRef< Value *>  IdxList,
const Twine Name = "" 
)
inline

◆ CreateGEP() [2/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateGEP ( Type Ty,
Value Ptr,
ArrayRef< Value *>  IdxList,
const Twine Name = "" 
)
inline

Definition at line 1540 of file IRBuilder.h.

◆ CreateGEP() [3/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateGEP ( Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

Definition at line 1574 of file IRBuilder.h.

◆ CreateGEP() [4/4]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateGEP ( Type Ty,
Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

Definition at line 1578 of file IRBuilder.h.

◆ CreateGlobalStringPtr()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Constant* llvm::IRBuilder< T, Inserter >::CreateGlobalStringPtr ( StringRef  Str,
const Twine Name = "",
unsigned  AddressSpace = 0 
)
inline

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

Definition at line 1719 of file IRBuilder.h.

Referenced by CreatePrologue(), and shouldKeepInEntry().

◆ CreateICmp()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmp ( CmpInst::Predicate  P,
Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpEQ()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpEQ ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpNE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpNE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpSGE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpSGE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1944 of file IRBuilder.h.

Referenced by instrumentMaskedLoadOrStore().

◆ CreateICmpSGT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpSGT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1940 of file IRBuilder.h.

Referenced by createRdxShuffleMask(), performAtomicOp(), and simplifyX86pack().

◆ CreateICmpSLE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpSLE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1952 of file IRBuilder.h.

Referenced by performAtomicOp().

◆ CreateICmpSLT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpSLT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpUGE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpUGE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1928 of file IRBuilder.h.

Referenced by getMulHu().

◆ CreateICmpUGT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpUGT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1924 of file IRBuilder.h.

Referenced by createRdxShuffleMask(), and performAtomicOp().

◆ CreateICmpULE()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpULE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpULT()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateICmpULT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateInBoundsGEP() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInBoundsGEP ( Value Ptr,
ArrayRef< Value *>  IdxList,
const Twine Name = "" 
)
inline

◆ CreateInBoundsGEP() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInBoundsGEP ( Type Ty,
Value Ptr,
ArrayRef< Value *>  IdxList,
const Twine Name = "" 
)
inline

Definition at line 1559 of file IRBuilder.h.

◆ CreateInBoundsGEP() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInBoundsGEP ( Type Ty,
Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

Definition at line 1585 of file IRBuilder.h.

◆ CreateIndirectBr()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
IndirectBrInst* llvm::IRBuilder< T, Inserter >::CreateIndirectBr ( Value Addr,
unsigned  NumDests = 10 
)
inline

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).

Definition at line 886 of file IRBuilder.h.

◆ CreateInsertElement() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInsertElement ( Value Vec,
Value NewElt,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateInsertElement() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInsertElement ( Value Vec,
Value NewElt,
uint64_t  Idx,
const Twine Name = "" 
)
inline

Definition at line 2143 of file IRBuilder.h.

◆ CreateInsertValue()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateInsertValue ( Value Agg,
Value Val,
ArrayRef< unsigned Idxs,
const Twine Name = "" 
)
inline

◆ CreateIntCast() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateIntCast ( Value V,
Type DestTy,
bool  isSigned,
const Twine Name = "" 
)
inline

◆ CreateIntCast() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateIntCast ( Value ,
Type ,
const char  
)
delete

◆ CreateIntToPtr()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateIntToPtr ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateInvoke() [1/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( FunctionType Ty,
Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Create an invoke instruction.

Definition at line 891 of file IRBuilder.h.

Referenced by INITIALIZE_PASS().

◆ CreateInvoke() [2/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( FunctionType Ty,
Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Definition at line 900 of file IRBuilder.h.

◆ CreateInvoke() [3/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( FunctionCallee  Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 908 of file IRBuilder.h.

◆ CreateInvoke() [4/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( FunctionCallee  Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Definition at line 916 of file IRBuilder.h.

◆ CreateInvoke() [5/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 925 of file IRBuilder.h.

◆ CreateInvoke() [6/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
InvokeInst* llvm::IRBuilder< T, Inserter >::CreateInvoke ( Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value *>  Args = None,
const Twine Name = "" 
)
inline

Definition at line 936 of file IRBuilder.h.

◆ CreateIsNotNull()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateIsNotNull ( Value Arg,
const Twine Name = "" 
)
inline

Return an i1 value testing if Arg is not null.

Definition at line 2196 of file IRBuilder.h.

Referenced by canTransformToMemCmp(), ConnectEpilog(), foldAnyOrAllBitsSet(), foldSelectICmpAndAnd(), llvm::UnrollRuntimeLoopRemainder(), and upgradeMaskedMove().

◆ CreateIsNull()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateIsNull ( Value Arg,
const Twine Name = "" 
)
inline

Return an i1 value testing if Arg is null.

Definition at line 2190 of file IRBuilder.h.

◆ CreateLandingPad()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LandingPadInst* llvm::IRBuilder< T, Inserter >::CreateLandingPad ( Type Ty,
unsigned  NumClauses,
const Twine Name = "" 
)
inline

Definition at line 2180 of file IRBuilder.h.

◆ CreateLaunderInvariantGroup()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateLaunderInvariantGroup ( Value Ptr)
inline

Create a launder.invariant.group intrinsic call.

If Ptr type is different from pointer to i8, it's casted to pointer to i8 in the same address space before call and casted back to Ptr type after call.

Definition at line 2222 of file IRBuilder.h.

Referenced by simplifyInvariantGroupIntrinsic().

◆ CreateLoad() [1/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Type Ty,
Value Ptr,
const char Name 
)
inline

◆ CreateLoad() [2/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Type Ty,
Value Ptr,
const Twine Name = "" 
)
inline

Definition at line 1438 of file IRBuilder.h.

◆ CreateLoad() [3/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Type Ty,
Value Ptr,
bool  isVolatile,
const Twine Name = "" 
)
inline

Definition at line 1442 of file IRBuilder.h.

◆ CreateLoad() [4/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Value Ptr,
const char Name 
)
inline

Definition at line 1448 of file IRBuilder.h.

◆ CreateLoad() [5/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Value Ptr,
const Twine Name = "" 
)
inline

Definition at line 1453 of file IRBuilder.h.

◆ CreateLoad() [6/6]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
LoadInst* llvm::IRBuilder< T, Inserter >::CreateLoad ( Value Ptr,
bool  isVolatile,
const Twine Name = "" 
)
inline

Definition at line 1458 of file IRBuilder.h.

◆ CreateLShr() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateLShr ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateLShr() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateLShr ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1169 of file IRBuilder.h.

◆ CreateLShr() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateLShr ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1174 of file IRBuilder.h.

◆ CreateMul()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateMul ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateNAryOp()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNAryOp ( unsigned  Opc,
ArrayRef< Value *>  Ops,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Create either a UnaryOperator or BinaryOperator depending on Opc.

Correct number of operands must be passed accordingly.

Definition at line 1401 of file IRBuilder.h.

Referenced by llvm::InnerLoopVectorizer::widenInstruction().

◆ CreateNeg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNeg ( Value V,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateNot()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNot ( Value V,
const Twine Name = "" 
)
inline

◆ CreateNSWAdd()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNSWAdd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1058 of file IRBuilder.h.

◆ CreateNSWMul()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNSWMul ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1092 of file IRBuilder.h.

◆ CreateNSWNeg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNSWNeg ( Value V,
const Twine Name = "" 
)
inline

Definition at line 1353 of file IRBuilder.h.

◆ CreateNSWSub()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNSWSub ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1075 of file IRBuilder.h.

◆ CreateNUWAdd()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNUWAdd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1062 of file IRBuilder.h.

Referenced by foldNoWrapAdd().

◆ CreateNUWMul()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNUWMul ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1096 of file IRBuilder.h.

◆ CreateNUWNeg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNUWNeg ( Value V,
const Twine Name = "" 
)
inline

Definition at line 1357 of file IRBuilder.h.

◆ CreateNUWSub()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateNUWSub ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1079 of file IRBuilder.h.

◆ CreateOr() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateOr ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateOr() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateOr ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1227 of file IRBuilder.h.

◆ CreateOr() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateOr ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1231 of file IRBuilder.h.

◆ CreatePHI()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
PHINode* llvm::IRBuilder< T, Inserter >::CreatePHI ( Type Ty,
unsigned  NumReservedValues,
const Twine Name = "" 
)
inline

◆ CreatePointerBitCastOrAddrSpaceCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreatePointerBitCastOrAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1864 of file IRBuilder.h.

◆ CreatePointerCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreatePointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreatePtrDiff()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreatePtrDiff ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

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

This is intended to implement C-style pointer subtraction. As such, the pointers must be appropriately aligned for their element types and pointing into the same object.

Definition at line 2207 of file IRBuilder.h.

◆ CreatePtrToInt()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreatePtrToInt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateResume()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
ResumeInst* llvm::IRBuilder< T, Inserter >::CreateResume ( Value Exn)
inline

Definition at line 982 of file IRBuilder.h.

◆ CreateRet()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
ReturnInst* llvm::IRBuilder< T, Inserter >::CreateRet ( Value V)
inline

◆ CreateRetVoid()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
ReturnInst* llvm::IRBuilder< T, Inserter >::CreateRetVoid ( )
inline

◆ CreateSDiv()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1114 of file IRBuilder.h.

Referenced by llvm::expandDivisionUpTo32Bits(), and llvm::expandDivisionUpTo64Bits().

◆ CreateSelect()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSelect ( Value C,
Value True,
Value False,
const Twine Name = "",
Instruction MDFrom = nullptr 
)
inline

◆ CreateSExt()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateSExtOrBitCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1828 of file IRBuilder.h.

◆ CreateSExtOrTrunc()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSExtOrTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

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

Return the value untouched if the type of V is already DestTy.

Definition at line 1761 of file IRBuilder.h.

Referenced by canTransformToMemCmp(), isGEPFoldable(), mapBinOpcode(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), unifyBitWidth(), llvm::InnerLoopVectorizer::widenIntOrFpInduction(), and llvm::InnerLoopVectorizer::widenPHIInstruction().

◆ CreateShl() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateShl ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateShl() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateShl ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

Definition at line 1147 of file IRBuilder.h.

◆ CreateShl() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateShl ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

Definition at line 1153 of file IRBuilder.h.

◆ CreateShuffleVector() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateShuffleVector ( Value V1,
Value V2,
Value Mask,
const Twine Name = "" 
)
inline

◆ CreateShuffleVector() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateShuffleVector ( Value V1,
Value V2,
ArrayRef< uint32_t IntMask,
const Twine Name = "" 
)
inline

Definition at line 2157 of file IRBuilder.h.

◆ CreateSIToFP()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1786 of file IRBuilder.h.

Referenced by getMulHu(), and llvm::log2().

◆ CreateSRem()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSRem ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateStore()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
StoreInst* llvm::IRBuilder< T, Inserter >::CreateStore ( Value Val,
Value Ptr,
bool  isVolatile = false 
)
inline

◆ CreateStripInvariantGroup()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateStripInvariantGroup ( Value Ptr)
inline

Create a strip.invariant.group intrinsic call.

If Ptr type is different from pointer to i8, it's casted to pointer to i8 in the same address space before call and casted back to Ptr type after call.

Definition at line 2249 of file IRBuilder.h.

Referenced by simplifyInvariantGroupIntrinsic().

◆ CreateStructGEP() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateStructGEP ( Type Ty,
Value Ptr,
unsigned  Idx,
const Twine Name = "" 
)
inline

Definition at line 1708 of file IRBuilder.h.

Referenced by getSuccState(), INITIALIZE_PASS(), and shouldKeepInEntry().

◆ CreateStructGEP() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateStructGEP ( Value Ptr,
unsigned  Idx,
const Twine Name = "" 
)
inline

Definition at line 1713 of file IRBuilder.h.

◆ CreateSub()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateSub ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateSwitch()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
SwitchInst* llvm::IRBuilder< T, Inserter >::CreateSwitch ( Value V,
BasicBlock Dest,
unsigned  NumCases = 10,
MDNode BranchWeights = nullptr,
MDNode Unpredictable = nullptr 
)
inline

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).

Definition at line 876 of file IRBuilder.h.

Referenced by createResumeEntryBlock(), FitWeights(), and getSignature().

◆ CreateTrunc()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateTruncOrBitCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateTruncOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateUDiv()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateUDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateUIToFP()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateUIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1782 of file IRBuilder.h.

Referenced by getMulHu().

◆ CreateUnOp()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateUnOp ( Instruction::UnaryOps  Opc,
Value V,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 1388 of file IRBuilder.h.

◆ CreateUnreachable()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
UnreachableInst* llvm::IRBuilder< T, Inserter >::CreateUnreachable ( )
inline

◆ CreateURem()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateURem ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateVAArg()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
VAArgInst* llvm::IRBuilder< T, Inserter >::CreateVAArg ( Value List,
Type Ty,
const Twine Name = "" 
)
inline

Definition at line 2117 of file IRBuilder.h.

◆ CreateVectorSplat()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateVectorSplat ( unsigned  NumElts,
Value V,
const Twine Name = "" 
)
inline

◆ CreateXor() [1/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateXor ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateXor() [2/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateXor ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1240 of file IRBuilder.h.

◆ CreateXor() [3/3]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateXor ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1244 of file IRBuilder.h.

◆ CreateZExt()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateZExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateZExtOrBitCast()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateZExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateZExtOrTrunc()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Value* llvm::IRBuilder< T, Inserter >::CreateZExtOrTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

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

Return the value untouched if the type of V is already DestTy.

Definition at line 1746 of file IRBuilder.h.

Referenced by canonicalizeSaturatedAdd(), canTransformToMemCmp(), createFFSIntrinsic(), createMaskedBitTest(), foldSelectICmpAnd(), foldSelectICmpAndOr(), isIndirectBrTarget(), mapBinOpcode(), simplifyX86movmsk(), SwitchToLookupTable(), and llvm::InnerLoopVectorizer::truncateToMinimalBitwidths().

◆ getFolder()

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
const T& llvm::IRBuilder< T, Inserter >::getFolder ( )
inline

Get the constant folder being used.

Definition at line 789 of file IRBuilder.h.

◆ Insert() [1/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
template<typename InstTy >
InstTy* llvm::IRBuilder< T, Inserter >::Insert ( InstTy *  I,
const Twine Name = "" 
) const
inline

◆ Insert() [2/2]

template<typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter>
Constant* llvm::IRBuilder< T, Inserter >::Insert ( Constant C,
const Twine = "" 
) const
inline

No-op overload to handle constants.

Definition at line 800 of file IRBuilder.h.


The documentation for this class was generated from the following file: