LLVM  mainline
Public Member Functions
llvm::IRBuilder< preserveNames, 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 <IRBuilder.h>

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

List of all members.

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.
bool isNamePreserving () const
 Return true if this builder is configured to actually add the requested names to IR created through it.
template<typename InstTy >
InstTy * Insert (InstTy *I, const Twine &Name="") const
 Insert and return the specified instruction.
ConstantInsert (Constant *C, const Twine &="") const
 No-op overload to handle constants.
ReturnInstCreateRetVoid ()
 Create a 'ret void' instruction.
ReturnInstCreateRet (Value *V)
 Create a 'ret <val>' instruction.
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.
BranchInstCreateBr (BasicBlock *Dest)
 Create an unconditional 'br label X' instruction.
BranchInstCreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
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).
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).
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, const Twine &Name="")
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, Value *Arg1, const Twine &Name="")
InvokeInstCreateInvoke3 (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, Value *Arg1, Value *Arg2, Value *Arg3, const Twine &Name="")
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, const Twine &Name="")
 Create an invoke instruction.
InvokeInstCreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, 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="")
ValueCreateFAdd (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
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="")
ValueCreateFSub (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
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="")
ValueCreateFMul (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
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="")
ValueCreateFDiv (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
ValueCreateURem (Value *LHS, Value *RHS, const Twine &Name="")
ValueCreateSRem (Value *LHS, Value *RHS, const Twine &Name="")
ValueCreateFRem (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
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="")
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)
ValueCreateNot (Value *V, const Twine &Name="")
AllocaInstCreateAlloca (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="")
LoadInstCreateLoad (Value *Ptr, const char *Name)
LoadInstCreateLoad (Value *Ptr, const Twine &Name="")
LoadInstCreateLoad (Type *Ty, Value *Ptr, const Twine &Name="")
LoadInstCreateLoad (Value *Ptr, bool isVolatile, const Twine &Name="")
StoreInstCreateStore (Value *Val, Value *Ptr, bool isVolatile=false)
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, SynchronizationScope SynchScope=CrossThread, const Twine &Name="")
AtomicCmpXchgInstCreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SynchronizationScope SynchScope=CrossThread)
AtomicRMWInstCreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, AtomicOrdering Ordering, SynchronizationScope SynchScope=CrossThread)
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 (Value *Ptr, uint64_t Idx0, const Twine &Name="")
ValueCreateConstInBoundsGEP1_64 (Value *Ptr, uint64_t Idx0, const Twine &Name="")
ValueCreateConstGEP2_64 (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="")
ValueCreateGlobalStringPtr (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.
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.
ValueCreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a SExt or Trunc from the integer value V to DestTy.
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="")
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 (Value *Callee, ArrayRef< Value * > Args=None, ArrayRef< OperandBundleDef > OpBundles=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
CallInstCreateCall (Value *Callee, ArrayRef< Value * > Args, const Twine &Name, MDNode *FPMathTag=nullptr)
CallInstCreateCall (llvm::FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args, const Twine &Name="", MDNode *FPMathTag=nullptr)
CallInstCreateCall (Function *Callee, ArrayRef< Value * > Args, const Twine &Name="", MDNode *FPMathTag=nullptr)
ValueCreateSelect (Value *C, Value *True, Value *False, const Twine &Name="")
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< int > 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.
ValueCreateIsNotNull (Value *Arg, const Twine &Name="")
 Return an i1 value testing if Arg is not null.
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.
ValueCreateInvariantGroupBarrier (Value *Ptr)
 Create an invariant.group.barrier intrinsic call, that stops optimizer to propagate equality using invariant.group metadata.
ValueCreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")
 Return a vector value that contains.
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.
CallInstCreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, unsigned Alignment, Value *OffsetValue=nullptr)
 Create an assume intrinsic call that represents an alignment assumption on the provided pointer.

Detailed Description

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
class llvm::IRBuilder< preserveNames, 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 handles whether or not to preserve names in the final instruction output. This defaults to on. The second template argument specifies a class to use for creating constants. This defaults to creating minimally folded constants. The third template argument allows clients to specify custom insertion hooks that are called on every newly created insertion.

Definition at line 540 of file IRBuilder.h.


Constructor & Destructor Documentation

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

Definition at line 544 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder ( LLVMContext C,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
) [inline, explicit]

Definition at line 550 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder ( BasicBlock TheBB,
const T F,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
) [inline, explicit]

Definition at line 554 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder ( BasicBlock TheBB,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
) [inline, explicit]

Definition at line 560 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder ( Instruction IP,
MDNode FPMathTag = nullptr,
ArrayRef< OperandBundleDef OpBundles = None 
) [inline, explicit]

