LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
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]

Public Member Functions

 IRBuilder (LLVMContext &C, const T &F, const Inserter &I=Inserter(), MDNode *FPMathTag=0)
 
 IRBuilder (LLVMContext &C, MDNode *FPMathTag=0)
 
 IRBuilder (BasicBlock *TheBB, const T &F, MDNode *FPMathTag=0)
 
 IRBuilder (BasicBlock *TheBB, MDNode *FPMathTag=0)
 
 IRBuilder (Instruction *IP, MDNode *FPMathTag=0)
 
 IRBuilder (Use &U, MDNode *FPMathTag=0)
 
 IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, const T &F, MDNode *FPMathTag=0)
 
 IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, MDNode *FPMathTag=0)
 
const TgetFolder ()
 Get the constant folder being used. More...
 
bool isNamePreserving () const
 Return true if this builder is configured to actually add the requested names to IR created through it. 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=0)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More...
 
SwitchInstCreateSwitch (Value *V, BasicBlock *Dest, unsigned NumCases=10, MDNode *BranchWeights=0)
 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 (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. More...
 
ResumeInstCreateResume (Value *Exn)
 
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=0)
 
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=0)
 
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=0)
 
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=0)
 
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=0)
 
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="")
 
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=0)
 
ValueCreateNot (Value *V, const Twine &Name="")
 
AllocaInstCreateAlloca (Type *Ty, Value *ArraySize=0, 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 (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)
 
AtomicCmpXchgInstCreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, AtomicOrdering Ordering, 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="")
 
ValueCreateInBoundsGEP (Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="")
 
ValueCreateGEP (Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateInBoundsGEP (Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateConstGEP1_32 (Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstInBoundsGEP1_32 (Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstGEP2_32 (Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")
 
ValueCreateConstInBoundsGEP2_32 (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 (Value *Ptr, unsigned Idx, const Twine &Name="")
 
ValueCreateGlobalStringPtr (StringRef Str, const Twine &Name="")
 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. Return the value untouched if the type of V is already DestTy. More...
 
ValueCreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a SExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already 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="")
 
ValueCreateIntCast (Value *V, Type *DestTy, bool isSigned, 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="")
 
ValueCreateFCmpOGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpOGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpOLT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpOLE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpONE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpORD (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpUNO (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpUEQ (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpUGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpUGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpULT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpULE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpUNE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="")
 
PHINodeCreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="")
 
CallInstCreateCall (Value *Callee, const Twine &Name="")
 
CallInstCreateCall (Value *Callee, Value *Arg, const Twine &Name="")
 
CallInstCreateCall2 (Value *Callee, Value *Arg1, Value *Arg2, const Twine &Name="")
 
CallInstCreateCall3 (Value *Callee, Value *Arg1, Value *Arg2, Value *Arg3, const Twine &Name="")
 
CallInstCreateCall4 (Value *Callee, Value *Arg1, Value *Arg2, Value *Arg3, Value *Arg4, const Twine &Name="")
 
CallInstCreateCall5 (Value *Callee, Value *Arg1, Value *Arg2, Value *Arg3, Value *Arg4, Value *Arg5, const Twine &Name="")
 
CallInstCreateCall (Value *Callee, ArrayRef< Value * > Args, const Twine &Name="")
 
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="")
 
ValueCreateInsertElement (Value *Vec, Value *NewElt, Value *Idx, const Twine &Name="")
 
ValueCreateShuffleVector (Value *V1, Value *V2, Value *Mask, 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, Value *PersFn, 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...
 
ValueCreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")
 Return a vector value that contains. More...
 
- Public Member Functions inherited from llvm::IRBuilderBase
 IRBuilderBase (LLVMContext &context, MDNode *FPMathTag=0)
 
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 SetInsertPoint (Use &U)
 Find the nearest point that dominates this use, and specify that created instructions should be inserted at this point. More...
 
void SetCurrentDebugLocation (const DebugLoc &L)
 Set location information used by debugging information. More...
 
DebugLoc getCurrentDebugLocation () 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...
 
ValueCreateGlobalString (StringRef Str, const Twine &Name="")
 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...
 
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...
 
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=0)
 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=0)
 
CallInstCreateMemCpy (Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0, MDNode *TBAAStructTag=0)
 Create and insert a memcpy between the specified pointers. More...
 
CallInstCreateMemCpy (Value *Dst, Value *Src, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0, MDNode *TBAAStructTag=0)
 
CallInstCreateMemMove (Value *Dst, Value *Src, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0)
 Create and insert a memmove between the specified pointers. More...
 
CallInstCreateMemMove (Value *Dst, Value *Src, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=0)
 
CallInstCreateLifetimeStart (Value *Ptr, ConstantInt *Size=0)
 Create a lifetime.start intrinsic. More...
 
CallInstCreateLifetimeEnd (Value *Ptr, ConstantInt *Size=0)
 Create a lifetime.end intrinsic. More...
 

Additional Inherited Members

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

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 fourth template argument allows clients to specify custom insertion hooks that are called on every newly created insertion.

Definition at line 421 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,
const Inserter I = Inserter(),
MDNode FPMathTag = 0 
)
inline

Definition at line 424 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 = 0 
)
inlineexplicit

Definition at line 429 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 = 0 
)
inlineexplicit

Definition at line 433 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 = 0 
)
inlineexplicit

