LLVM  14.0.0git
Classes | Public Member Functions | Protected Attributes | List of all members
llvm::IRBuilderBase Class Reference

Common base class shared among various IRBuilders. More...

#include "llvm/IR/IRBuilder.h"

Inheritance diagram for llvm::IRBuilderBase:
Inheritance graph
[legend]
Collaboration diagram for llvm::IRBuilderBase:
Collaboration graph
[legend]

Classes

class  FastMathFlagGuard
 
class  InsertPoint
 InsertPoint - A saved insertion point. More...
 
class  InsertPointGuard
 
class  OperandBundlesGuard
 

Public Member Functions

 IRBuilderBase (LLVMContext &context, const IRBuilderFolder &Folder, const IRBuilderDefaultInserter &Inserter, MDNode *FPMathTag, ArrayRef< OperandBundleDef > OpBundles)
 
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...
 
ValueInsert (Value *V, const Twine &Name="") const
 
void ClearInsertionPoint ()
 Clear the insertion point: created instructions will not be inserted into a block. More...
 
BasicBlockGetInsertBlock () const
 
BasicBlock::iterator GetInsertPoint () const
 
LLVMContextgetContext () const
 
void SetInsertPoint (BasicBlock *TheBB)
 This specifies that created instructions should be appended to the end of the specified block. More...
 
void SetInsertPoint (Instruction *I)
 This specifies that created instructions should be inserted before the specified instruction. More...
 
void SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP)
 This specifies that created instructions should be inserted at the specified point. More...
 
void SetCurrentDebugLocation (DebugLoc L)
 Set location information used by debugging information. More...
 
void CollectMetadataToCopy (Instruction *Src, ArrayRef< unsigned > MetadataKinds)
 Collect metadata with IDs MetadataKinds from Src which should be added to all created instructions. 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...
 
void AddMetadataToInst (Instruction *I) const
 Add all entries in MetadataToCopy to I. 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...
 
FastMathFlagsgetFastMathFlags ()
 
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...
 
void setIsFPConstrained (bool IsCon)
 Enable/Disable use of constrained floating point math. More...
 
bool getIsFPConstrained ()
 Query for the use of constrained floating point math. More...
 
void setDefaultConstrainedExcept (fp::ExceptionBehavior NewExcept)
 Set the exception handling to be used with constrained floating point. More...
 
void setDefaultConstrainedRounding (RoundingMode NewRounding)
 Set the rounding mode handling to be used with constrained floating point. More...
 
fp::ExceptionBehavior getDefaultConstrainedExcept ()
 Get the exception handling used with constrained floating point. More...
 
RoundingMode getDefaultConstrainedRounding ()
 Get the rounding mode handling used with constrained floating point. More...
 
void setConstrainedFPFunctionAttr ()
 
void setConstrainedFPCallAttr (CallBase *I)
 
void setDefaultOperandBundles (ArrayRef< OperandBundleDef > OpBundles)
 
GlobalVariableCreateGlobalString (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr)
 Make a new global variable with initializer type i8*. More...
 
ConstantIntgetInt1 (bool V)
 Get a constant value representing either true or false. More...
 
ConstantIntgetTrue ()
 Get the constant value for i1 true. More...
 
ConstantIntgetFalse ()
 Get the constant value for i1 false. More...
 
ConstantIntgetInt8 (uint8_t C)
 Get a constant 8-bit value. More...
 
ConstantIntgetInt16 (uint16_t C)
 Get a constant 16-bit value. More...
 
ConstantIntgetInt32 (uint32_t C)
 Get a constant 32-bit value. More...
 
ConstantIntgetInt64 (uint64_t C)
 Get a constant 64-bit value. More...
 
ConstantIntgetIntN (unsigned N, uint64_t C)
 Get a constant N-bit value, zero extended or truncated from a 64-bit value. More...
 
ConstantIntgetInt (const APInt &AI)
 Get a constant integer value. More...
 
IntegerTypegetInt1Ty ()
 Fetch the type representing a single bit. More...
 
IntegerTypegetInt8Ty ()
 Fetch the type representing an 8-bit integer. More...
 
IntegerTypegetInt16Ty ()
 Fetch the type representing a 16-bit integer. More...
 
IntegerTypegetInt32Ty ()
 Fetch the type representing a 32-bit integer. More...
 
IntegerTypegetInt64Ty ()
 Fetch the type representing a 64-bit integer. More...
 
IntegerTypegetInt128Ty ()
 Fetch the type representing a 128-bit integer. More...
 
IntegerTypegetIntNTy (unsigned N)
 Fetch the type representing an N-bit integer. More...
 
TypegetHalfTy ()
 Fetch the type representing a 16-bit floating point value. More...
 
TypegetBFloatTy ()
 Fetch the type representing a 16-bit brain floating point value. More...
 
TypegetFloatTy ()
 Fetch the type representing a 32-bit floating point value. More...
 
TypegetDoubleTy ()
 Fetch the type representing a 64-bit floating point value. More...
 
TypegetVoidTy ()
 Fetch the type representing void. More...
 
PointerTypegetInt8PtrTy (unsigned AddrSpace=0)
 Fetch the type representing a pointer to an 8-bit integer value. More...
 
IntegerTypegetIntPtrTy (const DataLayout &DL, unsigned AddrSpace=0)
 Fetch the type representing a pointer to an integer value. More...
 