Definition at line 566 of file IRBuilder.h.

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

Definition at line 572 of file IRBuilder.h.

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

Definition at line 579 of file IRBuilder.h.


Member Function Documentation

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAdd ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]

Definition at line 1327 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
ReturnInst* llvm::IRBuilder< preserveNames, 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 641 of file IRBuilder.h.

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

Definition at line 1061 of file IRBuilder.h.

Referenced by combineLoadToNewType().

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

Definition at line 1066 of file IRBuilder.h.

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

Definition at line 1072 of file IRBuilder.h.

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

Definition at line 1078 of file IRBuilder.h.

Referenced by combineStoreToNewValue().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAlignmentAssumption ( const DataLayout DL,
Value PtrValue,
unsigned  Alignment,
Value OffsetValue = 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.

Definition at line 1758 of file IRBuilder.h.

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

Definition at line 1037 of file IRBuilder.h.

Referenced by simplifyAllocaArraySize().

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

Definition at line 957 of file IRBuilder.h.

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

Definition at line 960 of file IRBuilder.h.

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

Definition at line 939 of file IRBuilder.h.

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

Definition at line 943 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
AtomicCmpXchgInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAtomicCmpXchg ( Value Ptr,
Value Cmp,
Value New,
AtomicOrdering  SuccessOrdering,
AtomicOrdering  FailureOrdering,
SynchronizationScope  SynchScope = CrossThread 
) [inline]

Definition at line 1090 of file IRBuilder.h.

Referenced by createCmpXchgInstFun().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
AtomicRMWInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateAtomicRMW ( AtomicRMWInst::BinOp  Op,
Value Ptr,
Value Val,
AtomicOrdering  Ordering,
SynchronizationScope  SynchScope = CrossThread 
) [inline]

Definition at line 1097 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBinOp ( Instruction::BinaryOps  Opc,
Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBitOrPointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]

Definition at line 1395 of file IRBuilder.h.

Referenced by llvm::InstCombiner::visitLoadInst().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
BranchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateBr ( BasicBlock Dest) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall ( Value Callee,
ArrayRef< Value * >  Args = None,
ArrayRef< OperandBundleDef OpBundles = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 1541 of file IRBuilder.h.

Referenced by callIntrinsic(), llvm::SanitizerStatReport::create(), llvm::IRBuilder< true, TargetFolder >::CreateCall(), CreateGCRelocates(), llvm::IRBuilder< true, TargetFolder >::CreateInvariantGroupBarrier(), createPopcntIntrinsic(), llvm::AArch64TargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::ARMTargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::emitBinaryFloatFnCall(), llvm::emitFPutC(), llvm::emitFPutS(), llvm::emitFWrite(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::emitMemChr(), llvm::emitMemCmp(), llvm::emitMemCpyChk(), llvm::emitPutChar(), llvm::emitPutS(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::emitStrChr(), llvm::emitStrCpy(), llvm::emitStrLen(), llvm::emitStrNCmp(), llvm::emitStrNCpy(), llvm::emitUnaryFloatFnCall(), generateUnsignedDivisionCode(), llvm::AArch64TargetLowering::getSafeStackPointerLocation(), llvm::TargetLoweringBase::getSafeStackPointerLocation(), insertSinCosCall(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::makeDMB(), optimizeUnaryDoubleFP(), ProcessUMulZExtIdiom(), SimplifyX86extrq(), SimplifyX86insertq(), and llvm::UpgradeIntrinsicCall().

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

Definition at line 1550 of file IRBuilder.h.

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

Definition at line 1557 of file IRBuilder.h.

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

Definition at line 1566 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCast ( Instruction::CastOps  Op,
Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CatchPadInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCatchPad ( Value ParentPad,
ArrayRef< Value * >  Args,
const Twine Name = "" 
) [inline]

Definition at line 729 of file IRBuilder.h.

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

Definition at line 740 of file IRBuilder.h.

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

Definition at line 722 of file IRBuilder.h.

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

Definition at line 734 of file IRBuilder.h.

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

Definition at line 717 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
BranchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
MDNode BranchWeights = nullptr,
MDNode Unpredictable = nullptr 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP1_32 ( Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP1_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
) [inline]

Definition at line 1156 of file IRBuilder.h.

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

Definition at line 1198 of file IRBuilder.h.

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

Definition at line 1174 of file IRBuilder.h.

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

Definition at line 1215 of file IRBuilder.h.

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

Definition at line 1165 of file IRBuilder.h.

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

Definition at line 1206 of file IRBuilder.h.

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

Definition at line 1227 of file IRBuilder.h.

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

Definition at line 861 of file IRBuilder.h.

Referenced by llvm::IRBuilder< true, TargetFolder >::CreatePtrDiff().

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

Definition at line 849 of file IRBuilder.h.

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

Definition at line 1592 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, 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 1729 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateExtractValue ( Value Agg,
ArrayRef< unsigned Idxs,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFAdd ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 788 of file IRBuilder.h.

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

Definition at line 1459 of file IRBuilder.h.

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

Definition at line 1467 of file IRBuilder.h.

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

Definition at line 1463 of file IRBuilder.h.

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

Definition at line 1475 of file IRBuilder.h.

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

Definition at line 1471 of file IRBuilder.h.

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

Definition at line 1479 of file IRBuilder.h.

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

Definition at line 1483 of file IRBuilder.h.

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

Definition at line 1491 of file IRBuilder.h.

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

Definition at line 1499 of file IRBuilder.h.

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

Definition at line 1495 of file IRBuilder.h.

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

Definition at line 1507 of file IRBuilder.h.

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

Definition at line 1503 of file IRBuilder.h.

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

Definition at line 1511 of file IRBuilder.h.

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

Definition at line 1487 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFDiv ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 864 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
FenceInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFence ( AtomicOrdering  Ordering,
SynchronizationScope  SynchScope = CrossThread,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFMul ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 832 of file IRBuilder.h.

Referenced by buildMultiplyTree(), and getPow().

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

Definition at line 1020 of file IRBuilder.h.

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

Definition at line 1416 of file IRBuilder.h.

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

Definition at line 1312 of file IRBuilder.h.

Referenced by optimizeBinaryDoubleFP(), and optimizeUnaryDoubleFP().

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

Definition at line 1299 of file IRBuilder.h.

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

Definition at line 1296 of file IRBuilder.h.

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

Definition at line 1308 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFRem ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 884 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateFSub ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
) [inline]

Definition at line 810 of file IRBuilder.h.

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

Definition at line 1106 of file IRBuilder.h.

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

Definition at line 1137 of file IRBuilder.h.

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

Definition at line 1140 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, 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 1247 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmp ( CmpInst::Predicate  P,
Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpEQ ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpNE ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpSGE ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]

Definition at line 1449 of file IRBuilder.h.

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

Definition at line 1446 of file IRBuilder.h.

Referenced by performAtomicOp(), and llvm::UpgradeIntrinsicCall().

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

Definition at line 1455 of file IRBuilder.h.

Referenced by performAtomicOp().

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

Definition at line 1452 of file IRBuilder.h.

Referenced by LowerAtomicRMWInst().

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

Definition at line 1437 of file IRBuilder.h.

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

Definition at line 1434 of file IRBuilder.h.

Referenced by generateUnsignedDivisionCode(), and performAtomicOp().

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

Definition at line 1443 of file IRBuilder.h.

Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), and performAtomicOp().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateICmpULT ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInBoundsGEP ( Value Ptr,
ArrayRef< Value * >  IdxList,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInBoundsGEP ( Type Ty,
Value Ptr,
ArrayRef< Value * >  IdxList,
const Twine Name = "" 
) [inline]

Definition at line 1123 of file IRBuilder.h.

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

Definition at line 1146 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
IndirectBrInst* llvm::IRBuilder< preserveNames, 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 675 of file IRBuilder.h.

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

Definition at line 1606 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInsertValue ( Value Agg,
Value Val,
ArrayRef< unsigned Idxs,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIntCast ( Value V,
Type DestTy,
bool  isSigned,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateIntToPtr ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvariantGroupBarrier ( Value Ptr) [inline]

Create an invariant.group.barrier intrinsic call, that stops optimizer to propagate equality using invariant.group metadata.

If Ptr type is different from i8*, it's casted to i8* before call and casted back to Ptr type after call.

Definition at line 1690 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke ( Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
const Twine Name = "" 
) [inline]

Definition at line 679 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke ( Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
Value Arg1,
const Twine Name = "" 
) [inline]

Definition at line 684 of file IRBuilder.h.

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

Create an invoke instruction.

Definition at line 699 of file IRBuilder.h.

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

Definition at line 705 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
InvokeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateInvoke3 ( Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
Value Arg1,
Value Arg2,
Value Arg3,
const Twine Name = "" 
) [inline]

Definition at line 690 of file IRBuilder.h.

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

Return an i1 value testing if Arg is not null.

Definition at line 1663 of file IRBuilder.h.

Referenced by llvm::UnrollRuntimeLoopProlog().

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

Return an i1 value testing if Arg is null.

Definition at line 1657 of file IRBuilder.h.

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

Definition at line 1647 of file IRBuilder.h.

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

Definition at line 1046 of file IRBuilder.h.

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

Definition at line 1049 of file IRBuilder.h.

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

Definition at line 1052 of file IRBuilder.h.

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

Definition at line 921 of file IRBuilder.h.

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

Definition at line 925 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateMul ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNeg ( Value V,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNot ( Value V,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateNSWAdd ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]

Definition at line 782 of file IRBuilder.h.

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

Definition at line 826 of file IRBuilder.h.

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

Definition at line 1014 of file IRBuilder.h.

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

Definition at line 804 of file IRBuilder.h.

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

Definition at line 785 of file IRBuilder.h.

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

Definition at line 829 of file IRBuilder.h.

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

Definition at line 1017 of file IRBuilder.h.

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

Definition at line 807 of file IRBuilder.h.

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

Definition at line 973 of file IRBuilder.h.

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

Definition at line 976 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
PHINode* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePHI ( Type Ty,
unsigned  NumReservedValues,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePointerBitCastOrAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]

Definition at line 1372 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, 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 1674 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreatePtrToInt ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
ResumeInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateResume ( Value Exn) [inline]

Definition at line 713 of file IRBuilder.h.

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

Create a 'ret <val>' instruction.

Definition at line 630 of file IRBuilder.h.

Referenced by llvm::InlineFunction(), SimplifyCondBranchToTwoReturns(), and SwitchToLookupTable().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
ReturnInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateRetVoid ( ) [inline]

Create a 'ret void' instruction.

Definition at line 625 of file IRBuilder.h.

Referenced by SimplifyCondBranchToTwoReturns().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSelect ( Value C,
Value True,
Value False,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExt ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]

Definition at line 1339 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, 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 1284 of file IRBuilder.h.

Referenced by SimplifyX86vpcom().

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

Definition at line 901 of file IRBuilder.h.

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

Definition at line 906 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShuffleVector ( Value V1,
Value V2,
Value Mask,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateShuffleVector ( Value V1,
Value V2,
ArrayRef< int IntMask,
const Twine Name = "" 
) [inline]

Definition at line 1620 of file IRBuilder.h.

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

Definition at line 1305 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSRem ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
StoreInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateStore ( Value Val,
Value Ptr,
bool  isVolatile = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateStructGEP ( Type Ty,
Value Ptr,
unsigned  Idx,
const Twine Name = "" 
) [inline]

Definition at line 1240 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateSub ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
SwitchInst* llvm::IRBuilder< preserveNames, 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 665 of file IRBuilder.h.

Referenced by SimplifyBranchOnICmpChain().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateTruncOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]

Definition at line 1302 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
UnreachableInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateUnreachable ( ) [inline]

Definition at line 744 of file IRBuilder.h.

Referenced by removeUndefIntroducingPredecessor(), and TryToMergeLandingPad().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateURem ( Value LHS,
Value RHS,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
VAArgInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateVAArg ( Value List,
Type Ty,
const Twine Name = "" 
) [inline]

Definition at line 1580 of file IRBuilder.h.

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

Return a vector value that contains.

  • V broadcasted to NumElts elements.

Definition at line 1714 of file IRBuilder.h.

Referenced by SimplifyX86immshift().

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

Definition at line 986 of file IRBuilder.h.

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

Definition at line 989 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExt ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateZExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
) [inline]
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, 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 1270 of file IRBuilder.h.

Referenced by createMaskedBitTest(), foldSelectICmpAndOr(), and SwitchToLookupTable().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
const T& llvm::IRBuilder< preserveNames, T, Inserter >::getFolder ( ) [inline]

Get the constant folder being used.

Definition at line 587 of file IRBuilder.h.

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

Insert and return the specified instruction.

Definition at line 595 of file IRBuilder.h.

Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), llvm::IRBuilder< true, TargetFolder >::CreateAdd(), llvm::IRBuilder< true, TargetFolder >::CreateAggregateRet(), llvm::IRBuilder< true, TargetFolder >::CreateAlloca(), llvm::IRBuilder< true, TargetFolder >::CreateAnd(), llvm::IRBuilder< true, TargetFolder >::CreateAShr(), llvm::IRBuilder< true, TargetFolder >::CreateAtomicCmpXchg(), llvm::IRBuilder< true, TargetFolder >::CreateAtomicRMW(), llvm::IRBuilder< true, TargetFolder >::CreateBinOp(), llvm::IRBuilder< true, TargetFolder >::CreateBr(), llvm::IRBuilder< true, TargetFolder >::CreateCall(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), llvm::IRBuilder< true, TargetFolder >::CreateCatchPad(), llvm::IRBuilder< true, TargetFolder >::CreateCatchRet(), llvm::IRBuilder< true, TargetFolder >::CreateCatchSwitch(), llvm::IRBuilder< true, TargetFolder >::CreateCleanupPad(), llvm::IRBuilder< true, TargetFolder >::CreateCleanupRet(), llvm::IRBuilder< true, TargetFolder >::CreateCondBr(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP1_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP1_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP2_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstGEP2_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP1_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP1_64(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP2_32(), llvm::IRBuilder< true, TargetFolder >::CreateConstInBoundsGEP2_64(), llvm::IRBuilder< true, TargetFolder >::CreateExtractElement(), llvm::IRBuilder< true, TargetFolder >::CreateExtractValue(), llvm::IRBuilder< true, TargetFolder >::CreateFAdd(), llvm::IRBuilder< true, TargetFolder >::CreateFCmp(), llvm::IRBuilder< true, TargetFolder >::CreateFDiv(), llvm::IRBuilder< true, TargetFolder >::CreateFence(), llvm::IRBuilder< true, TargetFolder >::CreateFMul(), llvm::IRBuilder< true, TargetFolder >::CreateFNeg(), llvm::IRBuilder< true, TargetFolder >::CreateFPCast(), llvm::IRBuilder< true, TargetFolder >::CreateFRem(), llvm::IRBuilder< true, TargetFolder >::CreateFSub(), llvm::IRBuilder< true, TargetFolder >::CreateGEP(), llvm::IRBuilder< true, TargetFolder >::CreateICmp(), llvm::IRBuilder< true, TargetFolder >::CreateInBoundsGEP(), llvm::IRBuilder< true, TargetFolder >::CreateIndirectBr(), llvm::IRBuilder< true, TargetFolder >::CreateInsertElement(), llvm::IRBuilder< true, TargetFolder >::CreateInsertValue(), llvm::IRBuilder< true, TargetFolder >::CreateIntCast(), llvm::IRBuilder< true, TargetFolder >::CreateInvoke(), llvm::IRBuilder< true, TargetFolder >::CreateInvoke3(), llvm::IRBuilder< true, TargetFolder >::CreateLandingPad(), llvm::IRBuilder< true, TargetFolder >::CreateLoad(), llvm::IRBuilder< true, TargetFolder >::CreateLShr(), llvm::IRBuilder< true, TargetFolder >::CreateMul(), llvm::IRBuilder< true, TargetFolder >::CreateNeg(), llvm::IRBuilder< true, TargetFolder >::CreateNot(), llvm::IRBuilder< true, TargetFolder >::CreateOr(), llvm::IRBuilder< true, TargetFolder >::CreatePHI(), llvm::IRBuilder< true, TargetFolder >::CreatePointerBitCastOrAddrSpaceCast(), llvm::IRBuilder< true, TargetFolder >::CreatePointerCast(), llvm::IRBuilder< true, TargetFolder >::CreateResume(), llvm::IRBuilder< true, TargetFolder >::CreateRet(), llvm::IRBuilder< true, TargetFolder >::CreateRetVoid(), llvm::IRBuilder< true, TargetFolder >::CreateSDiv(), llvm::IRBuilder< true, TargetFolder >::CreateSelect(), llvm::IRBuilder< true, TargetFolder >::CreateSExtOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateShl(), llvm::IRBuilder< true, TargetFolder >::CreateShuffleVector(), llvm::IRBuilder< true, TargetFolder >::CreateSRem(), llvm::IRBuilder< true, TargetFolder >::CreateStore(), llvm::IRBuilder< true, TargetFolder >::CreateSub(), llvm::IRBuilder< true, TargetFolder >::CreateSwitch(), llvm::IRBuilder< true, TargetFolder >::CreateTruncOrBitCast(), llvm::IRBuilder< true, TargetFolder >::CreateUDiv(), llvm::IRBuilder< true, TargetFolder >::CreateUnreachable(), llvm::IRBuilder< true, TargetFolder >::CreateURem(), llvm::IRBuilder< true, TargetFolder >::CreateVAArg(), llvm::IRBuilder< true, TargetFolder >::CreateXor(), and llvm::IRBuilder< true, TargetFolder >::CreateZExtOrBitCast().

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

No-op overload to handle constants.

Definition at line 602 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
bool llvm::IRBuilder< preserveNames, T, Inserter >::isNamePreserving ( ) const [inline]

Return true if this builder is configured to actually add the requested names to IR created through it.

Definition at line 591 of file IRBuilder.h.


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