Definition at line 438 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 = 0 
)
inlineexplicit

Definition at line 443 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
llvm::IRBuilder< preserveNames, T, Inserter >::IRBuilder ( Use U,
MDNode FPMathTag = 0 
)
inlineexplicit

Definition at line 449 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 = 0 
)
inline

Definition at line 455 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 = 0 
)
inline

Definition at line 461 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 1136 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 518 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 894 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 Twine Name = "" 
)
inline

Definition at line 899 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 905 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 911 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 = 0,
const Twine Name = "" 
)
inline

Definition at line 873 of file IRBuilder.h.

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

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 798 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 801 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 780 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 784 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  Ordering,
SynchronizationScope  SynchScope = CrossThread 
)
inline

Definition at line 921 of file IRBuilder.h.

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 926 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 = "" 
)
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>>
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,
const Twine Name = "" 
)
inline
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall ( Value Callee,
Value Arg,
const Twine Name = "" 
)
inline

Definition at line 1307 of file IRBuilder.h.

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 = "" 
)
inline

Definition at line 1331 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall2 ( Value Callee,
Value Arg1,
Value Arg2,
const Twine Name = "" 
)
inline
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall3 ( Value Callee,
Value Arg1,
Value Arg2,
Value Arg3,
const Twine Name = "" 
)
inline
template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall4 ( Value Callee,
Value Arg1,
Value Arg2,
Value Arg3,
Value Arg4,
const Twine Name = "" 
)
inline

Definition at line 1320 of file IRBuilder.h.

Referenced by llvm::EmitFWrite(), and llvm::EmitMemCpyChk().

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
CallInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCall5 ( Value Callee,
Value Arg1,
Value Arg2,
Value Arg3,
Value Arg4,
Value Arg5,
const Twine Name = "" 
)
inline

Definition at line 1325 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>>
BranchInst* llvm::IRBuilder< preserveNames, T, Inserter >::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
MDNode BranchWeights = 0 
)
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

Definition at line 969 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 1010 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
Value* llvm::IRBuilder< preserveNames, T, Inserter >::CreateConstGEP2_32 ( Value Ptr,
unsigned  Idx0,
unsigned  Idx1,
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 >::CreateConstGEP2_64 ( Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

Definition at line 1027 of file IRBuilder.h.

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

Definition at line 977 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 1018 of file IRBuilder.h.

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

Definition at line 998 of file IRBuilder.h.

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

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 1039 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 702 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 690 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

Definition at line 1349 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

Definition at line 1375 of file IRBuilder.h.

Referenced by ProcessUAddIdiom(), and ProcessUGT_ADDCST_ADD().

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 = 0 
)
inline

Definition at line 629 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 = "" 
)
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 = "" 
)
inline