CallInstCreateMemSet (Value *Ptr, Value *Val, uint64_t Size, MaybeAlign Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert a memset to the specified pointer and the specified value. More...
 
CallInstCreateMemSet (Value *Ptr, Value *Val, Value *Size, MaybeAlign Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, uint64_t Size, Align Alignment, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memset of the region of memory starting at the given pointer to the given value. More...
 
CallInstCreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, Value *Size, Align Alignment, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemCpy (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert a memcpy between the specified pointers. More...
 
CallInstCreateMemTransferInst (Intrinsic::ID IntrID, Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemCpy (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemCpyInline (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool IsVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemCpy (Value *Dst, Align DstAlign, Value *Src, Align SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memcpy between the specified pointers. More...
 
CallInstCreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 
CallInstCreateElementUnorderedAtomicMemMove (Value *Dst, Align DstAlign, Value *Src, Align SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr)
 Create and insert an element unordered-atomic memmove between the specified pointers. More...
 
CallInstCreateFAddReduce (Value *Acc, Value *Src)
 Create a vector fadd reduction intrinsic of the source vector. More...
 
CallInstCreateFMulReduce (Value *Acc, Value *Src)
 Create a vector fmul reduction intrinsic of the source vector. More...
 
CallInstCreateAddReduce (Value *Src)
 Create a vector int add reduction intrinsic of the source vector. More...
 
CallInstCreateMulReduce (Value *Src)
 Create a vector int mul reduction intrinsic of the source vector. More...
 
CallInstCreateAndReduce (Value *Src)
 Create a vector int AND reduction intrinsic of the source vector. More...
 
CallInstCreateOrReduce (Value *Src)
 Create a vector int OR reduction intrinsic of the source vector. More...
 
CallInstCreateXorReduce (Value *Src)
 Create a vector int XOR reduction intrinsic of the source vector. More...
 
CallInstCreateIntMaxReduce (Value *Src, bool IsSigned=false)
 Create a vector integer max reduction intrinsic of the source vector. More...
 
CallInstCreateIntMinReduce (Value *Src, bool IsSigned=false)
 Create a vector integer min reduction intrinsic of the source vector. More...
 
CallInstCreateFPMaxReduce (Value *Src)
 Create a vector float max reduction intrinsic of the source vector. More...
 
CallInstCreateFPMinReduce (Value *Src)
 Create a vector float min reduction intrinsic of the source vector. More...
 
CallInstCreateLifetimeStart (Value *Ptr, ConstantInt *Size=nullptr)
 Create a lifetime.start intrinsic. More...
 
CallInstCreateLifetimeEnd (Value *Ptr, ConstantInt *Size=nullptr)
 Create a lifetime.end intrinsic. More...
 
CallInstCreateInvariantStart (Value *Ptr, ConstantInt *Size=nullptr)
 Create a call to invariant.start intrinsic. More...
 
CallInstCreateMaskedLoad (Type *Ty, Value *Ptr, Align Alignment, Value *Mask, Value *PassThru=nullptr, const Twine &Name="")
 Create a call to Masked Load intrinsic. More...
 
CallInstCreateMaskedStore (Value *Val, Value *Ptr, Align Alignment, Value *Mask)
 Create a call to Masked Store intrinsic. More...
 
CallInstCreateMaskedGather (Type *Ty, Value *Ptrs, Align Alignment, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="")
 Create a call to Masked Gather intrinsic. More...
 
CallInstCreateMaskedScatter (Value *Val, Value *Ptrs, Align Alignment, Value *Mask=nullptr)
 Create a call to Masked Scatter intrinsic. More...
 
CallInstCreateAssumption (Value *Cond, ArrayRef< OperandBundleDef > OpBundles=llvm::None)
 Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true. More...
 
InstructionCreateNoAliasScopeDeclaration (Value *Scope)
 Create a llvm.experimental.noalias.scope.decl intrinsic call. More...
 
InstructionCreateNoAliasScopeDeclaration (MDNode *ScopeTag)
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Value * > CallArgs, Optional< ArrayRef< Value * >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< Value * > CallArgs, Optional< ArrayRef< Use >> TransitionArgs, Optional< ArrayRef< Use >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
CallInstCreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Use > CallArgs, Optional< ArrayRef< Value * >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 Conveninence function for the common case when CallArgs are filled in using makeArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > InvokeArgs, Optional< ArrayRef< Value * >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< Value * > InvokeArgs, Optional< ArrayRef< Use >> TransitionArgs, Optional< ArrayRef< Use >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More...
 
InvokeInstCreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Use > InvokeArgs, Optional< ArrayRef< Value * >> DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="")
 
CallInstCreateGCResult (Instruction *Statepoint, Type *ResultType, const Twine &Name="")
 Create a call to the experimental.gc.result intrinsic to extract the result from a call wrapped in a statepoint. More...
 
CallInstCreateGCRelocate (Instruction *Statepoint, int BaseOffset, int DerivedOffset, Type *ResultType, const Twine &Name="")
 Create a call to the experimental.gc.relocate intrinsics to project the relocated value of one pointer from the statepoint. More...
 
CallInstCreateGCGetPointerBase (Value *DerivedPtr, const Twine &Name="")
 Create a call to the experimental.gc.pointer.base intrinsic to get the base pointer for the specified derived pointer. More...
 
CallInstCreateGCGetPointerOffset (Value *DerivedPtr, const Twine &Name="")
 Create a call to the experimental.gc.get.pointer.offset intrinsic to get the offset of the specified derived pointer from its base. More...
 
ValueCreateVScale (Constant *Scaling, const Twine &Name="")
 Create a call to llvm.vscale, multiplied by Scaling. More...
 
ValueCreateStepVector (Type *DstType, const Twine &Name="")
 Creates a vector of type DstType with the linear sequence <0, 1, ...> More...
 
CallInstCreateUnaryIntrinsic (Intrinsic::ID ID, Value *V, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with 1 operand which is mangled on its type. More...
 
CallInstCreateBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with 2 operands which is mangled on the first type. More...
 
CallInstCreateIntrinsic (Intrinsic::ID ID, ArrayRef< Type * > Types, ArrayRef< Value * > Args, Instruction *FMFSource=nullptr, const Twine &Name="")
 Create a call to intrinsic ID with args, mangled using Types. More...
 
CallInstCreateMinNum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the minnum intrinsic. More...
 
CallInstCreateMaxNum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the maxnum intrinsic. More...
 
CallInstCreateMinimum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the minimum intrinsic. More...
 
CallInstCreateMaximum (Value *LHS, Value *RHS, const Twine &Name="")
 Create call to the maximum intrinsic. More...
 
CallInstCreateArithmeticFence (Value *Val, Type *DstType, const Twine &Name="")
 Create a call to the arithmetic_fence intrinsic. More...
 
CallInstCreateExtractVector (Type *DstType, Value *SrcVec, Value *Idx, const Twine &Name="")
 Create a call to the experimental.vector.extract intrinsic. More...
 
CallInstCreateInsertVector (Type *DstType, Value *SrcVec, Value *SubVec, Value *Idx, const Twine &Name="")
 Create a call to the experimental.vector.insert intrinsic. More...
 
ReturnInstCreateRetVoid ()
 Create a 'ret void' instruction. More...
 
ReturnInstCreateRet (Value *V)
 Create a 'ret <val>' instruction. More...
 
ReturnInstCreateAggregateRet (Value *const *retVals, unsigned N)
 Create a sequence of N insertvalue instructions, with one Value from the retVals array each, that build a aggregate return value one value at a time, and a ret instruction to return the resulting aggregate value. More...
 
BranchInstCreateBr (BasicBlock *Dest)
 Create an unconditional 'br label X' instruction. More...
 
BranchInstCreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More...
 
BranchInstCreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, Instruction *MDSrc)
 Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More...
 
SwitchInstCreateSwitch (Value *V, BasicBlock *Dest, unsigned NumCases=10, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr)
 Create a switch instruction with the specified value, default dest, and with a hint for the number of cases that will be added (for efficient allocation). More...
 
IndirectBrInstCreateIndirectBr (Value *Addr, unsigned NumDests=10)
 Create an indirect branch instruction with the specified address operand, with an optional hint for the number of destinations that will be added (for efficient allocation). More...
 
InvokeInstCreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 Create an invoke instruction. More...
 
InvokeInstCreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args=None, const Twine &Name="")
 
InvokeInstCreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
InvokeInstCreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args=None, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args=None, const Twine &Name="")
 Create a callbr instruction. More...
 
CallBrInstCreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args=None, const Twine &Name="")
 
CallBrInstCreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="")
 
ResumeInstCreateResume (Value *Exn)
 
CleanupReturnInstCreateCleanupRet (CleanupPadInst *CleanupPad, BasicBlock *UnwindBB=nullptr)
 
CatchSwitchInstCreateCatchSwitch (Value *ParentPad, BasicBlock *UnwindBB, unsigned NumHandlers, const Twine &Name="")
 
CatchPadInstCreateCatchPad (Value *ParentPad, ArrayRef< Value * > Args, const Twine &Name="")
 
CleanupPadInstCreateCleanupPad (Value *ParentPad, ArrayRef< Value * > Args=None, const Twine &Name="")
 
CatchReturnInstCreateCatchRet (CatchPadInst *CatchPad, BasicBlock *BB)
 
UnreachableInstCreateUnreachable ()
 
ValueCreateAdd (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWAdd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWAdd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSub (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWSub (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWSub (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateMul (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWMul (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateNUWMul (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateUDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateExactUDiv (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateExactSDiv (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateURem (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateSRem (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateShl (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateShl (Value *LHS, const APInt &RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateShl (Value *LHS, uint64_t RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateLShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateLShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateLShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false)
 
ValueCreateAnd (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateAnd (Value *LHS, const APInt &RHS, const Twine &Name="")
 
ValueCreateAnd (Value *LHS, uint64_t RHS, const Twine &Name="")
 
ValueCreateAnd (ArrayRef< Value * > Ops)
 
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="")
 
ValueCreateOr (ArrayRef< Value * > Ops)
 
ValueCreateXor (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateXor (Value *LHS, const APInt &RHS, const Twine &Name="")
 
ValueCreateXor (Value *LHS, uint64_t RHS, const Twine &Name="")
 
ValueCreateFAdd (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFAddFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFSub (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFSubFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFMul (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFMulFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFDiv (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFDivFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateFRem (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr)
 
ValueCreateFRemFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateLogicalAnd (Value *Cond1, Value *Cond2, const Twine &Name="")
 
ValueCreateLogicalOr (Value *Cond1, Value *Cond2, const Twine &Name="")
 
CallInstCreateConstrainedFPBinOp (Intrinsic::ID ID, Value *L, Value *R, Instruction *FMFSource=nullptr, const Twine &Name="", MDNode *FPMathTag=nullptr, Optional< RoundingMode > Rounding=None, Optional< fp::ExceptionBehavior > Except=None)
 
ValueCreateNeg (Value *V, const Twine &Name="", bool HasNUW=false, bool HasNSW=false)
 
ValueCreateNSWNeg (Value *V, const Twine &Name="")
 
ValueCreateNUWNeg (Value *V, const Twine &Name="")
 
ValueCreateFNeg (Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFNegFMF (Value *V, Instruction *FMFSource, const Twine &Name="")
 Copy fast-math-flags from an instruction rather than using the builder's default FMF. More...
 
ValueCreateNot (Value *V, const Twine &Name="")
 
ValueCreateUnOp (Instruction::UnaryOps Opc, Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateNAryOp (unsigned Opc, ArrayRef< Value * > Ops, const Twine &Name="", MDNode *FPMathTag=nullptr)
 Create either a UnaryOperator or BinaryOperator depending on Opc. More...
 
AllocaInstCreateAlloca (Type *Ty, unsigned AddrSpace, Value *ArraySize=nullptr, const Twine &Name="")
 
AllocaInstCreateAlloca (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="")
 
LoadInstCreateLoad (Type *Ty, Value *Ptr, const char *Name)
 Provided to resolve 'CreateLoad(Ty, Ptr, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter. More...
 
LoadInstCreateLoad (Type *Ty, Value *Ptr, const Twine &Name="")
 
LoadInstCreateLoad (Type *Ty, Value *Ptr, bool isVolatile, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateLoad(Value *Ptr, const char *Name), "Use the version that explicitly specifies the " "loaded type instead")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateLoad(Value *Ptr, const Twine &Name=""), "Use the version that explicitly specifies the " "loaded type instead")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateLoad(Value *Ptr, bool isVolatile, const Twine &Name=""), "Use the version that explicitly specifies the " "loaded type instead")
 
StoreInstCreateStore (Value *Val, Value *Ptr, bool isVolatile=false)
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const char *Name)
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const Twine &Name="")
 
LoadInstCreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, bool isVolatile, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateAlignedLoad(Value *Ptr, MaybeAlign Align, const char *Name), "Use the version that explicitly specifies the " "loaded type instead")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateAlignedLoad(Value *Ptr, MaybeAlign Align, const Twine &Name=""), "Use the version that explicitly specifies the " "loaded type instead")
 
 LLVM_ATTRIBUTE_DEPRECATED (LoadInst *CreateAlignedLoad(Value *Ptr, MaybeAlign Align, bool isVolatile, const Twine &Name=""), "Use the version that explicitly specifies the " "loaded type instead")
 
StoreInstCreateAlignedStore (Value *Val, Value *Ptr, MaybeAlign Align, bool isVolatile=false)
 
FenceInstCreateFence (AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System, const Twine &Name="")
 
AtomicCmpXchgInstCreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, MaybeAlign Align, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SyncScope::ID SSID=SyncScope::System)
 
AtomicRMWInstCreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, MaybeAlign Align, AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System)
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateGEP(Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateInBoundsGEP(Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateInBoundsGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="")
 
ValueCreateGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="")
 
ValueCreateInBoundsGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateConstGEP1_32(Value *Ptr, unsigned Idx0, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateConstGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstInBoundsGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="")
 
ValueCreateConstGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")
 
ValueCreateConstInBoundsGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="")
 
ValueCreateConstGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateConstGEP1_64(Value *Ptr, uint64_t Idx0, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateConstInBoundsGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateConstInBoundsGEP1_64(Value *Ptr, uint64_t Idx0, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateConstGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateConstGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateConstInBoundsGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateConstInBoundsGEP2_64(Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name=""), "Use the version with explicit element type instead")
 
ValueCreateStructGEP (Type *Ty, Value *Ptr, unsigned Idx, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateStructGEP(Value *Ptr, unsigned Idx, const Twine &Name=""), "Use the version with explicit element type instead")
 
ConstantCreateGlobalStringPtr (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr)
 Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8. More...
 
ValueCreateTrunc (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a ZExt or Trunc from the integer value V to DestTy. More...
 
ValueCreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="")
 Create a SExt or Trunc from the integer value V to DestTy. More...
 
ValueCreateFPToUI (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPToSI (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateUIToFP (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSIToFP (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPTrunc (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPExt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePtrToInt (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateIntToPtr (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateZExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateSExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateTruncOrBitCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateCast (Instruction::CastOps Op, Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePointerCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreatePointerBitCastOrAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateIntCast (Value *V, Type *DestTy, bool isSigned, const Twine &Name="")
 
ValueCreateBitOrPointerCast (Value *V, Type *DestTy, const Twine &Name="")
 
ValueCreateFPCast (Value *V, Type *DestTy, const Twine &Name="")
 
CallInstCreateConstrainedFPCast (Intrinsic::ID ID, Value *V, Type *DestTy, Instruction *FMFSource=nullptr, const Twine &Name="", MDNode *FPMathTag=nullptr, Optional< RoundingMode > Rounding=None, Optional< fp::ExceptionBehavior > Except=None)
 
ValueCreateIntCast (Value *, Type *, const char *)=delete
 
ValueCreateICmpEQ (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpNE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpUGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpUGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpULT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpULE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSGT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSGE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSLT (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateICmpSLE (Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmpOEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOLT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpOLE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpONE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpORD (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUNO (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpULT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpULE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpUNE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateICmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="")
 
ValueCreateFCmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateCmp (CmpInst::Predicate Pred, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
ValueCreateFCmpS (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateConstrainedFPCmp (Intrinsic::ID ID, CmpInst::Predicate P, Value *L, Value *R, const Twine &Name="", Optional< fp::ExceptionBehavior > Except=None)
 
PHINodeCreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="")
 
CallInstCreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionCallee Callee, ArrayRef< Value * > Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateCall (FunctionCallee Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr)
 
CallInstCreateConstrainedFPCall (Function *Callee, ArrayRef< Value * > Args, const Twine &Name="", Optional< RoundingMode > Rounding=None, Optional< fp::ExceptionBehavior > Except=None)
 
ValueCreateSelect (Value *C, Value *True, Value *False, const Twine &Name="", Instruction *MDFrom=nullptr)
 
VAArgInstCreateVAArg (Value *List, Type *Ty, const Twine &Name="")
 
ValueCreateExtractElement (Value *Vec, Value *Idx, const Twine &Name="")
 
ValueCreateExtractElement (Value *Vec, uint64_t Idx, const Twine &Name="")
 
ValueCreateInsertElement (Value *Vec, Value *NewElt, Value *Idx, const Twine &Name="")
 
ValueCreateInsertElement (Value *Vec, Value *NewElt, uint64_t Idx, const Twine &Name="")
 
ValueCreateShuffleVector (Value *V1, Value *V2, Value *Mask, const Twine &Name="")
 
 LLVM_ATTRIBUTE_DEPRECATED (Value *CreateShuffleVector(Value *V1, Value *V2, ArrayRef< uint32_t > Mask, const Twine &Name=""), "Pass indices as 'int' instead")
 
ValueCreateShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask, const Twine &Name="")
 See class ShuffleVectorInst for a description of the mask representation. More...
 
ValueCreateShuffleVector (Value *V, ArrayRef< int > Mask, const Twine &Name="")
 Create a unary shuffle. More...
 
ValueCreateExtractValue (Value *Agg, ArrayRef< unsigned > Idxs, const Twine &Name="")
 
ValueCreateInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const Twine &Name="")
 
LandingPadInstCreateLandingPad (Type *Ty, unsigned NumClauses, const Twine &Name="")
 
ValueCreateFreeze (Value *V, const Twine &Name="")
 
ValueCreateIsNull (Value *Arg, const Twine &Name="")
 Return an i1 value testing if Arg is null. More...
 
ValueCreateIsNotNull (Value *Arg, const Twine &Name="")
 Return an i1 value testing if Arg is not null. More...
 
ValueCreatePtrDiff (Value *LHS, Value *RHS, const Twine &Name="")
 Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects. More...
 
ValueCreateLaunderInvariantGroup (Value *Ptr)
 Create a launder.invariant.group intrinsic call. More...
 
ValueCreateStripInvariantGroup (Value *Ptr)
 Create a strip.invariant.group intrinsic call. More...
 
ValueCreateVectorReverse (Value *V, const Twine &Name="")
 Return a vector value that contains the vector V reversed. More...
 
ValueCreateVectorSplice (Value *V1, Value *V2, int64_t Imm, const Twine &Name="")
 Return a vector splice intrinsic if using scalable vectors, otherwise return a shufflevector. More...
 
ValueCreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="")
 Return a vector value that contains. More...
 
ValueCreateVectorSplat (ElementCount EC, Value *V, const Twine &Name="")
 Return a vector value that contains. More...
 
ValueCreateExtractInteger (const DataLayout &DL, Value *From, IntegerType *ExtractedTy, uint64_t Offset, const Twine &Name)
 Return a value that has been extracted from a larger integer type. More...
 
ValueCreatePreserveArrayAccessIndex (Type *ElTy, Value *Base, unsigned Dimension, unsigned LastIndex, MDNode *DbgInfo)
 
ValueCreatePreserveUnionAccessIndex (Value *Base, unsigned FieldIndex, MDNode *DbgInfo)
 
ValueCreatePreserveStructAccessIndex (Type *ElTy, Value *Base, unsigned Index, unsigned FieldIndex, MDNode *DbgInfo)
 
CallInstCreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, unsigned Alignment, Value *OffsetValue=nullptr)
 Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More...
 
CallInstCreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, Value *Alignment, Value *OffsetValue=nullptr)
 Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More...
 

Protected Attributes

BasicBlockBB
 
BasicBlock::iterator InsertPt
 
LLVMContextContext
 
const IRBuilderFolderFolder
 
const IRBuilderDefaultInserterInserter
 
MDNodeDefaultFPMathTag
 
FastMathFlags FMF
 
bool IsFPConstrained
 
fp::ExceptionBehavior DefaultConstrainedExcept
 
RoundingMode DefaultConstrainedRounding
 
ArrayRef< OperandBundleDefDefaultOperandBundles
 

Detailed Description

Common base class shared among various IRBuilders.

Definition at line 95 of file IRBuilder.h.

Constructor & Destructor Documentation

◆ IRBuilderBase()

llvm::IRBuilderBase::IRBuilderBase ( LLVMContext context,
const IRBuilderFolder Folder,
const IRBuilderDefaultInserter Inserter,
MDNode FPMathTag,
ArrayRef< OperandBundleDef OpBundles 
)
inline

Definition at line 136 of file IRBuilder.h.

References ClearInsertionPoint(), and llvm::Dynamic.

Member Function Documentation

◆ AddMetadataToInst()

void llvm::IRBuilderBase::AddMetadataToInst ( Instruction I) const
inline

Add all entries in MetadataToCopy to I.

Definition at line 241 of file IRBuilder.h.

References I.

Referenced by Insert().

◆ clearFastMathFlags()

void llvm::IRBuilderBase::clearFastMathFlags ( )
inline

Clear the fast-math flags.

Definition at line 299 of file IRBuilder.h.

References llvm::FastMathFlags::clear(), and FMF.

◆ ClearInsertionPoint()

void llvm::IRBuilderBase::ClearInsertionPoint ( )
inline

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

Definition at line 173 of file IRBuilder.h.

References BB, and InsertPt.

Referenced by IRBuilderBase(), llvm::Negator::Negate(), restoreIP(), and saveAndClearIP().

◆ CollectMetadataToCopy()

void llvm::IRBuilderBase::CollectMetadataToCopy ( Instruction Src,
ArrayRef< unsigned >  MetadataKinds 
)
inline

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

Entries present in MedataDataToCopy but not on Src will be dropped from MetadataToCopy.

Definition at line 215 of file IRBuilder.h.

References llvm::Instruction::getMetadata().

◆ CreateAdd()

Value* llvm::IRBuilderBase::CreateAdd ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateAddReduce()

CallInst * IRBuilderBase::CreateAddReduce ( Value Src)

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

Definition at line 384 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateAddrSpaceCast()

Value* llvm::IRBuilderBase::CreateAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2118 of file IRBuilder.h.

References CreateCast().

Referenced by simplifyInvariantGroupIntrinsic().

◆ CreateAggregateRet()

ReturnInst* llvm::IRBuilderBase::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 977 of file IRBuilder.h.

References Context, llvm::ReturnInst::Create(), CreateInsertValue(), llvm::UndefValue::get(), getCurrentFunctionReturnType(), i, Insert(), and N.

◆ CreateAlignedLoad() [1/3]

LoadInst* llvm::IRBuilderBase::CreateAlignedLoad ( Type Ty,
Value Ptr,
MaybeAlign  Align,
bool  isVolatile,
const Twine Name = "" 
)
inline

◆ CreateAlignedLoad() [2/3]

LoadInst* llvm::IRBuilderBase::CreateAlignedLoad ( Type Ty,
Value Ptr,
MaybeAlign  Align,
const char *  Name 
)
inline

◆ CreateAlignedLoad() [3/3]

LoadInst* llvm::IRBuilderBase::CreateAlignedLoad ( Type Ty,
Value Ptr,
MaybeAlign  Align,
const Twine Name = "" 
)
inline

Definition at line 1704 of file IRBuilder.h.

References CreateAlignedLoad().

◆ CreateAlignedStore()

StoreInst* llvm::IRBuilderBase::CreateAlignedStore ( Value Val,
Value Ptr,
MaybeAlign  Align,
bool  isVolatile = false 
)
inline

◆ CreateAlignmentAssumption() [1/2]

CallInst * IRBuilderBase::CreateAlignmentAssumption ( const DataLayout DL,
Value PtrValue,
unsigned  Alignment,
Value OffsetValue = nullptr 
)

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

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

Definition at line 1234 of file IRBuilder.cpp.

References assert(), DL, llvm::ConstantInt::get(), getIntPtrTy(), and llvm::Value::getType().

Referenced by AddAlignmentAssumptions().

◆ CreateAlignmentAssumption() [2/2]

CallInst * IRBuilderBase::CreateAlignmentAssumption ( const DataLayout DL,
Value PtrValue,
Value Alignment,
Value OffsetValue = nullptr 
)

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

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

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

Definition at line 1247 of file IRBuilder.cpp.

References assert(), DL, and llvm::Value::getType().

◆ CreateAlloca() [1/2]

AllocaInst* llvm::IRBuilderBase::CreateAlloca ( Type Ty,
unsigned  AddrSpace,
Value ArraySize = nullptr,
const Twine Name = "" 
)
inline

◆ CreateAlloca() [2/2]

AllocaInst* llvm::IRBuilderBase::CreateAlloca ( Type Ty,
Value ArraySize = nullptr,
const Twine Name = "" 
)
inline

◆ CreateAnd() [1/4]

Value* llvm::IRBuilderBase::CreateAnd ( ArrayRef< Value * >  Ops)
inline

◆ CreateAnd() [2/4]

Value* llvm::IRBuilderBase::CreateAnd ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1368 of file IRBuilder.h.

References CreateAnd(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateAnd() [3/4]

Value* llvm::IRBuilderBase::CreateAnd ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1372 of file IRBuilder.h.

References CreateAnd(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateAnd() [4/4]

Value* llvm::IRBuilderBase::CreateAnd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateAndReduce()

CallInst * IRBuilderBase::CreateAndReduce ( Value Src)

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

Definition at line 392 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateArithmeticFence()

CallInst* llvm::IRBuilderBase::CreateArithmeticFence ( Value Val,
Type DstType,
const Twine Name = "" 
)
inline

Create a call to the arithmetic_fence intrinsic.

Definition at line 912 of file IRBuilder.h.

References CreateIntrinsic().

◆ CreateAShr() [1/3]

Value* llvm::IRBuilderBase::CreateAShr ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1348 of file IRBuilder.h.

References CreateAShr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateAShr() [2/3]

Value* llvm::IRBuilderBase::CreateAShr ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1353 of file IRBuilder.h.

References CreateAShr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateAShr() [3/3]

Value* llvm::IRBuilderBase::CreateAShr ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateAssumption()

CallInst * IRBuilderBase::CreateAssumption ( Value Cond,
ArrayRef< OperandBundleDef OpBundles = llvm::None 
)

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

The optional argument OpBundles specifies operand bundles that are added to the call instruction.

Definition at line 477 of file IRBuilder.cpp.

References assert(), BB, Cond, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt1Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and M.

◆ CreateAtomicCmpXchg()

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

◆ CreateAtomicRMW()

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

◆ CreateBinaryIntrinsic()

CallInst * IRBuilderBase::CreateBinaryIntrinsic ( Intrinsic::ID  ID,
Value LHS,
Value RHS,
Instruction FMFSource = nullptr,
const Twine Name = "" 
)

Create a call to intrinsic ID with 2 operands which is mangled on the first type.

Definition at line 831 of file IRBuilder.cpp.

References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getModule(), llvm::Value::getType(), and M.

Referenced by CreateMaximum(), CreateMaxNum(), CreateMinimum(), CreateMinNum(), and foldCttzCtlz().

◆ CreateBinOp()

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

◆ CreateBitCast()

Value* llvm::IRBuilderBase::CreateBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateBitOrPointerCast()

Value* llvm::IRBuilderBase::CreateBitOrPointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateBr()

BranchInst* llvm::IRBuilderBase::CreateBr ( BasicBlock Dest)
inline

Create an unconditional 'br label X' instruction.

Definition at line 985 of file IRBuilder.h.

References llvm::BranchInst::Create(), and Insert().

Referenced by llvm::orc::IRSpeculationLayer::emit().

◆ CreateCall() [1/4]

CallInst* llvm::IRBuilderBase::CreateCall ( FunctionCallee  Callee,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2419 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateCall().

◆ CreateCall() [2/4]

CallInst* llvm::IRBuilderBase::CreateCall ( FunctionCallee  Callee,
ArrayRef< Value * >  Args = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2413 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateCall().

◆ CreateCall() [3/4]

CallInst* llvm::IRBuilderBase::CreateCall ( FunctionType FTy,
Value Callee,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

◆ CreateCall() [4/4]

CallInst* llvm::IRBuilderBase::CreateCall ( FunctionType FTy,
Value Callee,
ArrayRef< Value * >  Args = None,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

◆ CreateCallBr() [1/4]

CallBrInst* llvm::IRBuilderBase::CreateCallBr ( FunctionCallee  Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock * >  IndirectDests,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 1094 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateCallBr().

◆ CreateCallBr() [2/4]

CallBrInst* llvm::IRBuilderBase::CreateCallBr ( FunctionCallee  Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock * >  IndirectDests,
ArrayRef< Value * >  Args = None,
const Twine Name = "" 
)
inline

Definition at line 1087 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateCallBr().

◆ CreateCallBr() [3/4]

CallBrInst* llvm::IRBuilderBase::CreateCallBr ( FunctionType Ty,
Value Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock * >  IndirectDests,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

◆ CreateCallBr() [4/4]

CallBrInst* llvm::IRBuilderBase::CreateCallBr ( FunctionType Ty,
Value Callee,
BasicBlock DefaultDest,
ArrayRef< BasicBlock * >  IndirectDests,
ArrayRef< Value * >  Args = None,
const Twine Name = "" 
)
inline

Create a callbr instruction.

Definition at line 1068 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, llvm::CallBrInst::Create(), and Insert().

Referenced by CreateCallBr().

◆ CreateCast()

Value* llvm::IRBuilderBase::CreateCast ( Instruction::CastOps  Op,
Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateCatchPad()

CatchPadInst* llvm::IRBuilderBase::CreateCatchPad ( Value ParentPad,
ArrayRef< Value * >  Args,
const Twine Name = "" 
)
inline

◆ CreateCatchRet()

CatchReturnInst* llvm::IRBuilderBase::CreateCatchRet ( CatchPadInst CatchPad,
BasicBlock BB 
)
inline

Definition at line 1130 of file IRBuilder.h.

References BB, llvm::CatchReturnInst::Create(), and Insert().

◆ CreateCatchSwitch()

CatchSwitchInst* llvm::IRBuilderBase::CreateCatchSwitch ( Value ParentPad,
BasicBlock UnwindBB,
unsigned  NumHandlers,
const Twine Name = "" 
)
inline

Definition at line 1112 of file IRBuilder.h.

References llvm::CatchSwitchInst::Create(), and Insert().

◆ CreateCleanupPad()

CleanupPadInst* llvm::IRBuilderBase::CreateCleanupPad ( Value ParentPad,
ArrayRef< Value * >  Args = None,
const Twine Name = "" 
)
inline

◆ CreateCleanupRet()

CleanupReturnInst* llvm::IRBuilderBase::CreateCleanupRet ( CleanupPadInst CleanupPad,
BasicBlock UnwindBB = nullptr 
)
inline

Definition at line 1107 of file IRBuilder.h.

References llvm::CleanupReturnInst::Create(), and Insert().

◆ CreateCmp()

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

Definition at line 2353 of file IRBuilder.h.

References CreateFCmp(), CreateICmp(), and llvm::CmpInst::isFPPredicate().

◆ CreateCondBr() [1/2]

BranchInst* llvm::IRBuilderBase::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
Instruction MDSrc 
)
inline

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

Copy branch meta data if available.

Definition at line 1000 of file IRBuilder.h.

References Cond, llvm::Instruction::copyMetadata(), llvm::BranchInst::Create(), Insert(), and llvm::makeArrayRef().

◆ CreateCondBr() [2/2]

BranchInst* llvm::IRBuilderBase::CreateCondBr ( Value Cond,
BasicBlock True,
BasicBlock False,
MDNode BranchWeights = nullptr,
MDNode Unpredictable = nullptr 
)
inline

◆ CreateConstGEP1_32()

Value* llvm::IRBuilderBase::CreateConstGEP1_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
)
inline

◆ CreateConstGEP1_64()

Value* llvm::IRBuilderBase::CreateConstGEP1_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

◆ CreateConstGEP2_32()

Value* llvm::IRBuilderBase::CreateConstGEP2_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
unsigned  Idx1,
const Twine Name = "" 
)
inline

◆ CreateConstGEP2_64()

Value* llvm::IRBuilderBase::CreateConstGEP2_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

◆ CreateConstInBoundsGEP1_32()

Value* llvm::IRBuilderBase::CreateConstInBoundsGEP1_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
const Twine Name = "" 
)
inline

◆ CreateConstInBoundsGEP1_64()

Value* llvm::IRBuilderBase::CreateConstInBoundsGEP1_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
const Twine Name = "" 
)
inline

◆ CreateConstInBoundsGEP2_32()

Value* llvm::IRBuilderBase::CreateConstInBoundsGEP2_32 ( Type Ty,
Value Ptr,
unsigned  Idx0,
unsigned  Idx1,
const Twine Name = "" 
)
inline

◆ CreateConstInBoundsGEP2_64()

Value* llvm::IRBuilderBase::CreateConstInBoundsGEP2_64 ( Type Ty,
Value Ptr,
uint64_t  Idx0,
uint64_t  Idx1,
const Twine Name = "" 
)
inline

◆ CreateConstrainedFPBinOp()

CallInst * IRBuilderBase::CreateConstrainedFPBinOp ( Intrinsic::ID  ID,
Value L,
Value R,
Instruction FMFSource = nullptr,
const Twine Name = "",
MDNode FPMathTag = nullptr,
Optional< RoundingMode Rounding = None,
Optional< fp::ExceptionBehavior Except = None 
)

◆ CreateConstrainedFPCall()

CallInst * IRBuilderBase::CreateConstrainedFPCall ( Function Callee,
ArrayRef< Value * >  Args,
const Twine Name = "",
Optional< RoundingMode Rounding = None,
Optional< fp::ExceptionBehavior Except = None 
)

◆ CreateConstrainedFPCast()

CallInst * IRBuilderBase::CreateConstrainedFPCast ( Intrinsic::ID  ID,
Value V,
Type DestTy,
Instruction FMFSource = nullptr,
const Twine Name = "",
MDNode FPMathTag = nullptr,
Optional< RoundingMode Rounding = None,
Optional< fp::ExceptionBehavior Except = None 
)

◆ CreateConstrainedFPCmp()

CallInst * IRBuilderBase::CreateConstrainedFPCmp ( Intrinsic::ID  ID,
CmpInst::Predicate  P,
Value L,
Value R,
const Twine Name = "",
Optional< fp::ExceptionBehavior Except = None 
)

◆ CreateElementUnorderedAtomicMemCpy()

CallInst * IRBuilderBase::CreateElementUnorderedAtomicMemCpy ( Value Dst,
Align  DstAlign,
Value Src,
Align  SrcAlign,
Value Size,
uint32_t  ElementSize,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

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

DstAlign/SrcAlign are the alignments of the Dst/Src pointers, respectively.

If the pointers aren't i8*, they will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.

Definition at line 244 of file IRBuilder.cpp.

References assert(), BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), M, llvm::Instruction::setMetadata(), and llvm::Check::Size.

◆ CreateElementUnorderedAtomicMemMove()

CallInst * IRBuilderBase::CreateElementUnorderedAtomicMemMove ( Value Dst,
Align  DstAlign,
Value Src,
Align  SrcAlign,
Value Size,
uint32_t  ElementSize,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

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

DstAlign/SrcAlign are the alignments of the Dst/Src pointers, respectively.

If the pointers aren't i8*, they will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.

Definition at line 319 of file IRBuilder.cpp.

References llvm::CallBase::addParamAttr(), assert(), BB, createCallHelper(), llvm::Value::getContext(), llvm::Intrinsic::getDeclaration(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), M, llvm::Instruction::setMetadata(), and llvm::Check::Size.

◆ CreateElementUnorderedAtomicMemSet() [1/2]

CallInst* llvm::IRBuilderBase::CreateElementUnorderedAtomicMemSet ( Value Ptr,
Value Val,
uint64_t  Size,
Align  Alignment,
uint32_t  ElementSize,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)
inline

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

If the pointer isn't an i8*, it will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.

Definition at line 599 of file IRBuilder.h.

References Align, getInt64(), and llvm::Check::Size.

◆ CreateElementUnorderedAtomicMemSet() [2/2]

CallInst * IRBuilderBase::CreateElementUnorderedAtomicMemSet ( Value Ptr,
Value Val,
Value Size,
Align  Alignment,
uint32_t  ElementSize,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

◆ CreateExactSDiv()

Value* llvm::IRBuilderBase::CreateExactSDiv ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1283 of file IRBuilder.h.

References CreateSDiv().

Referenced by CreatePtrDiff().

◆ CreateExactUDiv()

Value* llvm::IRBuilderBase::CreateExactUDiv ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1269 of file IRBuilder.h.

References CreateUDiv().

◆ CreateExtractElement() [1/2]

Value* llvm::IRBuilderBase::CreateExtractElement ( Value Vec,
uint64_t  Idx,
const Twine Name = "" 
)
inline

Definition at line 2446 of file IRBuilder.h.

References CreateExtractElement(), and getInt64().

◆ CreateExtractElement() [2/2]

Value* llvm::IRBuilderBase::CreateExtractElement ( Value Vec,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateExtractInteger()

Value * IRBuilderBase::CreateExtractInteger ( const DataLayout DL,
Value From,
IntegerType ExtractedTy,
uint64_t  Offset,
const Twine Name 
)

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

Definition at line 1120 of file IRBuilder.cpp.

References assert(), CreateLShr(), CreateTrunc(), DL, From, llvm::IntegerType::getBitWidth(), and Offset.

◆ CreateExtractValue()

Value* llvm::IRBuilderBase::CreateExtractValue ( Value Agg,
ArrayRef< unsigned >  Idxs,
const Twine Name = "" 
)
inline

◆ CreateExtractVector()

CallInst* llvm::IRBuilderBase::CreateExtractVector ( Type DstType,
Value SrcVec,
Value Idx,
const Twine Name = "" 
)
inline

Create a call to the experimental.vector.extract intrinsic.

Definition at line 919 of file IRBuilder.h.

References CreateIntrinsic(), and llvm::Value::getType().

◆ CreateFAdd()

Value* llvm::IRBuilderBase::CreateFAdd ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1423 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), FMF, I, Insert(), and IsFPConstrained.

Referenced by llvm::X86TTIImpl::instCombineIntrinsic().

◆ CreateFAddFMF()

Value* llvm::IRBuilderBase::CreateFAddFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1436 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), llvm::Instruction::getFastMathFlags(), I, Insert(), and IsFPConstrained.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateFAddReduce()

CallInst * IRBuilderBase::CreateFAddReduce ( Value Acc,
Value Src 
)

Create a vector fadd reduction intrinsic of the source vector.

The first parameter is a scalar accumulator value for ordered reductions.

Definition at line 368 of file IRBuilder.cpp.

References createCallHelper(), llvm::Intrinsic::getDeclaration(), GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), and M.

◆ CreateFCmp()

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

◆ CreateFCmpOEQ()

Value* llvm::IRBuilderBase::CreateFCmpOEQ ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2267 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_OEQ.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateFCmpOGE()

Value* llvm::IRBuilderBase::CreateFCmpOGE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2277 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_OGE.

◆ CreateFCmpOGT()

Value* llvm::IRBuilderBase::CreateFCmpOGT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2272 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_OGT.

◆ CreateFCmpOLE()

Value* llvm::IRBuilderBase::CreateFCmpOLE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2287 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_OLE.

◆ CreateFCmpOLT()

Value* llvm::IRBuilderBase::CreateFCmpOLT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2282 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_OLT.

◆ CreateFCmpONE()

Value* llvm::IRBuilderBase::CreateFCmpONE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2292 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_ONE.

◆ CreateFCmpORD()

Value* llvm::IRBuilderBase::CreateFCmpORD ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2297 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_ORD.

◆ CreateFCmpS()

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

Definition at line 2363 of file IRBuilder.h.

References P.

◆ CreateFCmpUEQ()

Value* llvm::IRBuilderBase::CreateFCmpUEQ ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2307 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_UEQ.

◆ CreateFCmpUGE()

Value* llvm::IRBuilderBase::CreateFCmpUGE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2317 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_UGE.

◆ CreateFCmpUGT()

Value* llvm::IRBuilderBase::CreateFCmpUGT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2312 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_UGT.

◆ CreateFCmpULE()

Value* llvm::IRBuilderBase::CreateFCmpULE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2327 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_ULE.

◆ CreateFCmpULT()

Value* llvm::IRBuilderBase::CreateFCmpULT ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2322 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_ULT.

◆ CreateFCmpUNE()

Value* llvm::IRBuilderBase::CreateFCmpUNE ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2332 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_UNE.

◆ CreateFCmpUNO()

Value* llvm::IRBuilderBase::CreateFCmpUNO ( Value LHS,
Value RHS,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

Definition at line 2302 of file IRBuilder.h.

References CreateFCmp(), and llvm::CmpInst::FCMP_UNO.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateFDiv()

Value* llvm::IRBuilderBase::CreateFDiv ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1498 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), FMF, I, Insert(), and IsFPConstrained.

Referenced by llvm::X86TTIImpl::instCombineIntrinsic().

◆ CreateFDivFMF()

Value* llvm::IRBuilderBase::CreateFDivFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1511 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), llvm::Instruction::getFastMathFlags(), I, Insert(), and IsFPConstrained.

◆ CreateFence()

FenceInst* llvm::IRBuilderBase::CreateFence ( AtomicOrdering  Ordering,
SyncScope::ID  SSID = SyncScope::System,
const Twine Name = "" 
)
inline

Definition at line 1755 of file IRBuilder.h.

References Context, and Insert().

◆ CreateFMul()

Value* llvm::IRBuilderBase::CreateFMul ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

◆ CreateFMulFMF()

Value* llvm::IRBuilderBase::CreateFMulFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1486 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), llvm::Instruction::getFastMathFlags(), I, Insert(), and IsFPConstrained.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateFMulReduce()

CallInst * IRBuilderBase::CreateFMulReduce ( Value Acc,
Value Src 
)

Create a vector fmul reduction intrinsic of the source vector.

The first parameter is a scalar accumulator value for ordered reductions.

Definition at line 376 of file IRBuilder.cpp.

References createCallHelper(), llvm::Intrinsic::getDeclaration(), GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), and M.

◆ CreateFNeg()

Value* llvm::IRBuilderBase::CreateFNeg ( Value V,
const Twine Name = "",
MDNode FPMathTag = nullptr 
)
inline

◆ CreateFNegFMF()

Value* llvm::IRBuilderBase::CreateFNegFMF ( Value V,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1604 of file IRBuilder.h.

References llvm::IRBuilderFolder::CreateFNeg(), Folder, llvm::Instruction::getFastMathFlags(), Insert(), and llvm::AArch64CC::VC.

◆ CreateFPCast()

Value* llvm::IRBuilderBase::CreateFPCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateFPExt()

Value* llvm::IRBuilderBase::CreateFPExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2096 of file IRBuilder.h.

References CreateCast(), CreateConstrainedFPCast(), and IsFPConstrained.

◆ CreateFPMaxReduce()

CallInst * IRBuilderBase::CreateFPMaxReduce ( Value Src)

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

Definition at line 416 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateFPMinReduce()

CallInst * IRBuilderBase::CreateFPMinReduce ( Value Src)

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

Definition at line 420 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateFPToSI()

Value* llvm::IRBuilderBase::CreateFPToSI ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2066 of file IRBuilder.h.

References CreateCast(), CreateConstrainedFPCast(), and IsFPConstrained.

◆ CreateFPToUI()

Value* llvm::IRBuilderBase::CreateFPToUI ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2059 of file IRBuilder.h.

References CreateCast(), CreateConstrainedFPCast(), and IsFPConstrained.

◆ CreateFPTrunc()

Value* llvm::IRBuilderBase::CreateFPTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2087 of file IRBuilder.h.

References CreateCast(), CreateConstrainedFPCast(), and IsFPConstrained.

◆ CreateFreeze()

Value* llvm::IRBuilderBase::CreateFreeze ( Value V,
const Twine Name = "" 
)
inline

Definition at line 2519 of file IRBuilder.h.

References Insert().

◆ CreateFRem()

Value* llvm::IRBuilderBase::CreateFRem ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1523 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), FMF, I, Insert(), and IsFPConstrained.

◆ CreateFRemFMF()

Value* llvm::IRBuilderBase::CreateFRemFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1536 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), llvm::Instruction::getFastMathFlags(), I, Insert(), and IsFPConstrained.

◆ CreateFSub()

Value* llvm::IRBuilderBase::CreateFSub ( Value L,
Value R,
const Twine Name = "",
MDNode FPMD = nullptr 
)
inline

Definition at line 1448 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), FMF, I, Insert(), and IsFPConstrained.

Referenced by llvm::X86TTIImpl::instCombineIntrinsic().

◆ CreateFSubFMF()

Value* llvm::IRBuilderBase::CreateFSubFMF ( Value L,
Value R,
Instruction FMFSource,
const Twine Name = "" 
)
inline

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

Definition at line 1461 of file IRBuilder.h.

References CreateConstrainedFPBinOp(), llvm::Instruction::getFastMathFlags(), I, Insert(), and IsFPConstrained.

◆ CreateGCGetPointerBase()

CallInst * IRBuilderBase::CreateGCGetPointerBase ( Value DerivedPtr,
const Twine Name = "" 
)

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

Definition at line 805 of file IRBuilder.cpp.

References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), and M.

◆ CreateGCGetPointerOffset()

CallInst * IRBuilderBase::CreateGCGetPointerOffset ( Value DerivedPtr,
const Twine Name = "" 
)

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

Definition at line 814 of file IRBuilder.cpp.

References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), and M.

◆ CreateGCRelocate()

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

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

Definition at line 789 of file IRBuilder.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and M.

◆ CreateGCResult()

CallInst * IRBuilderBase::CreateGCResult ( Instruction Statepoint,
Type ResultType,
const Twine Name = "" 
)

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

Definition at line 777 of file IRBuilder.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), and M.

◆ CreateGCStatepointCall() [1/3]

CallInst * IRBuilderBase::CreateGCStatepointCall ( uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualCallee,
ArrayRef< Use CallArgs,
Optional< ArrayRef< Value * >>  DeoptArgs,
ArrayRef< Value * >  GCArgs,
const Twine Name = "" 
)

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

Definition at line 710 of file IRBuilder.cpp.

References llvm::None.

◆ CreateGCStatepointCall() [2/3]

CallInst * IRBuilderBase::CreateGCStatepointCall ( uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualCallee,
ArrayRef< Value * >  CallArgs,
Optional< ArrayRef< Value * >>  DeoptArgs,
ArrayRef< Value * >  GCArgs,
const Twine Name = "" 
)

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

Definition at line 691 of file IRBuilder.cpp.

References llvm::None.

◆ CreateGCStatepointCall() [3/3]

CallInst * IRBuilderBase::CreateGCStatepointCall ( uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualCallee,
uint32_t  Flags,
ArrayRef< Value * >  CallArgs,
Optional< ArrayRef< Use >>  TransitionArgs,
Optional< ArrayRef< Use >>  DeoptArgs,
ArrayRef< Value * >  GCArgs,
const Twine Name = "" 
)

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

Definition at line 700 of file IRBuilder.cpp.

◆ CreateGCStatepointInvoke() [1/3]

InvokeInst * IRBuilderBase::CreateGCStatepointInvoke ( uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualInvokee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Use InvokeArgs,
Optional< ArrayRef< Value * >>  DeoptArgs,
ArrayRef< Value * >  GCArgs,
const Twine Name = "" 
)

Definition at line 767 of file IRBuilder.cpp.

References llvm::None.

◆ CreateGCStatepointInvoke() [2/3]

InvokeInst * IRBuilderBase::CreateGCStatepointInvoke ( uint64_t  ID,
uint32_t  NumPatchBytes,
Value ActualInvokee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value * >  InvokeArgs,
Optional< ArrayRef< Value * >>  DeoptArgs,
ArrayRef< Value * >  GCArgs,
const Twine Name = "" 
)

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

Definition at line 746 of file IRBuilder.cpp.

References llvm::None.

◆ CreateGCStatepointInvoke() [3/3]

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

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

Definition at line 757 of file IRBuilder.cpp.

◆ CreateGEP() [1/2]

Value* llvm::IRBuilderBase::CreateGEP ( Type Ty,
Value Ptr,
ArrayRef< Value * >  IdxList,
const Twine Name = "" 
)
inline

◆ CreateGEP() [2/2]

Value* llvm::IRBuilderBase::CreateGEP ( Type Ty,
Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateGlobalString()

GlobalVariable * IRBuilderBase::CreateGlobalString ( StringRef  Str,
const Twine Name = "",
unsigned  AddressSpace = 0,
Module M = nullptr 
)

Make a new global variable with initializer type i8*.

CreateGlobalString - Make a new global variable with an initializer that has array of i8 type filled in with the nul terminated string value specified.

Make a new global variable with an initializer that has array of i8 type filled in with the null terminated string value specified. The new global variable will be marked mergable with any others of the same contents. If Name is specified, it is the name of the global variable created.

If no module is given via M, it is take from the insertion point basic block.

If Name is specified, it is the name of the global variable created.

Definition at line 43 of file IRBuilder.cpp.

References Align, BB, Context, llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::Global, M, llvm::GlobalValue::NotThreadLocal, and llvm::GlobalValue::PrivateLinkage.

Referenced by CreateGlobalStringPtr().

◆ CreateGlobalStringPtr()

Constant* llvm::IRBuilderBase::CreateGlobalStringPtr ( StringRef  Str,
const Twine Name = "",
unsigned  AddressSpace = 0,
Module M = nullptr 
)
inline

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

If no module is given via M, it is take from the insertion point basic block.

Definition at line 2003 of file IRBuilder.h.

References Context, CreateGlobalString(), llvm::ConstantInt::get(), llvm::ConstantExpr::getInBoundsGetElementPtr(), llvm::Type::getInt32Ty(), llvm::GlobalValue::getValueType(), and M.

◆ CreateICmp()

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

◆ CreateICmpEQ()

Value* llvm::IRBuilderBase::CreateICmpEQ ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateICmpNE()

Value* llvm::IRBuilderBase::CreateICmpNE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2231 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_NE.

Referenced by CreateIsNotNull(), and llvm::createMemCpyLoopUnknownSize().

◆ CreateICmpSGE()

Value* llvm::IRBuilderBase::CreateICmpSGE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2255 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_SGE.

◆ CreateICmpSGT()

Value* llvm::IRBuilderBase::CreateICmpSGT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2251 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_SGT.

◆ CreateICmpSLE()

Value* llvm::IRBuilderBase::CreateICmpSLE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2263 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_SLE.

◆ CreateICmpSLT()

Value* llvm::IRBuilderBase::CreateICmpSLT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2259 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_SLT.

Referenced by getBoundsCheckCond().

◆ CreateICmpUGE()

Value* llvm::IRBuilderBase::CreateICmpUGE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2239 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_UGE.

◆ CreateICmpUGT()

Value* llvm::IRBuilderBase::CreateICmpUGT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2235 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_UGT.

◆ CreateICmpULE()

Value* llvm::IRBuilderBase::CreateICmpULE ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 2247 of file IRBuilder.h.

References CreateICmp(), and llvm::CmpInst::ICMP_ULE.

◆ CreateICmpULT()

Value* llvm::IRBuilderBase::CreateICmpULT ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateInBoundsGEP() [1/2]

Value* llvm::IRBuilderBase::CreateInBoundsGEP ( Type Ty,
Value Ptr,
ArrayRef< Value * >  IdxList,
const Twine Name = "" 
)
inline

◆ CreateInBoundsGEP() [2/2]

Value* llvm::IRBuilderBase::CreateInBoundsGEP ( Type Ty,
Value Ptr,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateIndirectBr()

IndirectBrInst* llvm::IRBuilderBase::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 1024 of file IRBuilder.h.

References Addr, llvm::IndirectBrInst::Create(), and Insert().

◆ CreateInsertElement() [1/2]

Value* llvm::IRBuilderBase::CreateInsertElement ( Value Vec,
Value NewElt,
uint64_t  Idx,
const Twine Name = "" 
)
inline

Definition at line 2460 of file IRBuilder.h.

References CreateInsertElement(), and getInt64().

◆ CreateInsertElement() [2/2]

Value* llvm::IRBuilderBase::CreateInsertElement ( Value Vec,
Value NewElt,
Value Idx,
const Twine Name = "" 
)
inline

◆ CreateInsertValue()

Value* llvm::IRBuilderBase::CreateInsertValue ( Value Agg,
Value Val,
ArrayRef< unsigned >  Idxs,
const Twine Name = "" 
)
inline

◆ CreateInsertVector()

CallInst* llvm::IRBuilderBase::CreateInsertVector ( Type DstType,
Value SrcVec,
Value SubVec,
Value Idx,
const Twine Name = "" 
)
inline

Create a call to the experimental.vector.insert intrinsic.

Definition at line 927 of file IRBuilder.h.

References CreateIntrinsic(), and llvm::Value::getType().

◆ CreateIntCast() [1/2]

Value* llvm::IRBuilderBase::CreateIntCast ( Value ,
Type ,
const char *   
)
delete

◆ CreateIntCast() [2/2]

Value* llvm::IRBuilderBase::CreateIntCast ( Value V,
Type DestTy,
bool  isSigned,
const Twine Name = "" 
)
inline

◆ CreateIntMaxReduce()

CallInst * IRBuilderBase::CreateIntMaxReduce ( Value Src,
bool  IsSigned = false 
)

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

Definition at line 404 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateIntMinReduce()

CallInst * IRBuilderBase::CreateIntMinReduce ( Value Src,
bool  IsSigned = false 
)

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

Definition at line 410 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateIntrinsic()

CallInst * IRBuilderBase::CreateIntrinsic ( Intrinsic::ID  ID,
ArrayRef< Type * >  Types,
ArrayRef< Value * >  Args,
Instruction FMFSource = nullptr,
const Twine Name = "" 
)

Create a call to intrinsic ID with args, mangled using Types.

If FMFSource is provided, copy fast-math-flags from that instruction to the intrinsic.

Definition at line 840 of file IRBuilder.cpp.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getModule(), and M.

Referenced by CreateArithmeticFence(), CreateConstrainedFPBinOp(), CreateConstrainedFPCast(), CreateConstrainedFPCmp(), CreateExtractVector(), CreateInsertVector(), CreateStepVector(), and llvm::ARMTTIImpl::instCombineIntrinsic().

◆ CreateIntToPtr()

Value* llvm::IRBuilderBase::CreateIntToPtr ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

Definition at line 2108 of file IRBuilder.h.

References CreateCast().

Referenced by CreateBitOrPointerCast().

◆ CreateInvariantStart()

CallInst * IRBuilderBase::CreateInvariantStart ( Value Ptr,
ConstantInt Size = nullptr 
)

Create a call to invariant.start intrinsic.

If the pointer isn't i8* it will be converted.

Definition at line 456 of file IRBuilder.cpp.

References assert(), BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt64(), getInt64Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), M, and llvm::Check::Size.

◆ CreateInvoke() [1/4]

InvokeInst* llvm::IRBuilderBase::CreateInvoke ( FunctionCallee  Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Definition at line 1051 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateInvoke().

◆ CreateInvoke() [2/4]

InvokeInst* llvm::IRBuilderBase::CreateInvoke ( FunctionCallee  Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value * >  Args = None,
const Twine Name = "" 
)
inline

Definition at line 1059 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, and CreateInvoke().

◆ CreateInvoke() [3/4]

InvokeInst* llvm::IRBuilderBase::CreateInvoke ( FunctionType Ty,
Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value * >  Args,
ArrayRef< OperandBundleDef OpBundles,
const Twine Name = "" 
)
inline

Create an invoke instruction.

Definition at line 1029 of file IRBuilder.h.

References llvm::AMDGPU::HSAMD::Kernel::Key::Args, Callee, llvm::InvokeInst::Create(), Insert(), IsFPConstrained, and setConstrainedFPCallAttr().

Referenced by CreateInvoke().

◆ CreateInvoke() [4/4]

InvokeInst* llvm::IRBuilderBase::CreateInvoke ( FunctionType Ty,
Value Callee,
BasicBlock NormalDest,
BasicBlock UnwindDest,
ArrayRef< Value * >  Args = None,
const Twine Name = "" 
)
inline

◆ CreateIsNotNull()

Value* llvm::IRBuilderBase::CreateIsNotNull ( Value Arg,
const Twine Name = "" 
)
inline

Return an i1 value testing if Arg is not null.

Definition at line 2534 of file IRBuilder.h.

References Arg, CreateICmpNE(), and llvm::Constant::getNullValue().

Referenced by llvm::UnrollRuntimeLoopRemainder().

◆ CreateIsNull()

Value* llvm::IRBuilderBase::CreateIsNull ( Value Arg,
const Twine Name = "" 
)
inline

Return an i1 value testing if Arg is null.

Definition at line 2528 of file IRBuilder.h.

References Arg, CreateICmpEQ(), and llvm::Constant::getNullValue().

Referenced by llvm::UnrollRuntimeLoopRemainder().

◆ CreateLandingPad()

LandingPadInst* llvm::IRBuilderBase::CreateLandingPad ( Type Ty,
unsigned  NumClauses,
const Twine Name = "" 
)
inline

Definition at line 2514 of file IRBuilder.h.

References llvm::LandingPadInst::Create(), and Insert().

◆ CreateLaunderInvariantGroup()

Value * IRBuilderBase::CreateLaunderInvariantGroup ( Value Ptr)

Create a launder.invariant.group intrinsic call.

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

Definition at line 1005 of file IRBuilder.cpp.

References assert(), BB, CreateBitCast(), CreateCall(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), getInt8PtrTy(), llvm::FunctionType::getParamType(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Function::getReturnType(), llvm::Value::getType(), and M.

Referenced by simplifyInvariantGroupIntrinsic().

◆ CreateLifetimeEnd()

CallInst * IRBuilderBase::CreateLifetimeEnd ( Value Ptr,
ConstantInt Size = nullptr 
)

Create a lifetime.end intrinsic.

If the pointer isn't i8* it will be converted.

Definition at line 440 of file IRBuilder.cpp.

References assert(), BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt64(), getInt64Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), M, and llvm::Check::Size.

Referenced by llvm::InlineFunction().

◆ CreateLifetimeStart()

CallInst * IRBuilderBase::CreateLifetimeStart ( Value Ptr,
ConstantInt Size = nullptr 
)

Create a lifetime.start intrinsic.

If the pointer isn't i8* it will be converted.

Definition at line 424 of file IRBuilder.cpp.

References assert(), BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), getInt64(), getInt64Ty(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), M, and llvm::Check::Size.

◆ CreateLoad() [1/3]

LoadInst* llvm::IRBuilderBase::CreateLoad ( Type Ty,
Value Ptr,
bool  isVolatile,
const Twine Name = "" 
)
inline

Definition at line 1664 of file IRBuilder.h.

References CreateAlignedLoad().

◆ CreateLoad() [2/3]

LoadInst* llvm::IRBuilderBase::CreateLoad ( Type Ty,
Value Ptr,
const char *  Name 
)
inline

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

Definition at line 1656 of file IRBuilder.h.

References CreateAlignedLoad().

Referenced by doPromotion(), llvm::orc::IRSpeculationLayer::emit(), and LLVM_ATTRIBUTE_DEPRECATED().

◆ CreateLoad() [3/3]

LoadInst* llvm::IRBuilderBase::CreateLoad ( Type Ty,
Value Ptr,
const Twine Name = "" 
)
inline

Definition at line 1660 of file IRBuilder.h.

References CreateAlignedLoad().

◆ CreateLogicalAnd()

Value* llvm::IRBuilderBase::CreateLogicalAnd ( Value Cond1,
Value Cond2,
const Twine Name = "" 
)
inline

◆ CreateLogicalOr()

Value* llvm::IRBuilderBase::CreateLogicalOr ( Value Cond1,
Value Cond2,
const Twine Name = "" 
)
inline

◆ CreateLShr() [1/3]

Value* llvm::IRBuilderBase::CreateLShr ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1328 of file IRBuilder.h.

References CreateLShr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateLShr() [2/3]

Value* llvm::IRBuilderBase::CreateLShr ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1333 of file IRBuilder.h.

References CreateLShr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateLShr() [3/3]

Value* llvm::IRBuilderBase::CreateLShr ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateMaskedGather()

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

Create a call to Masked Gather intrinsic.

Create a call to a Masked Gather intrinsic.

Ty - vector type to gather Ptrs - vector of pointers for loading Align - alignment for one element Mask - vector of booleans which indicates what vector lanes should be accessed in memory PassThru - pass-through value that is used to fill the masked-off lanes of the result Name - name of the result variable

Definition at line 558 of file IRBuilder.cpp.

References assert(), Context, llvm::VectorType::get(), llvm::UndefValue::get(), llvm::Constant::getAllOnesValue(), llvm::Type::getInt1Ty(), getInt32(), llvm::Value::getType(), llvm::BitmaskEnumDetail::Mask(), and llvm::Align::value().

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

◆ CreateMaskedLoad()

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

Create a call to Masked Load intrinsic.

Create a call to a Masked Load intrinsic.

Ty - vector type to load Ptr - base pointer for the load Alignment - alignment of the source location Mask - vector of booleans which indicates what vector lanes should be accessed in memory PassThru - pass-through value that is used to fill the masked-off lanes of the result Name - name of the result variable

Definition at line 504 of file IRBuilder.cpp.

References assert(), llvm::UndefValue::get(), getInt32(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm::BitmaskEnumDetail::Mask(), and llvm::Align::value().

Referenced by simplifyX86MaskedLoad(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ CreateMaskedScatter()

CallInst * IRBuilderBase::CreateMaskedScatter ( Value Data,
Value Ptrs,
Align  Alignment,
Value Mask = nullptr 
)

Create a call to Masked Scatter intrinsic.

Create a call to a Masked Scatter intrinsic.

Data - data to be stored, Ptrs - the vector of pointers, where the Data elements should be stored Align - alignment for one element Mask - vector of booleans which indicates what vector lanes should be accessed in memory

Definition at line 594 of file IRBuilder.cpp.

References assert(), Context, llvm::Data, llvm::VectorType::get(), llvm::Constant::getAllOnesValue(), llvm::Type::getInt1Ty(), getInt32(), llvm::Value::getType(), llvm::BitmaskEnumDetail::Mask(), and llvm::Align::value().

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

◆ CreateMaskedStore()

CallInst * IRBuilderBase::CreateMaskedStore ( Value Val,
Value Ptr,
Align  Alignment,
Value Mask 
)

Create a call to Masked Store intrinsic.

Create a call to a Masked Store intrinsic.

Val - data to be stored, Ptr - base pointer for the store Alignment - alignment of the destination location Mask - vector of booleans which indicates what vector lanes should be accessed in memory

Definition at line 525 of file IRBuilder.cpp.

References assert(), getInt32(), llvm::Value::getType(), llvm::Type::isVectorTy(), llvm::BitmaskEnumDetail::Mask(), and llvm::Align::value().

Referenced by simplifyX86MaskedStore(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().

◆ CreateMaximum()

CallInst* llvm::IRBuilderBase::CreateMaximum ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Create call to the maximum intrinsic.

Definition at line 907 of file IRBuilder.h.

References CreateBinaryIntrinsic(), and maximum.

◆ CreateMaxNum()

CallInst* llvm::IRBuilderBase::CreateMaxNum ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Create call to the maxnum intrinsic.

Definition at line 897 of file IRBuilder.h.

References CreateBinaryIntrinsic(), and llvm::maxnum().

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateMemCpy() [1/2]

CallInst* llvm::IRBuilderBase::CreateMemCpy ( Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
uint64_t  Size,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)
inline

Create and insert a memcpy between the specified pointers.

If the pointers aren't i8*, they will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.

Definition at line 622 of file IRBuilder.h.

References getInt64(), and llvm::Check::Size.

◆ CreateMemCpy() [2/2]

CallInst* llvm::IRBuilderBase::CreateMemCpy ( Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
Value Size,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)
inline

Definition at line 639 of file IRBuilder.h.

References CreateMemTransferInst(), memcpy(), and llvm::Check::Size.

◆ CreateMemCpyInline()

CallInst * IRBuilderBase::CreateMemCpyInline ( Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
Value Size,
bool  IsVolatile = false,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

◆ CreateMemMove() [1/2]

CallInst* llvm::IRBuilderBase::CreateMemMove ( Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
uint64_t  Size,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)
inline

Definition at line 670 of file IRBuilder.h.

References getInt64(), and llvm::Check::Size.

◆ CreateMemMove() [2/2]

CallInst * IRBuilderBase::CreateMemMove ( Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
Value Size,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

◆ CreateMemSet() [1/2]

CallInst* llvm::IRBuilderBase::CreateMemSet ( Value Ptr,
Value Val,
uint64_t  Size,
MaybeAlign  Align,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)
inline

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

If the pointer isn't an i8*, it will be converted. If a TBAA tag is specified, it will be added to the instruction. Likewise with alias.scope and noalias tags.

Definition at line 580 of file IRBuilder.h.

References getInt64(), and llvm::Check::Size.

◆ CreateMemSet() [2/2]

CallInst * IRBuilderBase::CreateMemSet ( Value Ptr,
Value Val,
Value Size,
MaybeAlign  Align,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

◆ CreateMemTransferInst()

CallInst * IRBuilderBase::CreateMemTransferInst ( Intrinsic::ID  IntrID,
Value Dst,
MaybeAlign  DstAlign,
Value Src,
MaybeAlign  SrcAlign,
Value Size,
bool  isVolatile = false,
MDNode TBAATag = nullptr,
MDNode TBAAStructTag = nullptr,
MDNode ScopeTag = nullptr,
MDNode NoAliasTag = nullptr 
)

◆ CreateMinimum()

CallInst* llvm::IRBuilderBase::CreateMinimum ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Create call to the minimum intrinsic.

Definition at line 902 of file IRBuilder.h.

References CreateBinaryIntrinsic(), and minimum.

◆ CreateMinNum()

CallInst* llvm::IRBuilderBase::CreateMinNum ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Create call to the minnum intrinsic.

Definition at line 892 of file IRBuilder.h.

References CreateBinaryIntrinsic(), and llvm::minnum().

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic().

◆ CreateMul()

Value* llvm::IRBuilderBase::CreateMul ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateMulReduce()

CallInst * IRBuilderBase::CreateMulReduce ( Value Src)

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

Definition at line 388 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateNAryOp()

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

Create either a UnaryOperator or BinaryOperator depending on Opc.

Correct number of operands must be passed accordingly.

Definition at line 869 of file IRBuilder.cpp.

References assert(), CreateBinOp(), CreateUnOp(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isUnaryOp(), llvm_unreachable, and llvm::ArrayRef< T >::size().

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

◆ CreateNeg()

Value* llvm::IRBuilderBase::CreateNeg ( Value V,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateNoAliasScopeDeclaration() [1/2]

Instruction* llvm::IRBuilderBase::CreateNoAliasScopeDeclaration ( MDNode ScopeTag)
inline

◆ CreateNoAliasScopeDeclaration() [2/2]

Instruction * IRBuilderBase::CreateNoAliasScopeDeclaration ( Value Scope)

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

Definition at line 488 of file IRBuilder.cpp.

References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getModule(), and M.

Referenced by AddAliasScopeMetadata(), and CreateNoAliasScopeDeclaration().

◆ CreateNot()

Value* llvm::IRBuilderBase::CreateNot ( Value V,
const Twine Name = "" 
)
inline

◆ CreateNSWAdd()

Value* llvm::IRBuilderBase::CreateNSWAdd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1217 of file IRBuilder.h.

References CreateAdd().

◆ CreateNSWMul()

Value* llvm::IRBuilderBase::CreateNSWMul ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1251 of file IRBuilder.h.

References CreateMul().

◆ CreateNSWNeg()

Value* llvm::IRBuilderBase::CreateNSWNeg ( Value V,
const Twine Name = "" 
)
inline

Definition at line 1586 of file IRBuilder.h.

References CreateNeg().

◆ CreateNSWSub()

Value* llvm::IRBuilderBase::CreateNSWSub ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1234 of file IRBuilder.h.

References CreateSub().

◆ CreateNUWAdd()

Value* llvm::IRBuilderBase::CreateNUWAdd ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1221 of file IRBuilder.h.

References CreateAdd().

◆ CreateNUWMul()

Value* llvm::IRBuilderBase::CreateNUWMul ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1255 of file IRBuilder.h.

References CreateMul().

◆ CreateNUWNeg()

Value* llvm::IRBuilderBase::CreateNUWNeg ( Value V,
const Twine Name = "" 
)
inline

Definition at line 1590 of file IRBuilder.h.

References CreateNeg().

◆ CreateNUWSub()

Value* llvm::IRBuilderBase::CreateNUWSub ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1238 of file IRBuilder.h.

References CreateSub().

◆ CreateOr() [1/4]

Value* llvm::IRBuilderBase::CreateOr ( ArrayRef< Value * >  Ops)
inline

◆ CreateOr() [2/4]

Value* llvm::IRBuilderBase::CreateOr ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1394 of file IRBuilder.h.

References CreateOr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateOr() [3/4]

Value* llvm::IRBuilderBase::CreateOr ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1398 of file IRBuilder.h.

References CreateOr(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateOr() [4/4]

Value* llvm::IRBuilderBase::CreateOr ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateOrReduce()

CallInst * IRBuilderBase::CreateOrReduce ( Value Src)

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

Definition at line 396 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreatePHI()

PHINode* llvm::IRBuilderBase::CreatePHI ( Type Ty,
unsigned  NumReservedValues,
const Twine Name = "" 
)
inline

◆ CreatePointerBitCastOrAddrSpaceCast()

Value* llvm::IRBuilderBase::CreatePointerBitCastOrAddrSpaceCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreatePointerCast()

Value* llvm::IRBuilderBase::CreatePointerCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreatePreserveArrayAccessIndex()

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

◆ CreatePreserveStructAccessIndex()

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

◆ CreatePreserveUnionAccessIndex()

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

◆ CreatePtrDiff()

Value * IRBuilderBase::CreatePtrDiff ( Value LHS,
Value RHS,
const Twine Name = "" 
)

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 992 of file IRBuilder.cpp.

References assert(), Context, CreateExactSDiv(), CreatePtrToInt(), CreateSub(), llvm::Type::getInt64Ty(), llvm::ConstantExpr::getSizeOf(), and llvm::Value::getType().

◆ CreatePtrToInt()

Value* llvm::IRBuilderBase::CreatePtrToInt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateResume()

ResumeInst* llvm::IRBuilderBase::CreateResume ( Value Exn)
inline

Definition at line 1103 of file IRBuilder.h.

References llvm::ResumeInst::Create(), and Insert().

◆ CreateRet()

ReturnInst* llvm::IRBuilderBase::CreateRet ( Value V)
inline

Create a 'ret <val>' instruction.

Definition at line 966 of file IRBuilder.h.

References Context, llvm::ReturnInst::Create(), and Insert().

◆ CreateRetVoid()

ReturnInst* llvm::IRBuilderBase::CreateRetVoid ( )
inline

Create a 'ret void' instruction.

Definition at line 961 of file IRBuilder.h.

References Context, llvm::ReturnInst::Create(), and Insert().

◆ CreateSDiv()

Value* llvm::IRBuilderBase::CreateSDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

Definition at line 1273 of file IRBuilder.h.

References llvm::IRBuilderFolder::CreateSDiv(), Folder, and Insert().

Referenced by CreateExactSDiv().

◆ CreateSelect()

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

◆ CreateSExt()

Value* llvm::IRBuilderBase::CreateSExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateSExtOrBitCast()

Value* llvm::IRBuilderBase::CreateSExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateSExtOrTrunc()

Value* llvm::IRBuilderBase::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 2046 of file IRBuilder.h.

References assert(), CreateSExt(), CreateTrunc(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), and llvm::Type::isIntOrIntVectorTy().

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

◆ CreateShl() [1/3]

Value* llvm::IRBuilderBase::CreateShl ( Value LHS,
const APInt RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

Definition at line 1306 of file IRBuilder.h.

References CreateShl(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateShl() [2/3]

Value* llvm::IRBuilderBase::CreateShl ( Value LHS,
uint64_t  RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

Definition at line 1312 of file IRBuilder.h.

References CreateShl(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateShl() [3/3]

Value* llvm::IRBuilderBase::CreateShl ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateShuffleVector() [1/3]

Value* llvm::IRBuilderBase::CreateShuffleVector ( Value V,
ArrayRef< int Mask,
const Twine Name = "" 
)
inline

Create a unary shuffle.

The second vector operand of the IR instruction is poison.

Definition at line 2492 of file IRBuilder.h.

References CreateShuffleVector(), llvm::PoisonValue::get(), llvm::Value::getType(), and llvm::BitmaskEnumDetail::Mask().

◆ CreateShuffleVector() [2/3]

Value* llvm::IRBuilderBase::CreateShuffleVector ( Value V1,
Value V2,
ArrayRef< int Mask,
const Twine Name = "" 
)
inline

See class ShuffleVectorInst for a description of the mask representation.

Definition at line 2482 of file IRBuilder.h.

References llvm::IRBuilderFolder::CreateShuffleVector(), Folder, Insert(), llvm::BitmaskEnumDetail::Mask(), and llvm::NVPTX::PTXLdStInstCode::V2.

◆ CreateShuffleVector() [3/3]

Value* llvm::IRBuilderBase::CreateShuffleVector ( Value V1,
Value V2,
Value Mask,
const Twine Name = "" 
)
inline

◆ CreateSIToFP()

Value* llvm::IRBuilderBase::CreateSIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateSRem()

Value* llvm::IRBuilderBase::CreateSRem ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1292 of file IRBuilder.h.

References Insert().

◆ CreateStepVector()

Value * IRBuilderBase::CreateStepVector ( Type DstType,
const Twine Name = "" 
)

◆ CreateStore()

StoreInst* llvm::IRBuilderBase::CreateStore ( Value Val,
Value Ptr,
bool  isVolatile = false 
)
inline

◆ CreateStripInvariantGroup()

Value * IRBuilderBase::CreateStripInvariantGroup ( Value Ptr)

Create a strip.invariant.group intrinsic call.

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

Definition at line 1029 of file IRBuilder.cpp.

References assert(), BB, CreateBitCast(), CreateCall(), llvm::Intrinsic::getDeclaration(), llvm::Function::getFunctionType(), getInt8PtrTy(), llvm::FunctionType::getParamType(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Function::getReturnType(), llvm::Value::getType(), and M.

Referenced by simplifyInvariantGroupIntrinsic().

◆ CreateStructGEP()

Value* llvm::IRBuilderBase::CreateStructGEP ( Type Ty,
Value Ptr,
unsigned  Idx,
const Twine Name = "" 
)
inline

Definition at line 1985 of file IRBuilder.h.

References CreateConstInBoundsGEP2_32().

◆ CreateSub()

Value* llvm::IRBuilderBase::CreateSub ( Value LHS,
Value RHS,
const Twine Name = "",
bool  HasNUW = false,
bool  HasNSW = false 
)
inline

◆ CreateSwitch()

SwitchInst* llvm::IRBuilderBase::CreateSwitch ( Value V,
BasicBlock Dest,
unsigned  NumCases = 10,
MDNode BranchWeights = nullptr,
MDNode Unpredictable = nullptr 
)
inline

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

Definition at line 1014 of file IRBuilder.h.

References llvm::SwitchInst::Create(), and Insert().

◆ CreateTrunc()

Value* llvm::IRBuilderBase::CreateTrunc ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateTruncOrBitCast()

Value* llvm::IRBuilderBase::CreateTruncOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateUDiv()

Value* llvm::IRBuilderBase::CreateUDiv ( Value LHS,
Value RHS,
const Twine Name = "",
bool  isExact = false 
)
inline

◆ CreateUIToFP()

Value* llvm::IRBuilderBase::CreateUIToFP ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateUnaryIntrinsic()

CallInst * IRBuilderBase::CreateUnaryIntrinsic ( Intrinsic::ID  ID,
Value V,
Instruction FMFSource = nullptr,
const Twine Name = "" 
)

Create a call to intrinsic ID with 1 operand which is mangled on its type.

Definition at line 823 of file IRBuilder.cpp.

References BB, createCallHelper(), llvm::Intrinsic::getDeclaration(), llvm::BasicBlock::getModule(), llvm::Value::getType(), and M.

Referenced by foldCtpop().

◆ CreateUnOp()

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

◆ CreateUnreachable()

UnreachableInst* llvm::IRBuilderBase::CreateUnreachable ( )
inline

Definition at line 1134 of file IRBuilder.h.

References Context, and Insert().

Referenced by llvm::VPBasicBlock::execute(), and llvm::VPlan::execute().

◆ CreateURem()

Value* llvm::IRBuilderBase::CreateURem ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

◆ CreateVAArg()

VAArgInst* llvm::IRBuilderBase::CreateVAArg ( Value List,
Type Ty,
const Twine Name = "" 
)
inline

Definition at line 2434 of file IRBuilder.h.

References Insert(), and List.

◆ CreateVectorReverse()

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

◆ CreateVectorSplat() [1/2]

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

◆ CreateVectorSplat() [2/2]

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

◆ CreateVectorSplice()

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

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

If the immediate is positive, a vector is extracted from concat(V1, V2), starting at Imm. If the immediate is negative, we extract -Imm elements from V1 and the remaining elements from V2. Imm is a signed integer in the range -VL <= Imm < VL (where VL is the runtime vector length of the source/result vector)

Definition at line 1070 of file IRBuilder.cpp.

References assert(), BB, llvm::CallInst::Create(), CreateShuffleVector(), F, llvm::Intrinsic::getDeclaration(), getInt32(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), I, Insert(), M, llvm::BitmaskEnumDetail::Mask(), and llvm::NVPTX::PTXLdStInstCode::V2.

◆ CreateVScale()

Value * IRBuilderBase::CreateVScale ( Constant Scaling,
const Twine Name = "" 
)

Create a call to llvm.vscale, multiplied by Scaling.

The type of VScale will be the same type as that of Scaling.

Definition at line 83 of file IRBuilder.cpp.

References assert(), createCallHelper(), CreateMul(), llvm::Intrinsic::getDeclaration(), GetInsertBlock(), llvm::BasicBlock::getParent(), llvm::GlobalValue::getParent(), llvm::Value::getType(), isZero(), and M.

◆ CreateXor() [1/3]

Value* llvm::IRBuilderBase::CreateXor ( Value LHS,
const APInt RHS,
const Twine Name = "" 
)
inline

Definition at line 1415 of file IRBuilder.h.

References CreateXor(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateXor() [2/3]

Value* llvm::IRBuilderBase::CreateXor ( Value LHS,
uint64_t  RHS,
const Twine Name = "" 
)
inline

Definition at line 1419 of file IRBuilder.h.

References CreateXor(), llvm::ConstantInt::get(), and llvm::Value::getType().

◆ CreateXor() [3/3]

Value* llvm::IRBuilderBase::CreateXor ( Value LHS,
Value RHS,
const Twine Name = "" 
)
inline

Definition at line 1410 of file IRBuilder.h.

References Insert().

Referenced by CreateXor().

◆ CreateXorReduce()

CallInst * IRBuilderBase::CreateXorReduce ( Value Src)

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

Definition at line 400 of file IRBuilder.cpp.

References getReductionIntrinsic().

◆ CreateZExt()

Value* llvm::IRBuilderBase::CreateZExt ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateZExtOrBitCast()

Value* llvm::IRBuilderBase::CreateZExtOrBitCast ( Value V,
Type DestTy,
const Twine Name = "" 
)
inline

◆ CreateZExtOrTrunc()

Value* llvm::IRBuilderBase::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 2031 of file IRBuilder.h.

References assert(), CreateTrunc(), CreateZExt(), llvm::Type::getScalarSizeInBits(), llvm::Value::getType(), and llvm::Type::isIntOrIntVectorTy().

Referenced by llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), and llvm::ObjectSizeOffsetEvaluator::visitCallBase().

◆ getBFloatTy()

Type* llvm::IRBuilderBase::getBFloatTy ( )
inline

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

Definition at line 541 of file IRBuilder.h.

References Context, and llvm::Type::getBFloatTy().

◆ getContext()

LLVMContext& llvm::IRBuilderBase::getContext ( ) const
inline

Definition at line 180 of file IRBuilder.h.

References Context.

Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), and SegmentOffset().

◆ getCurrentDebugLocation()

DebugLoc llvm::IRBuilderBase::getCurrentDebugLocation ( ) const
inline

Get location information used by debugging information.

Definition at line 222 of file IRBuilder.h.

◆ getCurrentFunctionReturnType()

Type * IRBuilderBase::getCurrentFunctionReturnType ( ) const

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

Definition at line 58 of file IRBuilder.cpp.

References assert(), BB, llvm::BasicBlock::getParent(), and llvm::Function::getReturnType().

Referenced by CreateAggregateRet().

◆ getDefaultConstrainedExcept()

fp::ExceptionBehavior llvm::IRBuilderBase::getDefaultConstrainedExcept ( )
inline

Get the exception handling used with constrained floating point.

Definition at line 335 of file IRBuilder.h.

References DefaultConstrainedExcept.

◆ getDefaultConstrainedRounding()

RoundingMode llvm::IRBuilderBase::getDefaultConstrainedRounding ( )
inline

Get the rounding mode handling used with constrained floating point.

Definition at line 340 of file IRBuilder.h.

References DefaultConstrainedRounding.

◆ getDefaultFPMathTag()

MDNode* llvm::IRBuilderBase::getDefaultFPMathTag ( ) const
inline

Get the floating point math metadata being used.

Definition at line 291 of file IRBuilder.h.

References DefaultFPMathTag.

◆ getDoubleTy()

Type* llvm::IRBuilderBase::getDoubleTy ( )
inline

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

Definition at line 551 of file IRBuilder.h.

References Context, and llvm::Type::getDoubleTy().

◆ getFalse()

ConstantInt* llvm::IRBuilderBase::getFalse ( )
inline

Get the constant value for i1 false.

Definition at line 463 of file IRBuilder.h.

References Context, and llvm::ConstantInt::getFalse().

Referenced by llvm::InnerLoopVectorizer::emitMinimumIterationCountCheck(), and foldCtpop().

◆ getFastMathFlags() [1/2]

FastMathFlags& llvm::IRBuilderBase::getFastMathFlags ( )
inline

Definition at line 296 of file IRBuilder.h.

References FMF.

◆ getFastMathFlags() [2/2]

FastMathFlags llvm::IRBuilderBase::getFastMathFlags ( ) const
inline

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

Definition at line 294 of file IRBuilder.h.

References FMF.

◆ getFloatTy()

Type* llvm::IRBuilderBase::getFloatTy ( )
inline

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

Definition at line 546 of file IRBuilder.h.

References Context, and llvm::Type::getFloatTy().

◆ getHalfTy()

Type* llvm::IRBuilderBase::getHalfTy ( )
inline

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

Definition at line 536 of file IRBuilder.h.

References Context, and llvm::Type::getHalfTy().

◆ GetInsertBlock()

BasicBlock* llvm::IRBuilderBase::GetInsertBlock ( ) const
inline

◆ GetInsertPoint()

BasicBlock::iterator llvm::IRBuilderBase::GetInsertPoint ( ) const
inline

◆ getInt()

ConstantInt* llvm::IRBuilderBase::getInt ( const APInt AI)
inline

Get a constant integer value.

Definition at line 494 of file IRBuilder.h.

References Context, and llvm::ConstantInt::get().

◆ getInt1()

ConstantInt* llvm::IRBuilderBase::getInt1 ( bool  V)
inline

Get a constant value representing either true or false.

Definition at line 453 of file IRBuilder.h.

References llvm::ConstantInt::get(), and getInt1Ty().

Referenced by createFFSIntrinsic(), CreateMemCpyInline(), CreateMemMove(), CreateMemSet(), and CreateMemTransferInst().

◆ getInt128Ty()

IntegerType* llvm::IRBuilderBase::getInt128Ty ( )
inline

Fetch the type representing a 128-bit integer.

Definition at line 528 of file IRBuilder.h.

References Context, and llvm::Type::getInt128Ty().

◆ getInt16()

ConstantInt* llvm::IRBuilderBase::getInt16 ( uint16_t  C)
inline

Get a constant 16-bit value.

Definition at line 473 of file IRBuilder.h.

References llvm::ConstantInt::get(), and getInt16Ty().

◆ getInt16Ty()

IntegerType* llvm::IRBuilderBase::getInt16Ty ( )
inline

Fetch the type representing a 16-bit integer.

Definition at line 513 of file IRBuilder.h.

References Context, and llvm::Type::getInt16Ty().

Referenced by getInt16().

◆ getInt1Ty()

IntegerType* llvm::IRBuilderBase::getInt1Ty ( )
inline

Fetch the type representing a single bit.

Definition at line 503 of file IRBuilder.h.

References Context, and llvm::Type::getInt1Ty().

Referenced by CreateAssumption(), getInt1(), and llvm::X86TTIImpl::instCombineIntrinsic().

◆ getInt32()

ConstantInt* llvm::IRBuilderBase::getInt32 ( uint32_t  C)
inline

◆ getInt32Ty()

IntegerType* llvm::IRBuilderBase::getInt32Ty ( )
inline

◆ getInt64()

ConstantInt* llvm::IRBuilderBase::getInt64 ( uint64_t  C)
inline

◆ getInt64Ty()

IntegerType* llvm::IRBuilderBase::getInt64Ty ( )
inline

Fetch the type representing a 64-bit integer.

Definition at line 523 of file IRBuilder.h.

References Context, and llvm::Type::getInt64Ty().

Referenced by CreateInvariantStart(), CreateLifetimeEnd(), CreateLifetimeStart(), and getInt64().

◆ getInt8()

ConstantInt* llvm::IRBuilderBase::getInt8 ( uint8_t  C)
inline

Get a constant 8-bit value.

Definition at line 468 of file IRBuilder.h.

References llvm::ConstantInt::get(), and getInt8Ty().

Referenced by llvm::HexagonTargetLowering::LowerConstantPool().

◆ getInt8PtrTy()

PointerType* llvm::IRBuilderBase::getInt8PtrTy ( unsigned  AddrSpace = 0)
inline

Fetch the type representing a pointer to an 8-bit integer value.

Definition at line 561 of file IRBuilder.h.

References Context, and llvm::Type::getInt8PtrTy().

Referenced by appendToGlobalArray(), constructPointer(), CreateLaunderInvariantGroup(), CreateStripInvariantGroup(), llvm::UpgradeGlobalVariable(), and UseTlsOffset().

◆ getInt8Ty()

IntegerType* llvm::IRBuilderBase::getInt8Ty ( )
inline

Fetch the type representing an 8-bit integer.

Definition at line 508 of file IRBuilder.h.

References Context, and llvm::Type::getInt8Ty().

Referenced by constructPointer(), getInt8(), and UseTlsOffset().

◆ getIntN()

ConstantInt* llvm::IRBuilderBase::getIntN ( unsigned  N,
uint64_t  C 
)
inline

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

Definition at line 489 of file IRBuilder.h.

References llvm::ConstantInt::get(), getIntNTy(), and N.

Referenced by getAddrSizeInt().

◆ getIntNTy()

IntegerType* llvm::IRBuilderBase::getIntNTy ( unsigned  N)
inline

Fetch the type representing an N-bit integer.

Definition at line 531 of file IRBuilder.h.

References Context, llvm::Type::getIntNTy(), and N.

Referenced by getAddrIntType(), getIntN(), and llvm::GCNTTIImpl::instCombineIntrinsic().

◆ getIntPtrTy()

IntegerType* llvm::IRBuilderBase::getIntPtrTy ( const DataLayout DL,
unsigned  AddrSpace = 0 
)
inline

Fetch the type representing a pointer to an integer value.

Definition at line 566 of file IRBuilder.h.

References Context, and DL.

Referenced by CreateAlignmentAssumption().

◆ getIsFPConstrained()

bool llvm::IRBuilderBase::getIsFPConstrained ( )
inline

Query for the use of constrained floating point math.

Definition at line 314 of file IRBuilder.h.

References IsFPConstrained.

◆ getTrue()

ConstantInt* llvm::IRBuilderBase::getTrue ( )
inline

◆ getVoidTy()

Type* llvm::IRBuilderBase::getVoidTy ( )
inline

Fetch the type representing void.

Definition at line 556 of file IRBuilder.h.

References Context, and llvm::Type::getVoidTy().

Referenced by appendToGlobalArray(), and llvm::createSanitizerCtorAndInitFunctions().

◆ Insert() [1/3]

Constant* llvm::IRBuilderBase::Insert ( Constant C,
const Twine = "" 
) const
inline

No-op overload to handle constants.

Definition at line 156 of file IRBuilder.h.

◆ Insert() [2/3]

template<typename InstTy >
InstTy* llvm::IRBuilderBase::Insert ( InstTy *  I,
const Twine Name = "" 
) const
inline

Insert and return the specified instruction.

Definition at line 149 of file IRBuilder.h.

References AddMetadataToInst(), BB, I, Inserter, llvm::IRBuilderDefaultInserter::InsertHelper(), and InsertPt.

Referenced by llvm::addRuntimeChecks(), CreateAdd(), CreateAggregateRet(), CreateAlignedLoad(), CreateAlignedStore(), CreateAlloca(), CreateAnd(), CreateAShr(), CreateAtomicCmpXchg(), CreateAtomicRMW(), CreateBinOp(), CreateBr(), CreateCall(), CreateCallBr(), CreateCast(), CreateCatchPad(), CreateCatchRet(), CreateCatchSwitch(), CreateCleanupPad(), CreateCleanupRet(), CreateCondBr(), CreateConstGEP1_32(), CreateConstGEP1_64(), CreateConstGEP2_32(), CreateConstGEP2_64(), CreateConstInBoundsGEP1_32(), CreateConstInBoundsGEP1_64(), CreateConstInBoundsGEP2_32(), CreateConstInBoundsGEP2_64(), CreateExtractElement(), CreateExtractValue(), CreateFAdd(), CreateFAddFMF(), CreateFDiv(), CreateFDivFMF(), CreateFence(), CreateFMul(), CreateFMulFMF(), CreateFNeg(), CreateFNegFMF(), CreateFPCast(), CreateFreeze(), CreateFRem(), CreateFRemFMF(), CreateFSub(), CreateFSubFMF(), CreateGEP(), CreateICmp(), CreateInBoundsGEP(), CreateIndirectBr(), CreateInsertElement(), CreateInsertValue(), CreateIntCast(), CreateInvoke(), CreateLandingPad(), CreateLShr(), CreateMul(), CreateNeg(), CreateNot(), CreateOr(), CreatePHI(), CreatePointerBitCastOrAddrSpaceCast(), CreatePointerCast(), CreateResume(), CreateRet(), CreateRetVoid(), CreateSDiv(), CreateSelect(), CreateSExtOrBitCast(), CreateShl(), CreateShuffleVector(), CreateSRem(), CreateSub(), CreateSwitch(), CreateTruncOrBitCast(), CreateUDiv(), CreateUnOp(), CreateUnreachable(), CreateURem(), CreateVAArg(), CreateVectorReverse(), CreateVectorSplice(), CreateXor(), CreateZExtOrBitCast(), Insert(), llvm::Negator::Negate(), llvm::InnerLoopVectorizer::scalarizeInstruction(), and llvm::InnerLoopVectorizer::widenGEP().

◆ Insert() [3/3]

Value* llvm::IRBuilderBase::Insert ( Value V,
const Twine Name = "" 
) const
inline

Definition at line 160 of file IRBuilder.h.

References assert(), I, and Insert().

◆ LLVM_ATTRIBUTE_DEPRECATED() [1/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateAlignedLoadValue *Ptr, MaybeAlign Align, bool isVolatile, const Twine &Name="",
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [2/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateAlignedLoadValue *Ptr, MaybeAlign Align, const char *Name,
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [3/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateAlignedLoadValue *Ptr, MaybeAlign Align, const Twine &Name="",
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [4/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateLoadValue *Ptr, bool isVolatile, const Twine &Name="",
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [5/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateLoadValue *Ptr, const char *Name,
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [6/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( LoadInst CreateLoadValue *Ptr, const Twine &Name="",
"Use the version that explicitly specifies the " "loaded type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [7/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( Value CreateConstGEP1_32Value *Ptr, unsigned Idx0, const Twine &Name="",
"Use the version with explicit element type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [8/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( Value CreateConstGEP1_64Value *Ptr, uint64_t Idx0, const Twine &Name="",
"Use the version with explicit element type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [9/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( Value CreateConstGEP2_64Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="",
"Use the version with explicit element type instead"   
)
inline

◆ LLVM_ATTRIBUTE_DEPRECATED() [10/15]

llvm::IRBuilderBase::LLVM_ATTRIBUTE_DEPRECATED ( Value CreateConstInBoundsGEP1_64Value *Ptr, uint64_t Idx0, const Twine &Name="",