LLVM API Documentation

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, 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.
MDNodegetDefaultFPMathTag () const
 Get the floating point math metadata being used.
FastMathFlags getFastMathFlags () const
 Get the flags to be applied to created floating point ops.
void clearFastMathFlags ()
 Clear the fast-math flags.
void SetDefaultFPMathTag (MDNode *FPMathTag)
 SetDefaultFPMathTag - Set the floating point math metadata to be used.
void SetFastMathFlags (FastMathFlags NewFMF)
 Set the fast-math flags to be used with generated fp-math operators.
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=0)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
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).
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.
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.
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.
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.
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="")
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.
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.
ValueCreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")
 Return a vector value that contains.

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 374 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 379 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 
) [inline, explicit]

Definition at line 385 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 
) [inline, explicit]

Definition at line 389 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 
) [inline, explicit]

Definition at line 395 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 
) [inline, explicit]

Definition at line 401 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 
) [inline, explicit]

Definition at line 408 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 415 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 422 of file IRBuilder.h.


Member Function Documentation

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

Clear the fast-math flags.

Definition at line 438 of file IRBuilder.h.

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>>
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 495 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 871 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 876 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 882 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 888 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 850 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 775 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 778 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 757 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 761 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 898 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 903 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]

Definition at line 811 of file IRBuilder.h.

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

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 1280 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 1304 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 1293 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 1298 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 946 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 987 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 963 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 1004 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 954 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 995 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 975 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 1016 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 679 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 667 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 1322 of file IRBuilder.h.

Referenced by llvm::BoUpSLP::vectorizeArith(), and llvm::BoUpSLP::vectorizeTree().

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 1348 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 606 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 1210 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 1216 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 1213 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 1222 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 1219 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 1225 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 1228 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 1234 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 1240 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 1237 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 1246 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 1243 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 1249 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 1231 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 682 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 894 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 650 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 834 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 1167 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 1098 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 1085 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 1082 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 1094 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 702 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 628 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 908 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 934 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 1034 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 1200 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 1197 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 1206 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 1203 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 1188 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 1185 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 1194 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 940 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 527 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 1105 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 531 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 537 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 552 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 543 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 1381 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 1375 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 1365 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 859 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 862 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 739 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 743 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 840 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 600 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 644 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 828 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 622 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 603 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 647 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 831 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 625 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 791 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 794 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 1145 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 1392 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 559 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 484 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 479 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 1121 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 1070 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 719 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 724 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 1091 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 696 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 1028 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 518 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 1129 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 1088 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 563 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 690 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 1318 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 1406 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 804 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 807 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 1113 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 1056 of file IRBuilder.h.

Referenced by foldSelectICmpAndOr().

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

Get the floating point math metadata being used.

Definition at line 432 of file IRBuilder.h.

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

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

Definition at line 435 of file IRBuilder.h.

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 429 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 452 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 459 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 448 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
void llvm::IRBuilder< preserveNames, T, Inserter >::SetDefaultFPMathTag ( MDNode FPMathTag) [inline]

SetDefaultFPMathTag - Set the floating point math metadata to be used.

Definition at line 441 of file IRBuilder.h.

template<bool preserveNames = true, typename T = ConstantFolder, typename Inserter = IRBuilderDefaultInserter<preserveNames>>
void llvm::IRBuilder< preserveNames, T, Inserter >::SetFastMathFlags ( FastMathFlags  NewFMF) [inline]

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

Definition at line 444 of file IRBuilder.h.


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