Definition at line 1237 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 = "" 
)
inline

Definition at line 1243 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 = "" 
)
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 >::CreateFCmpOLE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1249 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 = "" 
)
inline

Definition at line 1246 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 = "" 
)
inline

Definition at line 1252 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 = "" 
)
inline

Definition at line 1255 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 = "" 
)
inline

Definition at line 1261 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 = "" 
)
inline

Definition at line 1267 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 = "" 
)
inline

Definition at line 1264 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 = "" 
)
inline

Definition at line 1273 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 = "" 
)
inline

Definition at line 1270 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 = "" 
)
inline

Definition at line 1276 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 = "" 
)
inline

Definition at line 1258 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 = 0 
)
inline

Definition at line 705 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 
)
inline

Definition at line 917 of file IRBuilder.h.

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 = 0 
)
inline

Definition at line 673 of file IRBuilder.h.

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 = 0 
)
inline

Definition at line 857 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 1194 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 1121 of file IRBuilder.h.

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 1108 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 1105 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 1117 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 = 0 
)
inline

Definition at line 725 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 = 0 
)
inline

Definition at line 651 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

Definition at line 931 of file IRBuilder.h.

Referenced by convertMemSetToLoop(), convertTransferToLoop(), and genLoopLimit().

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 957 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 = "" 
)
inline

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

Definition at line 1057 of file IRBuilder.h.

Referenced by GenerateARCBBTerminatorAnnotation().

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 1227 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 1224 of file IRBuilder.h.

Referenced by 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 1233 of file IRBuilder.h.

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 1230 of file IRBuilder.h.

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 1215 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 1212 of file IRBuilder.h.

Referenced by generateUnsignedDivisionCode().

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 1221 of file IRBuilder.h.

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 ( Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

Definition at line 963 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 550 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 >::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

Definition at line 1128 of file IRBuilder.h.

Referenced by createCast().

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 554 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 560 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 575 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 566 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 1408 of file IRBuilder.h.

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 1402 of file IRBuilder.h.

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

Definition at line 1392 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 882 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 885 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 762 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 766 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

Definition at line 863 of file IRBuilder.h.

Referenced by llvm::FoldBranchToCommonDest(), and SimplifyCondBranchToCondBranch().

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 623 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 667 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 851 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 645 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 626 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 670 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 854 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 648 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 814 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 817 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 >::CreatePointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1172 of file IRBuilder.h.

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 1419 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 582 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 507 of file IRBuilder.h.

Referenced by 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 502 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 1148 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 1093 of file IRBuilder.h.

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 742 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 747 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 >::CreateSIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 1114 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

Definition at line 719 of file IRBuilder.h.

Referenced by llvm::expandRemainderUpTo32Bits().

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 ( Value Ptr,
unsigned  Idx,
const Twine Name = "" 
)
inline

Definition at line 1051 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 = 0 
)
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 541 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

Definition at line 1156 of file IRBuilder.h.

Referenced by llvm::SCEVExpander::replaceCongruentIVs().

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 1111 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 586 of file IRBuilder.h.

Referenced by removeUndefIntroducingPredecessor().

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

Definition at line 713 of file IRBuilder.h.

Referenced by llvm::expandRemainderUpTo32Bits(), and generateSignedRemainderCode().

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 1345 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 1433 of file IRBuilder.h.

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 827 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 830 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

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 >::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 1079 of file IRBuilder.h.

Referenced by foldSelectICmpAnd(), and foldSelectICmpAndOr().

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 467 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 475 of file IRBuilder.h.

Referenced by 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 >::CreateCall2(), llvm::IRBuilder< true, TargetFolder >::CreateCall3(), llvm::IRBuilder< true, TargetFolder >::CreateCall4(), llvm::IRBuilder< true, TargetFolder >::CreateCall5(), llvm::IRBuilder< true, TargetFolder >::CreateCast(), 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 >::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 482 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 471 of file IRBuilder.h.


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