LLVM 20.0.0git
|
Common base class shared among various IRBuilders. More...
#include "llvm/IR/IRBuilder.h"
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. | |
Constant * | Insert (Constant *C, const Twine &="") const |
No-op overload to handle constants. | |
Value * | Insert (Value *V, const Twine &Name="") const |
void | ClearInsertionPoint () |
Clear the insertion point: created instructions will not be inserted into a block. | |
BasicBlock * | GetInsertBlock () const |
BasicBlock::iterator | GetInsertPoint () const |
LLVMContext & | getContext () const |
void | SetInsertPoint (BasicBlock *TheBB) |
This specifies that created instructions should be appended to the end of the specified block. | |
void | SetInsertPoint (Instruction *I) |
This specifies that created instructions should be inserted before the specified instruction. | |
void | SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP) |
This specifies that created instructions should be inserted at the specified point. | |
void | SetInsertPoint (BasicBlock::iterator IP) |
This specifies that created instructions should be inserted at the specified point, but also requires that IP is dereferencable. | |
void | SetInsertPointPastAllocas (Function *F) |
This specifies that created instructions should inserted at the beginning end of the specified function, but after already existing static alloca instructions that are at the start. | |
void | SetCurrentDebugLocation (DebugLoc L) |
Set location information used by debugging information. | |
void | SetNoSanitizeMetadata () |
Set nosanitize metadata. | |
void | CollectMetadataToCopy (Instruction *Src, ArrayRef< unsigned > MetadataKinds) |
Collect metadata with IDs MetadataKinds from Src which should be added to all created instructions. | |
DebugLoc | getCurrentDebugLocation () const |
Get location information used by debugging information. | |
void | SetInstDebugLocation (Instruction *I) const |
If this builder has a current debug location, set it on the specified instruction. | |
void | AddMetadataToInst (Instruction *I) const |
Add all entries in MetadataToCopy to I . | |
Type * | getCurrentFunctionReturnType () const |
Get the return type of the current function that we're emitting into. | |
InsertPoint | saveIP () const |
Returns the current insert point. | |
InsertPoint | saveAndClearIP () |
Returns the current insert point, clearing it in the process. | |
void | restoreIP (InsertPoint IP) |
Sets the current insert point to a previously-saved location. | |
MDNode * | getDefaultFPMathTag () const |
Get the floating point math metadata being used. | |
FastMathFlags | getFastMathFlags () const |
Get the flags to be applied to created floating point ops. | |
FastMathFlags & | getFastMathFlags () |
void | clearFastMathFlags () |
Clear the fast-math flags. | |
void | setDefaultFPMathTag (MDNode *FPMathTag) |
Set the floating point math metadata to be used. | |
void | setFastMathFlags (FastMathFlags NewFMF) |
Set the fast-math flags to be used with generated fp-math operators. | |
void | setIsFPConstrained (bool IsCon) |
Enable/Disable use of constrained floating point math. | |
bool | getIsFPConstrained () |
Query for the use of constrained floating point math. | |
void | setDefaultConstrainedExcept (fp::ExceptionBehavior NewExcept) |
Set the exception handling to be used with constrained floating point. | |
void | setDefaultConstrainedRounding (RoundingMode NewRounding) |
Set the rounding mode handling to be used with constrained floating point. | |
fp::ExceptionBehavior | getDefaultConstrainedExcept () |
Get the exception handling used with constrained floating point. | |
RoundingMode | getDefaultConstrainedRounding () |
Get the rounding mode handling used with constrained floating point. | |
void | setConstrainedFPFunctionAttr () |
void | setConstrainedFPCallAttr (CallBase *I) |
void | setDefaultOperandBundles (ArrayRef< OperandBundleDef > OpBundles) |
GlobalVariable * | CreateGlobalString (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr, bool AddNull=true) |
Make a new global variable with initializer type i8*. | |
ConstantInt * | getInt1 (bool V) |
Get a constant value representing either true or false. | |
ConstantInt * | getTrue () |
Get the constant value for i1 true. | |
ConstantInt * | getFalse () |
Get the constant value for i1 false. | |
ConstantInt * | getInt8 (uint8_t C) |
Get a constant 8-bit value. | |
ConstantInt * | getInt16 (uint16_t C) |
Get a constant 16-bit value. | |
ConstantInt * | getInt32 (uint32_t C) |
Get a constant 32-bit value. | |
ConstantInt * | getInt64 (uint64_t C) |
Get a constant 64-bit value. | |
ConstantInt * | getIntN (unsigned N, uint64_t C) |
Get a constant N-bit value, zero extended or truncated from a 64-bit value. | |
ConstantInt * | getInt (const APInt &AI) |
Get a constant integer value. | |
IntegerType * | getInt1Ty () |
Fetch the type representing a single bit. | |
IntegerType * | getInt8Ty () |
Fetch the type representing an 8-bit integer. | |
IntegerType * | getInt16Ty () |
Fetch the type representing a 16-bit integer. | |
IntegerType * | getInt32Ty () |
Fetch the type representing a 32-bit integer. | |
IntegerType * | getInt64Ty () |
Fetch the type representing a 64-bit integer. | |
IntegerType * | getInt128Ty () |
Fetch the type representing a 128-bit integer. | |
IntegerType * | getIntNTy (unsigned N) |
Fetch the type representing an N-bit integer. | |
Type * | getHalfTy () |
Fetch the type representing a 16-bit floating point value. | |
Type * | getBFloatTy () |
Fetch the type representing a 16-bit brain floating point value. | |
Type * | getFloatTy () |
Fetch the type representing a 32-bit floating point value. | |
Type * | getDoubleTy () |
Fetch the type representing a 64-bit floating point value. | |
Type * | getVoidTy () |
Fetch the type representing void. | |
PointerType * | getPtrTy (unsigned AddrSpace=0) |
Fetch the type representing a pointer. | |
IntegerType * | getIntPtrTy (const DataLayout &DL, unsigned AddrSpace=0) |
Fetch the type of an integer with size at least as big as that of a pointer in the given address space. | |
IntegerType * | getIndexTy (const DataLayout &DL, unsigned AddrSpace) |
Fetch the type of an integer that should be used to index GEP operations within AddressSpace. | |
CallInst * | CreateMemSet (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. | |
CallInst * | CreateMemSet (Value *Ptr, Value *Val, Value *Size, MaybeAlign Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemSetInline (Value *Dst, MaybeAlign DstAlign, Value *Val, Value *Size, bool IsVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateElementUnorderedAtomicMemSet (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. | |
CallInst * | CreateMalloc (Type *IntPtrTy, Type *AllocTy, Value *AllocSize, Value *ArraySize, ArrayRef< OperandBundleDef > OpB, Function *MallocF=nullptr, const Twine &Name="") |
CallInst * | CreateMalloc (Type *IntPtrTy, Type *AllocTy, Value *AllocSize, Value *ArraySize, Function *MallocF=nullptr, const Twine &Name="") |
CreateMalloc - Generate the IR for a call to malloc: | |
CallInst * | CreateFree (Value *Source, ArrayRef< OperandBundleDef > Bundles={}) |
Generate the IR for a call to the builtin free function. | |
CallInst * | CreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, Value *Size, Align Alignment, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | 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) |
Create and insert a memcpy between the specified pointers. | |
CallInst * | 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) |
CallInst * | 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) |
CallInst * | 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) |
CallInst * | 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. | |
CallInst * | CreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemMove (Value *Dst, MaybeAlign DstAlign, Value *Src, MaybeAlign SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | 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. | |
CallInst * | CreateFAddReduce (Value *Acc, Value *Src) |
Create a sequential vector fadd reduction intrinsic of the source vector. | |
CallInst * | CreateFMulReduce (Value *Acc, Value *Src) |
Create a sequential vector fmul reduction intrinsic of the source vector. | |
CallInst * | CreateAddReduce (Value *Src) |
Create a vector int add reduction intrinsic of the source vector. | |
CallInst * | CreateMulReduce (Value *Src) |
Create a vector int mul reduction intrinsic of the source vector. | |
CallInst * | CreateAndReduce (Value *Src) |
Create a vector int AND reduction intrinsic of the source vector. | |
CallInst * | CreateOrReduce (Value *Src) |
Create a vector int OR reduction intrinsic of the source vector. | |
CallInst * | CreateXorReduce (Value *Src) |
Create a vector int XOR reduction intrinsic of the source vector. | |
CallInst * | CreateIntMaxReduce (Value *Src, bool IsSigned=false) |
Create a vector integer max reduction intrinsic of the source vector. | |
CallInst * | CreateIntMinReduce (Value *Src, bool IsSigned=false) |
Create a vector integer min reduction intrinsic of the source vector. | |
CallInst * | CreateFPMaxReduce (Value *Src) |
Create a vector float max reduction intrinsic of the source vector. | |
CallInst * | CreateFPMinReduce (Value *Src) |
Create a vector float min reduction intrinsic of the source vector. | |
CallInst * | CreateFPMaximumReduce (Value *Src) |
Create a vector float maximum reduction intrinsic of the source vector. | |
CallInst * | CreateFPMinimumReduce (Value *Src) |
Create a vector float minimum reduction intrinsic of the source vector. | |
CallInst * | CreateLifetimeStart (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.start intrinsic. | |
CallInst * | CreateLifetimeEnd (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.end intrinsic. | |
CallInst * | CreateInvariantStart (Value *Ptr, ConstantInt *Size=nullptr) |
Create a call to invariant.start intrinsic. | |
CallInst * | CreateThreadLocalAddress (Value *Ptr) |
Create a call to llvm.threadlocal.address intrinsic. | |
CallInst * | CreateMaskedLoad (Type *Ty, Value *Ptr, Align Alignment, Value *Mask, Value *PassThru=nullptr, const Twine &Name="") |
Create a call to Masked Load intrinsic. | |
CallInst * | CreateMaskedStore (Value *Val, Value *Ptr, Align Alignment, Value *Mask) |
Create a call to Masked Store intrinsic. | |
CallInst * | CreateMaskedGather (Type *Ty, Value *Ptrs, Align Alignment, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="") |
Create a call to Masked Gather intrinsic. | |
CallInst * | CreateMaskedScatter (Value *Val, Value *Ptrs, Align Alignment, Value *Mask=nullptr) |
Create a call to Masked Scatter intrinsic. | |
CallInst * | CreateMaskedExpandLoad (Type *Ty, Value *Ptr, MaybeAlign Align, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="") |
Create a call to Masked Expand Load intrinsic. | |
CallInst * | CreateMaskedCompressStore (Value *Val, Value *Ptr, MaybeAlign Align, Value *Mask=nullptr) |
Create a call to Masked Compress Store intrinsic. | |
Value * | getAllOnesMask (ElementCount NumElts) |
Return an all true boolean vector (mask) with NumElts lanes. | |
CallInst * | CreateAssumption (Value *Cond, ArrayRef< OperandBundleDef > OpBundles={}) |
Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true. | |
Instruction * | CreateNoAliasScopeDeclaration (Value *Scope) |
Create a llvm.experimental.noalias.scope.decl intrinsic call. | |
Instruction * | CreateNoAliasScopeDeclaration (MDNode *ScopeTag) |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, ArrayRef< Value * > CallArgs, std::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. | |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, uint32_t Flags, ArrayRef< Value * > CallArgs, std::optional< ArrayRef< Use > > TransitionArgs, std::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. | |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualCallee, ArrayRef< Use > CallArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="") |
Conveninence function for the common case when CallArgs are filled in using ArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer. | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > InvokeArgs, std::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. | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< Value * > InvokeArgs, std::optional< ArrayRef< Use > > TransitionArgs, std::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. | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, FunctionCallee ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Use > InvokeArgs, std::optional< ArrayRef< Value * > > DeoptArgs, ArrayRef< Value * > GCArgs, const Twine &Name="") |
CallInst * | 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. | |
CallInst * | 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. | |
CallInst * | 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. | |
CallInst * | 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. | |
Value * | CreateVScale (Constant *Scaling, const Twine &Name="") |
Create a call to llvm.vscale, multiplied by Scaling . | |
Value * | CreateElementCount (Type *DstType, ElementCount EC) |
Create an expression which evaluates to the number of elements in EC at runtime. | |
Value * | CreateTypeSize (Type *DstType, TypeSize Size) |
Create an expression which evaluates to the number of units in Size at runtime. | |
Value * | CreateStepVector (Type *DstType, const Twine &Name="") |
Creates a vector of type DstType with the linear sequence <0, 1, ...> | |
CallInst * | CreateUnaryIntrinsic (Intrinsic::ID ID, Value *V, FMFSource FMFSource={}, const Twine &Name="") |
Create a call to intrinsic ID with 1 operand which is mangled on its type. | |
Value * | CreateBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="") |
Create a call to intrinsic ID with 2 operands which is mangled on the first type. | |
CallInst * | CreateIntrinsic (Intrinsic::ID ID, ArrayRef< Type * > Types, ArrayRef< Value * > Args, FMFSource FMFSource={}, const Twine &Name="") |
Create a call to intrinsic ID with Args , mangled using Types . | |
CallInst * | CreateIntrinsic (Type *RetTy, Intrinsic::ID ID, ArrayRef< Value * > Args, FMFSource FMFSource={}, const Twine &Name="") |
Create a call to intrinsic ID with RetTy and Args . | |
Value * | CreateMinNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the minnum intrinsic. | |
Value * | CreateMaxNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the maxnum intrinsic. | |
Value * | CreateMinimum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the minimum intrinsic. | |
Value * | CreateMaximum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the maximum intrinsic. | |
Value * | CreateMinimumNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the minimumnum intrinsic. | |
Value * | CreateMaximumNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the maximum intrinsic. | |
Value * | CreateCopySign (Value *LHS, Value *RHS, FMFSource FMFSource={}, const Twine &Name="") |
Create call to the copysign intrinsic. | |
Value * | CreateLdexp (Value *Src, Value *Exp, FMFSource FMFSource={}, const Twine &Name="") |
Create call to the ldexp intrinsic. | |
CallInst * | CreateArithmeticFence (Value *Val, Type *DstType, const Twine &Name="") |
Create a call to the arithmetic_fence intrinsic. | |
CallInst * | CreateExtractVector (Type *DstType, Value *SrcVec, Value *Idx, const Twine &Name="") |
Create a call to the vector.extract intrinsic. | |
CallInst * | CreateInsertVector (Type *DstType, Value *SrcVec, Value *SubVec, Value *Idx, const Twine &Name="") |
Create a call to the vector.insert intrinsic. | |
CallInst * | CreateStackSave (const Twine &Name="") |
Create a call to llvm.stacksave. | |
CallInst * | CreateStackRestore (Value *Ptr, const Twine &Name="") |
Create a call to llvm.stackrestore. | |
Value * | CreateCountTrailingZeroElems (Type *ResTy, Value *Mask, bool ZeroIsPoison=true, const Twine &Name="") |
Create a call to llvm.experimental_cttz_elts. | |
ReturnInst * | CreateRetVoid () |
Create a 'ret void' instruction. | |
ReturnInst * | CreateRet (Value *V) |
Create a 'ret <val>' instruction. | |
ReturnInst * | CreateAggregateRet (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. | |
BranchInst * | CreateBr (BasicBlock *Dest) |
Create an unconditional 'br label X' instruction. | |
BranchInst * | CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr) |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction. | |
BranchInst * | CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, Instruction *MDSrc) |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction. | |
SwitchInst * | CreateSwitch (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). | |
IndirectBrInst * | CreateIndirectBr (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). | |
InvokeInst * | CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
Create an invoke instruction. | |
InvokeInst * | CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args={}, const Twine &Name="") |
InvokeInst * | CreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
InvokeInst * | CreateInvoke (FunctionCallee Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value * > Args={}, const Twine &Name="") |
CallBrInst * | CreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args={}, const Twine &Name="") |
Create a callbr instruction. | |
CallBrInst * | CreateCallBr (FunctionType *Ty, Value *Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
CallBrInst * | CreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args={}, const Twine &Name="") |
CallBrInst * | CreateCallBr (FunctionCallee Callee, BasicBlock *DefaultDest, ArrayRef< BasicBlock * > IndirectDests, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
ResumeInst * | CreateResume (Value *Exn) |
CleanupReturnInst * | CreateCleanupRet (CleanupPadInst *CleanupPad, BasicBlock *UnwindBB=nullptr) |
CatchSwitchInst * | CreateCatchSwitch (Value *ParentPad, BasicBlock *UnwindBB, unsigned NumHandlers, const Twine &Name="") |
CatchPadInst * | CreateCatchPad (Value *ParentPad, ArrayRef< Value * > Args, const Twine &Name="") |
CleanupPadInst * | CreateCleanupPad (Value *ParentPad, ArrayRef< Value * > Args={}, const Twine &Name="") |
CatchReturnInst * | CreateCatchRet (CatchPadInst *CatchPad, BasicBlock *BB) |
UnreachableInst * | CreateUnreachable () |
Value * | CreateAdd (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateNSWAdd (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateNUWAdd (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateSub (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateNSWSub (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateNUWSub (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateMul (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateNSWMul (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateNUWMul (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateUDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateExactUDiv (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateSDiv (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateExactSDiv (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateURem (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateSRem (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateShl (Value *LHS, Value *RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateShl (Value *LHS, const APInt &RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateShl (Value *LHS, uint64_t RHS, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateLShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateLShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateLShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateAShr (Value *LHS, Value *RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateAShr (Value *LHS, const APInt &RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateAShr (Value *LHS, uint64_t RHS, const Twine &Name="", bool isExact=false) |
Value * | CreateAnd (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateAnd (Value *LHS, const APInt &RHS, const Twine &Name="") |
Value * | CreateAnd (Value *LHS, uint64_t RHS, const Twine &Name="") |
Value * | CreateAnd (ArrayRef< Value * > Ops) |
Value * | CreateOr (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateOr (Value *LHS, const APInt &RHS, const Twine &Name="") |
Value * | CreateOr (Value *LHS, uint64_t RHS, const Twine &Name="") |
Value * | CreateOr (ArrayRef< Value * > Ops) |
Value * | CreateXor (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateXor (Value *LHS, const APInt &RHS, const Twine &Name="") |
Value * | CreateXor (Value *LHS, uint64_t RHS, const Twine &Name="") |
Value * | CreateFAdd (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFAddFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFSub (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFSubFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFMul (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFMulFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFDiv (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFDivFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFRem (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFRemFMF (Value *L, Value *R, FMFSource FMFSource, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateBinOpFMF (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateLogicalAnd (Value *Cond1, Value *Cond2, const Twine &Name="") |
Value * | CreateLogicalOr (Value *Cond1, Value *Cond2, const Twine &Name="") |
Value * | CreateLogicalOp (Instruction::BinaryOps Opc, Value *Cond1, Value *Cond2, const Twine &Name="") |
Value * | CreateLogicalOr (ArrayRef< Value * > Ops) |
CallInst * | CreateConstrainedFPBinOp (Intrinsic::ID ID, Value *L, Value *R, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt) |
CallInst * | CreateConstrainedFPUnroundedBinOp (Intrinsic::ID ID, Value *L, Value *R, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< fp::ExceptionBehavior > Except=std::nullopt) |
Value * | CreateNeg (Value *V, const Twine &Name="", bool HasNSW=false) |
Value * | CreateNSWNeg (Value *V, const Twine &Name="") |
Value * | CreateFNeg (Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFNegFMF (Value *V, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateNot (Value *V, const Twine &Name="") |
Value * | CreateUnOp (Instruction::UnaryOps Opc, Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateNAryOp (unsigned Opc, ArrayRef< Value * > Ops, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Create either a UnaryOperator or BinaryOperator depending on Opc . | |
AllocaInst * | CreateAlloca (Type *Ty, unsigned AddrSpace, Value *ArraySize=nullptr, const Twine &Name="") |
AllocaInst * | CreateAlloca (Type *Ty, Value *ArraySize=nullptr, const Twine &Name="") |
LoadInst * | CreateLoad (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. | |
LoadInst * | CreateLoad (Type *Ty, Value *Ptr, const Twine &Name="") |
LoadInst * | CreateLoad (Type *Ty, Value *Ptr, bool isVolatile, const Twine &Name="") |
StoreInst * | CreateStore (Value *Val, Value *Ptr, bool isVolatile=false) |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const char *Name) |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, const Twine &Name="") |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, MaybeAlign Align, bool isVolatile, const Twine &Name="") |
StoreInst * | CreateAlignedStore (Value *Val, Value *Ptr, MaybeAlign Align, bool isVolatile=false) |
FenceInst * | CreateFence (AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System, const Twine &Name="") |
AtomicCmpXchgInst * | CreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, MaybeAlign Align, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SyncScope::ID SSID=SyncScope::System) |
AtomicRMWInst * | CreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, MaybeAlign Align, AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System) |
Value * | CreateGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="", GEPNoWrapFlags NW=GEPNoWrapFlags::none()) |
Value * | CreateInBoundsGEP (Type *Ty, Value *Ptr, ArrayRef< Value * > IdxList, const Twine &Name="") |
Value * | CreateConstGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="") |
Value * | CreateConstInBoundsGEP1_32 (Type *Ty, Value *Ptr, unsigned Idx0, const Twine &Name="") |
Value * | CreateConstGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="", GEPNoWrapFlags NWFlags=GEPNoWrapFlags::none()) |
Value * | CreateConstInBoundsGEP2_32 (Type *Ty, Value *Ptr, unsigned Idx0, unsigned Idx1, const Twine &Name="") |
Value * | CreateConstGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="") |
Value * | CreateConstInBoundsGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="") |
Value * | CreateConstGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="") |
Value * | CreateConstInBoundsGEP2_64 (Type *Ty, Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="") |
Value * | CreateStructGEP (Type *Ty, Value *Ptr, unsigned Idx, const Twine &Name="") |
Value * | CreatePtrAdd (Value *Ptr, Value *Offset, const Twine &Name="", GEPNoWrapFlags NW=GEPNoWrapFlags::none()) |
Value * | CreateInBoundsPtrAdd (Value *Ptr, Value *Offset, const Twine &Name="") |
Constant * | CreateGlobalStringPtr (StringRef Str, const Twine &Name="", unsigned AddressSpace=0, Module *M=nullptr, bool AddNull=true) |
Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8. | |
Value * | CreateTrunc (Value *V, Type *DestTy, const Twine &Name="", bool IsNUW=false, bool IsNSW=false) |
Value * | CreateZExt (Value *V, Type *DestTy, const Twine &Name="", bool IsNonNeg=false) |
Value * | CreateSExt (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateZExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="") |
Create a ZExt or Trunc from the integer value V to DestTy. | |
Value * | CreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="") |
Create a SExt or Trunc from the integer value V to DestTy. | |
Value * | CreateFPToUI (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateFPToSI (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateUIToFP (Value *V, Type *DestTy, const Twine &Name="", bool IsNonNeg=false) |
Value * | CreateSIToFP (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateFPTrunc (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFPTruncFMF (Value *V, Type *DestTy, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFPExt (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFPExtFMF (Value *V, Type *DestTy, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreatePtrToInt (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateIntToPtr (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateBitCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateZExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateSExtOrBitCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateTruncOrBitCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateCast (Instruction::CastOps Op, Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr, FMFSource FMFSource={}) |
Value * | CreatePointerCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreatePointerBitCastOrAddrSpaceCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateIntCast (Value *V, Type *DestTy, bool isSigned, const Twine &Name="") |
Value * | CreateBitOrPointerCast (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateFPCast (Value *V, Type *DestTy, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateConstrainedFPCast (Intrinsic::ID ID, Value *V, Type *DestTy, FMFSource FMFSource={}, const Twine &Name="", MDNode *FPMathTag=nullptr, std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt) |
Value * | CreateIntCast (Value *, Type *, const char *)=delete |
Value * | CreateICmpEQ (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpNE (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpUGT (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpUGE (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpULT (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpULE (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpSGT (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpSGE (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpSLT (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateICmpSLE (Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateFCmpOEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpOGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpOGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpOLT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpOLE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpONE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpORD (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpUNO (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpUEQ (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpUGT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpUGE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpULT (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpULE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpUNE (Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateICmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="") |
Value * | CreateFCmp (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpFMF (CmpInst::Predicate P, Value *LHS, Value *RHS, FMFSource FMFSource, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateCmp (CmpInst::Predicate Pred, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateFCmpS (CmpInst::Predicate P, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateConstrainedFPCmp (Intrinsic::ID ID, CmpInst::Predicate P, Value *L, Value *R, const Twine &Name="", std::optional< fp::ExceptionBehavior > Except=std::nullopt) |
PHINode * | CreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="") |
CallInst * | CreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args={}, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (FunctionCallee Callee, ArrayRef< Value * > Args={}, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (FunctionCallee Callee, ArrayRef< Value * > Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateConstrainedFPCall (Function *Callee, ArrayRef< Value * > Args, const Twine &Name="", std::optional< RoundingMode > Rounding=std::nullopt, std::optional< fp::ExceptionBehavior > Except=std::nullopt) |
Value * | CreateSelect (Value *C, Value *True, Value *False, const Twine &Name="", Instruction *MDFrom=nullptr) |
Value * | CreateSelectFMF (Value *C, Value *True, Value *False, FMFSource FMFSource, const Twine &Name="", Instruction *MDFrom=nullptr) |
VAArgInst * | CreateVAArg (Value *List, Type *Ty, const Twine &Name="") |
Value * | CreateExtractElement (Value *Vec, Value *Idx, const Twine &Name="") |
Value * | CreateExtractElement (Value *Vec, uint64_t Idx, const Twine &Name="") |
Value * | CreateInsertElement (Type *VecTy, Value *NewElt, Value *Idx, const Twine &Name="") |
Value * | CreateInsertElement (Type *VecTy, Value *NewElt, uint64_t Idx, const Twine &Name="") |
Value * | CreateInsertElement (Value *Vec, Value *NewElt, Value *Idx, const Twine &Name="") |
Value * | CreateInsertElement (Value *Vec, Value *NewElt, uint64_t Idx, const Twine &Name="") |
Value * | CreateShuffleVector (Value *V1, Value *V2, Value *Mask, const Twine &Name="") |
Value * | CreateShuffleVector (Value *V1, Value *V2, ArrayRef< int > Mask, const Twine &Name="") |
See class ShuffleVectorInst for a description of the mask representation. | |
Value * | CreateShuffleVector (Value *V, ArrayRef< int > Mask, const Twine &Name="") |
Create a unary shuffle. | |
Value * | CreateExtractValue (Value *Agg, ArrayRef< unsigned > Idxs, const Twine &Name="") |
Value * | CreateInsertValue (Value *Agg, Value *Val, ArrayRef< unsigned > Idxs, const Twine &Name="") |
LandingPadInst * | CreateLandingPad (Type *Ty, unsigned NumClauses, const Twine &Name="") |
Value * | CreateFreeze (Value *V, const Twine &Name="") |
Value * | CreateIsNull (Value *Arg, const Twine &Name="") |
Return a boolean value testing if Arg == 0. | |
Value * | CreateIsNotNull (Value *Arg, const Twine &Name="") |
Return a boolean value testing if Arg != 0. | |
Value * | CreateIsNeg (Value *Arg, const Twine &Name="") |
Return a boolean value testing if Arg < 0. | |
Value * | CreateIsNotNeg (Value *Arg, const Twine &Name="") |
Return a boolean value testing if Arg > -1. | |
Value * | CreatePtrDiff (Type *ElemTy, Value *LHS, Value *RHS, const Twine &Name="") |
Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects. | |
Value * | CreateLaunderInvariantGroup (Value *Ptr) |
Create a launder.invariant.group intrinsic call. | |
Value * | CreateStripInvariantGroup (Value *Ptr) |
Create a strip.invariant.group intrinsic call. | |
Value * | CreateVectorReverse (Value *V, const Twine &Name="") |
Return a vector value that contains the vector V reversed. | |
Value * | CreateVectorSplice (Value *V1, Value *V2, int64_t Imm, const Twine &Name="") |
Return a vector splice intrinsic if using scalable vectors, otherwise return a shufflevector. | |
Value * | CreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="") |
Return a vector value that contains. | |
Value * | CreateVectorSplat (ElementCount EC, Value *V, const Twine &Name="") |
Return a vector value that contains. | |
Value * | CreatePreserveArrayAccessIndex (Type *ElTy, Value *Base, unsigned Dimension, unsigned LastIndex, MDNode *DbgInfo) |
Value * | CreatePreserveUnionAccessIndex (Value *Base, unsigned FieldIndex, MDNode *DbgInfo) |
Value * | CreatePreserveStructAccessIndex (Type *ElTy, Value *Base, unsigned Index, unsigned FieldIndex, MDNode *DbgInfo) |
Value * | createIsFPClass (Value *FPNum, unsigned Test) |
CallInst * | 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. | |
CallInst * | 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. | |
Common base class shared among various IRBuilders.
Definition at line 113 of file IRBuilder.h.
|
inline |
Definition at line 154 of file IRBuilder.h.
References ClearInsertionPoint().
|
inline |
Add all entries in MetadataToCopy to I
.
Definition at line 266 of file IRBuilder.h.
References I.
Referenced by Insert().
|
inline |
Clear the fast-math flags.
Definition at line 324 of file IRBuilder.h.
References llvm::FastMathFlags::clear(), and FMF.
|
inline |
Clear the insertion point: created instructions will not be inserted into a block.
Definition at line 188 of file IRBuilder.h.
Referenced by llvm::SCEVExpander::clearInsertPoint(), llvm::OpenMPIRBuilder::emitBranch(), IRBuilderBase(), llvm::Negator::Negate(), restoreIP(), and saveAndClearIP().
|
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 252 of file IRBuilder.h.
Referenced by performBranchToCommonDestFolding(), and llvm::InstCombinerImpl::run().
|
inline |
Definition at line 1370 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldNoWrapBinOp(), LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), callBufferedPrintfStart(), CheckAndCreateOffsetAdd(), CloneLoopBlocks(), llvm::InstCombinerImpl::commonIDivTransforms(), convertToShadowDataInt(), llvm::OpenMPIRBuilder::createCanonicalLoop(), createFakeIntVal(), llvm::OpenMPIRBuilder::createLoopSkeleton(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), CreateNSWAdd(), CreateNUWAdd(), llvm::AMDGPU::createSlowPathCmp(), llvm::emitGEPOffset(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), expandFPToI(), expandIToFP(), expandVecReduceAdd(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpSubConstant(), foldICmpUSubSatOrUAddSatWithConstant(), foldICmpWithTruncSignExtendedVal(), llvm::InstCombinerImpl::foldICmpXorShiftConst(), llvm::InstCombinerImpl::foldIRemByPowerOfTwoToBitTest(), foldMulShl1(), foldNoWrapAdd(), llvm::InstCombinerImpl::foldPowiReassoc(), llvm::InstCombinerImpl::foldSquareSumInt(), llvm::SCEVExpander::generateOverflowCheck(), generateUnsignedDivisionCode(), llvm::InstCombiner::getFreelyInvertedImpl(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getStepVector(), getStrlenWithNull(), hoistSub(), llvm::memtag::incrementThreadLong(), insertSpills(), llvm::AMDGPU::instrumentAddress(), LowerCTPOP(), matchStridedStart(), llvm::AMDGPU::memToShadow(), promoteAllocaUserToVector(), llvm::orc::ReOptimizeLayer::reoptimizeIfCallFrequent(), rewriteGEPAsOffset(), scalarizeMaskedVectorHistogram(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), simplifyAMDGCNMemoryIntrinsicDemanded(), simplifyX86pmadd(), simplifyX86pmulh(), llvm::SplitBlockAndInsertSimpleForLoop(), llvm::InstCombinerImpl::takeLog2(), llvm::OpenMPIRBuilder::tileLoops(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), llvm::UnrollRuntimeLoopRemainder(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitCallInst(), llvm::ObjectSizeOffsetEvaluator::visitGEPOperator(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitURem().
Create a vector int add reduction intrinsic of the source vector.
Definition at line 412 of file IRBuilder.cpp.
Referenced by llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 2157 of file IRBuilder.h.
References CreateCast(), and Name.
Referenced by llvm::AtomicInfo::EmitAtomicLoadLibcall(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), insertSpills(), lowerKernelArguments(), simplifyInvariantGroupIntrinsic(), and upgradeNVVMIntrinsicCall().
|
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 1150 of file IRBuilder.h.
References Context, llvm::ReturnInst::Create(), CreateInsertValue(), llvm::PoisonValue::get(), getCurrentFunctionReturnType(), Insert(), and N.
|
inline |
Definition at line 1825 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), Insert(), Name, and Ptr.
|
inline |
Definition at line 1815 of file IRBuilder.h.
References CreateAlignedLoad(), Name, and Ptr.
Referenced by llvm::buildCmpXchgValue(), llvm::InstCombinerImpl::combineLoadToNewType(), CreateAlignedLoad(), CreateLoad(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), doPromotion(), llvm::AtomicInfo::EmitAtomicLoadLibcall(), llvm::AtomicInfo::EmitAtomicLoadOp(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::VPInterleaveRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), foldConsecutiveLoads(), insertSpills(), llvm::AMDGPU::instrumentAddressImpl(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), llvm::SITargetLowering::lowerIdempotentRMWIntoFencedLoad(), lowerKernelArguments(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::needToDelay(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), simplifyNeonVld1(), unpackLoadToAggregate(), upgradeMaskedLoad(), upgradeNVVMIntrinsicCall(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1820 of file IRBuilder.h.
References CreateAlignedLoad(), Name, and Ptr.
|
inline |
Definition at line 1834 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), llvm::Value::getType(), Insert(), and Ptr.
Referenced by llvm::buildCmpXchgValue(), combineStoreToNewValue(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), CreateStore(), doPromotion(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitTargetKernel(), llvm::VPInterleaveRecipe::execute(), llvm::VPWidenStoreRecipe::execute(), insertSpills(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), scalarizeMaskedCompressStore(), scalarizeMaskedScatter(), scalarizeMaskedStore(), splitMergedValStore(), unpackStoreToAggregate(), llvm::UpgradeIntrinsicCall(), upgradeMaskedStore(), and upgradeX86IntrinsicCall().
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 1265 of file IRBuilder.cpp.
References assert(), DL, getIntPtrTy(), and llvm::Value::getType().
Referenced by AddAlignmentAssumptions(), and llvm::OpenMPIRBuilder::applySimd().
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 1278 of file IRBuilder.cpp.
References assert(), DL, and llvm::Value::getType().
|
inline |
Definition at line 1781 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), Insert(), and Name.
Referenced by llvm::sandboxir::AllocaInst::create(), llvm::OpenMPIRBuilder::AtomicInfo::CreateAlloca(), createFakeIntVal(), llvm::OpenMPIRBuilder::createMapperAllocas(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createSingle(), llvm::OpenMPIRBuilder::createTask(), doPromotion(), eliminateSwiftErrorArgument(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitTargetKernel(), emitTargetTaskProxyFunction(), emitTaskDependencies(), handleNoSuspendCoroutine(), lowerLocalAllocas(), RemovePreallocated(), replaceSwiftErrorOps(), salvageDebugInfoImpl(), simplifyAllocaArraySize(), targetParallelCallback(), and widenDestArray().
|
inline |
Definition at line 1788 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), Insert(), and Name.
Definition at line 1532 of file IRBuilder.h.
References assert(), CreateAnd(), llvm::ArrayRef< T >::empty(), and llvm::ArrayRef< T >::size().
|
inline |
Definition at line 1524 of file IRBuilder.h.
References CreateAnd(), LHS, Name, and RHS.
|
inline |
Definition at line 1528 of file IRBuilder.h.
References CreateAnd(), LHS, Name, and RHS.
Definition at line 1518 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldBinOp(), Folder, Insert(), LHS, Name, and RHS.
Referenced by addBoundsChecking(), llvm::addRuntimeChecks(), applyX86MaskOn1BitsVec(), llvm::buildAtomicRMWValue(), buildPartialUnswitchConditionalBranch(), callBufferedPrintfStart(), checkForNegativeOperand(), llvm::InstCombinerImpl::commonShiftTransforms(), convertToShadowDataInt(), CreateAnd(), createLogicFromTable(), createMaskInstrs(), llvm::AMDGPU::createSlowPathCmp(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), expandAnyOrAllIntrinsic(), expandAtan2Intrinsic(), expandFPToI(), expandIToFP(), foldAndOrOfICmpsWithPow2AndWithZero(), foldAnyOrAllBitsSet(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldComplexAndOrPatterns(), foldCtpopPow2Test(), llvm::InstCombinerImpl::foldICmpAddConstant(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpAndShift(), foldICmpAndXX(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpEqIntrinsicWithConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpIntrinsicWithConstant(), llvm::InstCombinerImpl::foldICmpOrConstant(), foldICmpOrXX(), llvm::InstCombinerImpl::foldICmpShlConstant(), llvm::InstCombinerImpl::foldICmpShrConstant(), llvm::InstCombinerImpl::foldICmpSRemConstant(), llvm::InstCombinerImpl::foldICmpTruncConstant(), llvm::InstCombinerImpl::foldICmpWithTrunc(), foldICmpXNegX(), llvm::InstCombinerImpl::foldIRemByPowerOfTwoToBitTest(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldOrToXor(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndBinOp(), foldShiftedShift(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldSwitchToSelect(), llvm::SCEVExpander::generateOverflowCheck(), generateUnsignedDivisionCode(), llvm::memtag::incrementThreadLong(), insertMaskedValue(), insertSpills(), llvm::X86TTIImpl::instCombineIntrinsic(), llvm::AMDGPU::instrumentAddressImpl(), LowerBSWAP(), LowerCTPOP(), llvm::IntrinsicLowering::LowerIntrinsicCall(), performMaskedAtomicOp(), processUMulZExtIdiom(), llvm::KCFIPass::run(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyTernarylogic(), upgradeMaskedMove(), upgradePMULDQ(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFCmpInst(), llvm::InstCombinerImpl::visitICmpInst(), llvm::InstCombinerImpl::visitLShr(), visitMaskedMerge(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::InstCombinerImpl::visitTrunc(), llvm::InstCombinerImpl::visitXor(), and llvm::InstCombinerImpl::visitZExt().
Create a vector int AND reduction intrinsic of the source vector.
Definition at line 420 of file IRBuilder.cpp.
Referenced by llvm::InstCombinerImpl::visitCallInst().
|
inline |
Create a call to the arithmetic_fence intrinsic.
Definition at line 1065 of file IRBuilder.h.
References CreateIntrinsic(), and Name.
|
inline |
Definition at line 1508 of file IRBuilder.h.
References CreateAShr(), LHS, Name, and RHS.
|
inline |
Definition at line 1513 of file IRBuilder.h.
References CreateAShr(), LHS, Name, and RHS.
|
inline |
Definition at line 1499 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldExactBinOp(), Insert(), LHS, Name, and RHS.
Referenced by CreateAShr(), expandIToFP(), foldSelectICmpLshrAshr(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), llvm::InstCombiner::getFreelyInvertedImpl(), getSign32(), llvm::memtag::incrementThreadLong(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), simplifyX86immShift(), simplifyX86pmulh(), simplifyX86varShift(), upgradePMULDQ(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitSExt(), and llvm::InstCombinerImpl::visitTrunc().
CallInst * IRBuilderBase::CreateAssumption | ( | Value * | Cond, |
ArrayRef< OperandBundleDef > | OpBundles = {} |
||
) |
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 521 of file IRBuilder.cpp.
References assert(), BB, Cond, CreateCall(), getInt1Ty(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::GlobalValue::getParent(), and llvm::BasicBlock::getParent().
Referenced by generateReproducer(), llvm::lowerObjectSizeCall(), removeUndefIntroducingPredecessor(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 1849 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), Insert(), and Ptr.
Referenced by llvm::sandboxir::AtomicCmpXchgInst::create(), llvm::OpenMPIRBuilder::createAtomicCompare(), createCmpXchgInstFun(), and llvm::AtomicInfo::EmitAtomicCompareExchangeOp().
|
inline |
Definition at line 1862 of file IRBuilder.h.
References BB, DL, llvm::BasicBlock::getDataLayout(), llvm::Value::getType(), Insert(), and Ptr.
Referenced by llvm::sandboxir::AtomicRMWInst::create(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), upgradeAMDGCNIntrinsicCall(), and upgradeNVVMIntrinsicCall().
Value * IRBuilderBase::CreateBinaryIntrinsic | ( | Intrinsic::ID | ID, |
Value * | LHS, | ||
Value * | RHS, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" |
||
) |
Create a call to intrinsic ID
with 2 operands which is mangled on the first type.
Definition at line 889 of file IRBuilder.cpp.
References BB, llvm::IRBuilderFolder::FoldBinaryIntrinsic(), Folder, llvm::BasicBlock::getModule(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::Function::getReturnType(), llvm::Value::getType(), LHS, Name, and RHS.
Referenced by canonicalizeSaturatedAdd(), canonicalizeSaturatedSubtract(), CreateMaximum(), CreateMaximumNum(), CreateMaxNum(), CreateMinimum(), CreateMinimumNum(), CreateMinNum(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), foldAbsDiff(), llvm::InstCombinerImpl::foldAddWithConstant(), foldCttzCtlz(), llvm::InstCombinerImpl::foldFMulReassoc(), foldIntrinsicUsingDistributiveLaws(), foldMinimumOverTrailingOrLeadingZeroCount(), llvm::InstCombiner::getFreelyInvertedImpl(), hoistMinMax(), moveAddAfterMinMax(), reassociateMinMaxWithConstantInOperand(), llvm::InstCombinerImpl::takeLog2(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitUDiv().
|
inline |
Definition at line 1671 of file IRBuilder.h.
References CreateBinOpFMF(), LHS, Name, and RHS.
Referenced by buildNew(), canonicalizeLogicFirst(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::sandboxir::BinaryOperator::create(), createLogicalOp(), CreateNAryOp(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPReductionEVLRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), factorizeMathWithShlOps(), foldAndOrOfICmpsWithConstEq(), llvm::InstCombinerImpl::foldBinOpOfSelectAndCastOfSelectCondition(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), foldBitCastBitwiseLogic(), foldBitwiseLogicWithIntrinsics(), foldComplexAndOrPatterns(), foldDependentIVs(), foldICmpOrXorSubChain(), foldIntrinsicUsingDistributiveLaws(), foldLogicCastConstant(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), llvm::InstCombinerImpl::foldSelectShuffle(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftOfShiftedBinOp(), llvm::InstCombinerImpl::foldUsingDistributiveLaws(), llvm::InstCombinerImpl::foldVectorBinop(), generateNewInstTree(), llvm::InstCombiner::getFreelyInvertedImpl(), llvm::getOrderedReduction(), llvm::getShuffleReduction(), getStepVector(), hoistBOAssociation(), matchDeMorgansLaws(), narrowUDivURem(), reassociateForUses(), scalarize(), simplifyAndOrWithOpReplaced(), llvm::InstCombinerImpl::simplifyBinOpSplats(), llvm::X86TTIImpl::simplifyDemandedVectorEltsIntrinsic(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), llvm::InstCombinerImpl::sinkNotIntoLogicalOp(), llvm::InstCombinerImpl::sinkNotIntoOtherHandOfLogicalOp(), tryFactorization(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitGetElementPtrInst(), llvm::InstCombinerImpl::visitMul(), and llvm::InstCombinerImpl::visitShl().
|
inline |
Definition at line 1677 of file IRBuilder.h.
References llvm::BinaryOperator::Create(), FMF, llvm::IRBuilderFolder::FoldBinOp(), Folder, llvm::FMFSource::get(), Insert(), LHS, Name, and RHS.
Referenced by CreateBinOp(), and instCombineSVEVectorBinOp().
|
inline |
Definition at line 2152 of file IRBuilder.h.
References CreateCast(), and Name.
Referenced by applyX86MaskOn1BitsVec(), canonicalizeBitCastExtElt(), llvm::VNCoercion::coerceAvailableValueToLoadType(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createAtomicRead(), llvm::OpenMPIRBuilder::createAtomicWrite(), CreateBitOrPointerCast(), createCast(), createCmpXchgInstFun(), llvm::OpenMPIRBuilder::createReductions(), createTargetLoopWorkshareCall(), createTblForTrunc(), createTblShuffleForZExt(), llvm::coro::Shape::emitDealloc(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), emitX86ScalarSelect(), expandFPToI(), expandIToFP(), extractMaskedValue(), fitArgInto64Bits(), foldBitCastBitwiseLogic(), foldBitCastSelect(), foldCopySignIdioms(), llvm::InstCombinerImpl::foldICmpBitCast(), foldReductionIdiom(), foldTruncInsEltPair(), foldVecExtTruncToExtElt(), foldVecTruncToExtElt(), getAllocaPos(), llvm::VNCoercion::getStoreValueForLoadHelper(), getX86MaskVec(), hoistConditionalLoadsStores(), hostParallelCallback(), llvm::InlineFunction(), insertMaskedValue(), llvm::objcarc::BundledRetainClaimRVs::insertRVCallWithColors(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineLD1GatherIndex(), instCombineST1ScatterIndex(), instCombineSVECondLast(), lowerKernelArguments(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), optimizeVectorResizeWithIntegerBitCasts(), promoteAllocaUserToVector(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), simplifyNeonVld1(), simplifyRelocatesOffABase(), simplifyX86extrq(), simplifyX86insertq(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), llvm::coro::AnyRetconABI::splitCoroutine(), splitMergedValStore(), targetParallelCallback(), upgradeAMDGCNIntrinsicCall(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), upgradeMaskedLoad(), upgradeMaskedStore(), upgradeNVVMIntrinsicCall(), upgradePMULDQ(), upgradeX86IntrinsicCall(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), upgradeX86VPERMT2Intrinsics(), llvm::versionCallSite(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFCmpInst(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
|
inline |
Definition at line 2234 of file IRBuilder.h.
References CreateBitCast(), CreateIntToPtr(), CreatePtrToInt(), llvm::Type::isIntOrIntVectorTy(), llvm::Type::isPtrOrPtrVectorTy(), and Name.
Referenced by coerceArguments(), createBitOrPointerCast(), instCombineSVEDupqLane(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), promoteAllocaUserToVector(), replaceAsyncResumeFunction(), llvm::coro::AsyncABI::splitCoroutine(), and llvm::InstCombinerImpl::visitLoadInst().
|
inline |
Create an unconditional 'br label X' instruction.
Definition at line 1158 of file IRBuilder.h.
References llvm::BranchInst::Create(), and Insert().
Referenced by llvm::breakLoopBackedge(), llvm::ConstantFoldTerminator(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCanonicalLoop(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), llvm::OpenMPIRBuilder::createLoopSkeleton(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::createSanitizerCtorAndInitFunctions(), llvm::OpenMPIRBuilder::createSection(), llvm::OpenMPIRBuilder::createSections(), llvm::deleteDeadLoop(), llvm::orc::IRSpeculationLayer::emit(), llvm::OpenMPIRBuilder::emitBranch(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPIRBasicBlock::execute(), expandFPToI(), expandIToFP(), foldMemChr(), foldTwoEntryPHINode(), generateUnsignedDivisionCode(), llvm::coro::BaseCloner::handleFinalSuspend(), removeSwitchAfterSelectFold(), removeUndefIntroducingPredecessor(), rewritePHIsForCleanupPad(), switchToLookupTable(), versionCallSiteWithCond(), and workshareLoopTargetCallback().
|
inline |
Definition at line 2477 of file IRBuilder.h.
References CreateCall(), and Name.
|
inline |
Definition at line 2471 of file IRBuilder.h.
|
inline |
Definition at line 2460 of file IRBuilder.h.
References llvm::CallInst::Create(), FMF, Insert(), IsFPConstrained, Name, and setConstrainedFPCallAttr().
|
inline |
Definition at line 2449 of file IRBuilder.h.
Referenced by callAppendArgs(), callAppendStringN(), callBufferedPrintfStart(), callPrintfBegin(), convertToRelLookupTable(), llvm::sandboxir::CallInst::create(), CreateAssumption(), llvm::OpenMPIRBuilder::createBarrier(), llvm::OpenMPIRBuilder::createCachedThreadPrivate(), CreateCall(), llvm::OpenMPIRBuilder::createCancel(), CreateConstrainedFPCall(), llvm::OpenMPIRBuilder::createCopyPrivate(), llvm::OpenMPIRBuilder::createCritical(), CreateFree(), CreateGCRelocates(), CreateGCStatepointCallCommon(), CreateLaunderInvariantGroup(), CreateMalloc(), llvm::OpenMPIRBuilder::createMasked(), llvm::OpenMPIRBuilder::createMaster(), llvm::coro::createMustTailCall(), llvm::OpenMPIRBuilder::createOMPAlloc(), llvm::OpenMPIRBuilder::createOMPFree(), llvm::OpenMPIRBuilder::createOMPInteropDestroy(), llvm::OpenMPIRBuilder::createOMPInteropInit(), llvm::OpenMPIRBuilder::createOMPInteropUse(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createOrderedThreadsSimd(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::orc::ReOptimizeLayer::createReoptimizeCall(), llvm::createSanitizerCtorAndInitFunctions(), llvm::OpenMPIRBuilder::createSingle(), CreateStripInvariantGroup(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTargetDeinit(), llvm::OpenMPIRBuilder::createTargetInit(), createTargetLoopWorkshareCall(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTaskgroup(), llvm::OpenMPIRBuilder::createTeams(), createThunk(), llvm::orc::IRSpeculationLayer::emit(), llvm::coro::Shape::emitAlloc(), llvm::AtomicInfo::EmitAtomicLibcall(), llvm::AtomicInfo::EmitAtomicLoadLibcall(), llvm::coro::Shape::emitDealloc(), llvm::OpenMPIRBuilder::emitFlush(), emitGetSwiftErrorValue(), llvm::OpenMPIRBuilder::emitMapperCall(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), emitSetSwiftErrorValue(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::OpenMPIRBuilder::emitTargetKernel(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), llvm::OpenMPIRBuilder::emitTaskwaitImpl(), llvm::OpenMPIRBuilder::emitTaskyieldImpl(), emitTPIDR2Save(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPWidenIntrinsicRecipe::execute(), llvm::VPWidenCallRecipe::execute(), expandIToFP(), llvm::AMDGPU::generateCrashCode(), generateUnsignedDivisionCode(), llvm::memtag::getAndroidSlotPtr(), llvm::OpenMPIRBuilder::getOrCreateThreadID(), llvm::TargetLoweringBase::getSafeStackPointerLocation(), hostParallelCallback(), llvm::InlineFunction(), InsertCall(), llvm::SampleProfileProber::instrumentOneFunc(), lowerAwaitSuspend(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), lowerObjCCall(), llvm::orc::makeStub(), processUGT_ADDCST_ADD(), ReplaceCallWith(), replaceWithTLIFunction(), targetParallelCallback(), llvm::dxil::DXILOpBuilder::tryCreateOp(), llvm::UpgradeARCRuntime(), llvm::UpgradeIntrinsicCall(), upgradeNVVMIntrinsicCall(), upgradeX86IntrinsicCall(), UseTlsOffset(), useTpOffset(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 1266 of file IRBuilder.h.
References CreateCallBr(), and Name.
|
inline |
Definition at line 1259 of file IRBuilder.h.
|
inline |
Definition at line 1248 of file IRBuilder.h.
References llvm::CallBrInst::Create(), Insert(), and Name.
|
inline |
Create a callbr instruction.
Definition at line 1240 of file IRBuilder.h.
Referenced by CreateCallBr().
|
inline |
Definition at line 2186 of file IRBuilder.h.
Referenced by buildNew(), llvm::InstCombinerImpl::commonCastTransforms(), llvm::sandboxir::CastInst::create(), CreateAddrSpaceCast(), CreateBitCast(), CreateFPCast(), CreateFPExtFMF(), CreateFPToSI(), CreateFPToUI(), CreateFPTruncFMF(), CreateIntCast(), CreateIntToPtr(), CreatePtrToInt(), CreateSExt(), CreateSExtOrBitCast(), CreateSIToFP(), CreateTruncOrBitCast(), CreateZExtOrBitCast(), llvm::VPWidenCastRecipe::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), generateNewInstTree(), scalarize(), shrinkInsertElt(), simplifyX86pmadd(), simplifyX86pmulh(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 1291 of file IRBuilder.h.
References llvm::CatchPadInst::Create(), Insert(), and Name.
|
inline |
Definition at line 1302 of file IRBuilder.h.
References BB, llvm::CatchReturnInst::Create(), and Insert().
Referenced by llvm::sandboxir::CatchReturnInst::create().
|
inline |
Definition at line 1284 of file IRBuilder.h.
References llvm::CatchSwitchInst::Create(), Insert(), and Name.
Referenced by llvm::sandboxir::CatchSwitchInst::create().
|
inline |
Definition at line 1296 of file IRBuilder.h.
Referenced by llvm::sandboxir::CleanupPadInst::create().
|
inline |
Definition at line 1279 of file IRBuilder.h.
References llvm::CleanupReturnInst::Create(), and Insert().
Referenced by llvm::sandboxir::CleanupReturnInst::create(), and replaceUnwindCoroEnd().
|
inline |
Definition at line 2404 of file IRBuilder.h.
References CreateFCmp(), CreateICmp(), llvm::CmpInst::isFPPredicate(), LHS, Name, and RHS.
Referenced by llvm::sandboxir::CmpInst::create(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::createFindLastIVReduction(), llvm::createMinMaxOp(), foldVectorCmp(), generateNewInstTree(), llvm::InstCombiner::getFreelyInvertedImpl(), and optimizeBranch().
|
inline |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
Copy branch meta data if available.
Definition at line 1173 of file IRBuilder.h.
References Cond, llvm::Instruction::copyMetadata(), llvm::BranchInst::Create(), and Insert().
|
inline |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
Definition at line 1164 of file IRBuilder.h.
References Cond, llvm::BranchInst::Create(), and Insert().
Referenced by buildPartialInvariantUnswitchConditionalBranch(), buildPartialUnswitchConditionalBranch(), CloneLoopBlocks(), llvm::ConstantFoldTerminator(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), llvm::OpenMPIRBuilder::createLoopSkeleton(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::createSanitizerCtorAndInitFunctions(), llvm::OpenMPIRBuilder::createTargetInit(), llvm::deleteDeadLoop(), despeculateCountZeros(), llvm::orc::IRSpeculationLayer::emit(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::OpenMPIRBuilder::emitIfClause(), llvm::OpenMPIRBuilder::emitKernelLaunch(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), expandFPToI(), expandIToFP(), generateUnsignedDivisionCode(), getStrlenWithNull(), llvm::coro::BaseCloner::handleFinalSuspend(), injectPendingInvariantConditions(), simplifySwitchOfCmpIntrinsic(), llvm::SplitBlockAndInsertSimpleForLoop(), llvm::splitLoopBound(), switchToLookupTable(), and llvm::LoopVersioning::versionLoop().
|
inline |
Definition at line 1887 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::Create(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt32Ty(), Idx, Insert(), Name, llvm::GEPNoWrapFlags::none(), and Ptr.
Referenced by llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::memtag::getAndroidSlotPtr(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), UseTlsOffset(), and useTpOffset().
|
inline |
Definition at line 1934 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::Create(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt64Ty(), Idx, Insert(), Name, llvm::GEPNoWrapFlags::none(), and Ptr.
|
inline |
Definition at line 1907 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::Create(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt32Ty(), Insert(), Name, and Ptr.
Referenced by CreateStructGEP().
|
inline |
Definition at line 1954 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::Create(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt64Ty(), Insert(), Name, llvm::GEPNoWrapFlags::none(), and Ptr.
|
inline |
Definition at line 1897 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::CreateInBounds(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt32Ty(), Idx, llvm::GEPNoWrapFlags::inBounds(), Insert(), Name, and Ptr.
Referenced by callBufferedPrintfArgPush(), llvm::emitAMDGPUPrintfCall(), llvm::KCFIPass::run(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedLoad(), scalarizeMaskedStore(), and llvm::coro::AsyncABI::splitCoroutine().
|
inline |
Definition at line 1944 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::CreateInBounds(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt64Ty(), Idx, llvm::GEPNoWrapFlags::inBounds(), Insert(), Name, and Ptr.
Referenced by lowerKernelArguments().
|
inline |
Definition at line 1921 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::CreateInBounds(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt32Ty(), llvm::GEPNoWrapFlags::inBounds(), Insert(), Name, and Ptr.
Referenced by llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitOffloadingArraysArgument(), insertSpills(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), and lowerSubFn().
|
inline |
Definition at line 1967 of file IRBuilder.h.
References Context, llvm::GetElementPtrInst::CreateInBounds(), Folder, llvm::IRBuilderFolder::FoldGEP(), llvm::Type::getInt64Ty(), llvm::GEPNoWrapFlags::inBounds(), Insert(), Name, and Ptr.
Referenced by llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTask(), emitTaskDependencies(), and targetParallelCallback().
CallInst * IRBuilderBase::CreateConstrainedFPBinOp | ( | Intrinsic::ID | ID, |
Value * | L, | ||
Value * | R, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr , |
||
std::optional< RoundingMode > | Rounding = std::nullopt , |
||
std::optional< fp::ExceptionBehavior > | Except = std::nullopt |
||
) |
Definition at line 937 of file IRBuilder.cpp.
References llvm::CallingConv::C, CreateIntrinsic(), FMF, llvm::FMFSource::get(), Name, and setConstrainedFPCallAttr().
Referenced by CreateFAddFMF(), CreateFDivFMF(), CreateFMulFMF(), CreateFRemFMF(), and CreateFSubFMF().
CallInst * IRBuilderBase::CreateConstrainedFPCall | ( | Function * | Callee, |
ArrayRef< Value * > | Args, | ||
const Twine & | Name = "" , |
||
std::optional< RoundingMode > | Rounding = std::nullopt , |
||
std::optional< fp::ExceptionBehavior > | Except = std::nullopt |
||
) |
Definition at line 1036 of file IRBuilder.cpp.
References llvm::append_range(), llvm::CallingConv::C, CreateCall(), llvm::Intrinsic::hasConstrainedFPRoundingModeOperand(), Name, llvm::SmallVectorTemplateBase< T, bool >::push_back(), and setConstrainedFPCallAttr().
CallInst * IRBuilderBase::CreateConstrainedFPCast | ( | Intrinsic::ID | ID, |
Value * | V, | ||
Type * | DestTy, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr , |
||
std::optional< RoundingMode > | Rounding = std::nullopt , |
||
std::optional< fp::ExceptionBehavior > | Except = std::nullopt |
||
) |
Definition at line 983 of file IRBuilder.cpp.
References llvm::CallingConv::C, CreateIntrinsic(), FMF, llvm::FMFSource::get(), llvm::Intrinsic::hasConstrainedFPRoundingModeOperand(), Name, and setConstrainedFPCallAttr().
Referenced by CreateFPExtFMF(), CreateFPToSI(), CreateFPToUI(), CreateFPTruncFMF(), CreateSIToFP(), and CreateUIToFP().
CallInst * IRBuilderBase::CreateConstrainedFPCmp | ( | Intrinsic::ID | ID, |
CmpInst::Predicate | P, | ||
Value * | L, | ||
Value * | R, | ||
const Twine & | Name = "" , |
||
std::optional< fp::ExceptionBehavior > | Except = std::nullopt |
||
) |
Definition at line 1024 of file IRBuilder.cpp.
References llvm::CallingConv::C, CreateIntrinsic(), Name, P, and setConstrainedFPCallAttr().
CallInst * IRBuilderBase::CreateConstrainedFPUnroundedBinOp | ( | Intrinsic::ID | ID, |
Value * | L, | ||
Value * | R, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" , |
||
MDNode * | FPMathTag = nullptr , |
||
std::optional< fp::ExceptionBehavior > | Except = std::nullopt |
||
) |
Definition at line 953 of file IRBuilder.cpp.
References llvm::CallingConv::C, CreateIntrinsic(), FMF, llvm::FMFSource::get(), Name, and setConstrainedFPCallAttr().
Referenced by CreateMaxNum(), and CreateMinNum().
|
inline |
Create call to the copysign intrinsic.
Definition at line 1050 of file IRBuilder.h.
Referenced by foldCopySignIdioms(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitFNeg().
|
inline |
Create a call to llvm.experimental_cttz_elts.
Definition at line 1101 of file IRBuilder.h.
References CreateIntrinsic(), getInt1(), and Name.
Value * IRBuilderBase::CreateElementCount | ( | Type * | DstType, |
ElementCount | EC | ||
) |
Create an expression which evaluates to the number of elements in EC
at runtime.
Definition at line 98 of file IRBuilder.cpp.
References CreateVScale().
Referenced by llvm::SplitBlockAndInsertForEachLane().
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 247 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), getInt32(), llvm::Instruction::setMetadata(), and Size.
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 361 of file IRBuilder.cpp.
References llvm::CallBase::addParamAttr(), assert(), CreateIntrinsic(), llvm::Value::getContext(), getInt32(), llvm::Attribute::getWithAlignment(), llvm::Instruction::setMetadata(), and Size.
|
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 639 of file IRBuilder.h.
References CreateElementUnorderedAtomicMemSet(), getInt64(), Ptr, and Size.
Referenced by CreateElementUnorderedAtomicMemSet().
CallInst * IRBuilderBase::CreateElementUnorderedAtomicMemSet | ( | Value * | Ptr, |
Value * | Val, | ||
Value * | Size, | ||
Align | Alignment, | ||
uint32_t | ElementSize, | ||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 187 of file IRBuilder.cpp.
References CreateIntrinsic(), getInt32(), Ptr, llvm::Instruction::setMetadata(), and Size.
|
inline |
Definition at line 1443 of file IRBuilder.h.
References CreateSDiv(), LHS, Name, and RHS.
Referenced by CreatePtrDiff().
|
inline |
Definition at line 1430 of file IRBuilder.h.
References CreateUDiv(), LHS, Name, and RHS.
Referenced by llvm::OpenMPIRBuilder::emitUserDefinedMapper().
|
inline |
Definition at line 2506 of file IRBuilder.h.
References CreateExtractElement(), getInt64(), Idx, and Name.
|
inline |
Definition at line 2499 of file IRBuilder.h.
References llvm::ExtractElementInst::Create(), Folder, llvm::IRBuilderFolder::FoldExtractElement(), Idx, Insert(), and Name.
Referenced by llvm::sandboxir::ExtractElementInst::create(), CreateExtractElement(), emitX86ScalarSelect(), llvm::VPBranchOnMaskRecipe::execute(), expandAnyOrAllIntrinsic(), expandCrossIntrinsic(), expandIntegerDotIntrinsic(), expandVecReduceAdd(), extractValues(), llvm::InstCombinerImpl::foldICmpBitCast(), llvm::VPTransformState::get(), llvm::getOrderedReduction(), llvm::getShuffleReduction(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVETBL(), populateOperands(), promoteAllocaUserToVector(), replaceTypedBufferAccess(), scalarize(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), simplifyAMDGCNMemoryIntrinsicDemanded(), translateExtract(), upgradeMaskedMove(), upgradeX86IntrinsicCall(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitExtractElementInst(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
|
inline |
Definition at line 2555 of file IRBuilder.h.
References llvm::ExtractValueInst::Create(), Folder, llvm::IRBuilderFolder::FoldExtractValue(), Insert(), and Name.
Referenced by llvm::sandboxir::ExtractValueInst::create(), llvm::OpenMPIRBuilder::createAtomicCompare(), createCast(), createCmpXchgInstFun(), llvm::AtomicInfo::EmitAtomicCompareExchangeOp(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::VPInterleaveRecipe::execute(), FlattenLoopPair(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), llvm::SCEVExpander::generateOverflowCheck(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), replaceTypedBufferAccess(), simplifyX86addcarry(), unpackStoreToAggregate(), llvm::UpgradeIntrinsicCall(), upgradeX86IntrinsicCall(), and llvm::InstCombinerImpl::visitExtractValueInst().
|
inline |
Create a call to the vector.extract intrinsic.
Definition at line 1072 of file IRBuilder.h.
References CreateIntrinsic(), llvm::Value::getType(), Idx, and Name.
Referenced by llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().
|
inline |
Definition at line 1576 of file IRBuilder.h.
References CreateFAddFMF(), and Name.
Referenced by llvm::buildAtomicRMWValue(), expandAtan2Intrinsic(), expandLerpIntrinsic(), expandVecReduceAdd(), llvm::X86TTIImpl::instCombineIntrinsic(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1581 of file IRBuilder.h.
References CreateConstrainedFPBinOp(), FMF, llvm::IRBuilderFolder::FoldBinOpFMF(), Folder, llvm::FMFSource::get(), I, Insert(), IsFPConstrained, and Name.
Referenced by CreateFAdd(), factorizeFAddFSub(), llvm::InstCombinerImpl::foldFMulReassoc(), llvm::InstCombinerImpl::foldSquareSumFP(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::InstCombinerImpl::visitFDiv(), and llvm::InstCombinerImpl::visitFSub().
Create a sequential vector fadd reduction intrinsic of the source vector.
The first parameter is a scalar accumulator value. An unordered reduction can be created by adding the reassoc fast-math flag to the resulting sequential reduction.
Definition at line 402 of file IRBuilder.cpp.
References CreateIntrinsic().
Referenced by llvm::createSimpleReduction().
|
inline |
Definition at line 2390 of file IRBuilder.h.
References LHS, Name, P, and RHS.
Referenced by buildNew(), CreateCmp(), CreateFCmpOEQ(), CreateFCmpOGE(), CreateFCmpOGT(), CreateFCmpOLE(), CreateFCmpOLT(), CreateFCmpONE(), CreateFCmpORD(), CreateFCmpUEQ(), CreateFCmpUGE(), CreateFCmpUGT(), CreateFCmpULE(), CreateFCmpULT(), CreateFCmpUNE(), CreateFCmpUNO(), and foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed().
|
inline |
Definition at line 2398 of file IRBuilder.h.
References LHS, Name, P, and RHS.
Referenced by llvm::VPWidenRecipe::execute(), getFCmpValue(), matchIsFiniteTest(), and reassociateFCmps().
|
inline |
Definition at line 2310 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_OEQ, LHS, Name, and RHS.
Referenced by expandAtan2Intrinsic().
|
inline |
Definition at line 2320 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_OGE, LHS, Name, and RHS.
Referenced by expandAtan2Intrinsic(), and optimizeSQRT().
|
inline |
Definition at line 2315 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_OGT, LHS, Name, and RHS.
|
inline |
Definition at line 2330 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_OLE, LHS, Name, and RHS.
|
inline |
Definition at line 2325 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_OLT, LHS, Name, and RHS.
Referenced by emitRsqIEEE1ULP(), expandAtan2Intrinsic(), expandSignIntrinsic(), and expandStepIntrinsic().
|
inline |
Definition at line 2335 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_ONE, LHS, Name, and RHS.
|
inline |
Definition at line 2340 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_ORD, LHS, Name, and RHS.
Referenced by optimizeSQRT().
|
inline |
Definition at line 2350 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_UEQ, LHS, Name, and RHS.
|
inline |
Definition at line 2360 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_UGE, LHS, Name, and RHS.
|
inline |
Definition at line 2355 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_UGT, LHS, Name, and RHS.
|
inline |
Definition at line 2370 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_ULE, LHS, Name, and RHS.
|
inline |
Definition at line 2365 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_ULT, LHS, Name, and RHS.
|
inline |
Definition at line 2375 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_UNE, LHS, Name, and RHS.
Referenced by expandAnyOrAllIntrinsic().
|
inline |
Definition at line 2345 of file IRBuilder.h.
References CreateFCmp(), llvm::CmpInst::FCMP_UNO, LHS, Name, and RHS.
|
inline |
Definition at line 1633 of file IRBuilder.h.
References CreateFDivFMF(), and Name.
Referenced by expandAtan2Intrinsic(), expandNormalizeIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1638 of file IRBuilder.h.
References CreateConstrainedFPBinOp(), FMF, llvm::IRBuilderFolder::FoldBinOpFMF(), Folder, llvm::FMFSource::get(), I, Insert(), IsFPConstrained, and Name.
Referenced by CreateFDiv(), foldFDivSqrtDivisor(), llvm::InstCombinerImpl::visitFAdd(), and llvm::InstCombinerImpl::visitFSub().
|
inline |
Definition at line 1842 of file IRBuilder.h.
References Context, Insert(), and Name.
Referenced by llvm::TargetLoweringBase::emitLeadingFence(), llvm::RISCVTargetLowering::emitLeadingFence(), llvm::VETargetLowering::emitLeadingFence(), llvm::TargetLoweringBase::emitTrailingFence(), llvm::RISCVTargetLowering::emitTrailingFence(), and llvm::VETargetLowering::emitTrailingFence().
|
inline |
Definition at line 1614 of file IRBuilder.h.
References CreateFMulFMF(), and Name.
Referenced by buildMultiplyTree(), emitRsqIEEE1ULP(), expandCrossIntrinsic(), expandDegreesIntrinsic(), expandExpIntrinsic(), expandLerpIntrinsic(), expandLogIntrinsic(), expandNormalizeIntrinsic(), expandPowIntrinsic(), expandRadiansIntrinsic(), getStepVector(), llvm::X86TTIImpl::instCombineIntrinsic(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1619 of file IRBuilder.h.
References CreateConstrainedFPBinOp(), FMF, llvm::IRBuilderFolder::FoldBinOpFMF(), Folder, llvm::FMFSource::get(), I, Insert(), IsFPConstrained, and Name.
Referenced by CreateFMul(), factorizeLerp(), llvm::InstCombinerImpl::foldFMulReassoc(), hoistMulAddAssociation(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::InstCombinerImpl::visitFAdd(), llvm::InstCombinerImpl::visitFDiv(), llvm::InstCombinerImpl::visitFMul(), and llvm::InstCombinerImpl::visitFSub().
Create a sequential vector fmul reduction intrinsic of the source vector.
The first parameter is a scalar accumulator value. An unordered reduction can be created by adding the reassoc fast-math flag to the resulting sequential reduction.
Definition at line 407 of file IRBuilder.cpp.
References CreateIntrinsic().
Referenced by llvm::createSimpleReduction().
|
inline |
Definition at line 1742 of file IRBuilder.h.
References CreateFNegFMF(), and Name.
Referenced by upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitOr(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 1747 of file IRBuilder.h.
References FMF, Folder, llvm::IRBuilderFolder::FoldUnOpFMF(), llvm::FMFSource::get(), Insert(), and Name.
Referenced by CreateFNeg(), foldFDivPowDivisor(), foldMulSelectToNegate(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitFNeg(), and llvm::InstCombinerImpl::visitFPTrunc().
|
inline |
Definition at line 2246 of file IRBuilder.h.
References CreateCast(), llvm::Type::getScalarSizeInBits(), and Name.
Referenced by convertTo16Bit().
|
inline |
Definition at line 2128 of file IRBuilder.h.
References CreateFPExtFMF(), and Name.
Referenced by expandFPToI(), processNonStringArg(), tryInterleave(), upgradeX86IntrinsicCall(), and llvm::InstCombinerImpl::visitFSub().
|
inline |
Definition at line 2133 of file IRBuilder.h.
References CreateCast(), CreateConstrainedFPCast(), IsFPConstrained, and Name.
Referenced by CreateFPExt().
Create a vector float maximum reduction intrinsic of the source vector.
This variant follows the NaN and signed zero semantic of llvm.maximum intrinsic.
Definition at line 452 of file IRBuilder.cpp.
Create a vector float max reduction intrinsic of the source vector.
Definition at line 444 of file IRBuilder.cpp.
Create a vector float minimum reduction intrinsic of the source vector.
This variant follows the NaN and signed zero semantic of llvm.minimum intrinsic.
Definition at line 456 of file IRBuilder.cpp.
Create a vector float min reduction intrinsic of the source vector.
Definition at line 448 of file IRBuilder.cpp.
|
inline |
Definition at line 2086 of file IRBuilder.h.
References CreateCast(), CreateConstrainedFPCast(), IsFPConstrained, and Name.
Referenced by expandFPToI().
|
inline |
Definition at line 2079 of file IRBuilder.h.
References CreateCast(), CreateConstrainedFPCast(), IsFPConstrained, and Name.
Referenced by expandFPToI(), and llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion().
|
inline |
Definition at line 2113 of file IRBuilder.h.
References CreateFPTruncFMF(), and Name.
Referenced by expandIToFP(), llvm::InstCombinerImpl::visitFPTrunc(), and llvm::InstCombinerImpl::visitFSub().
|
inline |
Definition at line 2118 of file IRBuilder.h.
References CreateCast(), CreateConstrainedFPCast(), IsFPConstrained, and Name.
Referenced by CreateFPTrunc(), and llvm::InstCombinerImpl::visitFPTrunc().
CallInst * IRBuilderBase::CreateFree | ( | Value * | Source, |
ArrayRef< OperandBundleDef > | Bundles = {} |
||
) |
Generate the IR for a call to the builtin free function.
CreateFree - Generate the IR for a call to the builtin free function.
Definition at line 342 of file IRBuilder.cpp.
References assert(), BB, CreateCall(), F, llvm::FunctionCallee::getCallee(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::PointerType::getUnqual(), and llvm::Type::getVoidTy().
Definition at line 2574 of file IRBuilder.h.
References Insert(), and Name.
Referenced by llvm::addDiffRuntimeChecks(), buildPartialUnswitchConditionalBranch(), llvm::InstCombinerImpl::commonIDivTransforms(), llvm::createAnyOfReduction(), llvm::slpvectorizer::BoUpSLP::ShuffleInstructionBuilder::createFreeze(), despeculateCountZeros(), llvm::VPWidenRecipe::execute(), expandBounds(), foldAndOrOfICmpEqConstantAndICmp(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), foldGuardedFunnelShift(), foldLogOpOfMaskedICmps(), foldMulShl1(), llvm::InstCombinerImpl::foldSelectOpOp(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), generateUnsignedRemainderCode(), hoistMinMax(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitURem(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 1652 of file IRBuilder.h.
References CreateFRemFMF(), and Name.
|
inline |
Definition at line 1657 of file IRBuilder.h.
References CreateConstrainedFPBinOp(), FMF, llvm::IRBuilderFolder::FoldBinOpFMF(), Folder, llvm::FMFSource::get(), I, Insert(), IsFPConstrained, and Name.
Referenced by CreateFRem(), and llvm::InstCombinerImpl::visitFPTrunc().
|
inline |
Definition at line 1595 of file IRBuilder.h.
References CreateFSubFMF(), and Name.
Referenced by llvm::buildAtomicRMWValue(), expandAtan2Intrinsic(), expandCrossIntrinsic(), expandLerpIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1600 of file IRBuilder.h.
References CreateConstrainedFPBinOp(), FMF, llvm::IRBuilderFolder::FoldBinOpFMF(), Folder, llvm::FMFSource::get(), I, Insert(), IsFPConstrained, and Name.
Referenced by CreateFSub(), factorizeFAddFSub(), factorizeLerp(), and llvm::InstCombinerImpl::visitFSub().
Create a call to the experimental.gc.pointer.base intrinsic to get the base pointer for the specified derived pointer.
Definition at line 867 of file IRBuilder.cpp.
References CreateIntrinsic(), llvm::Value::getType(), and 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 874 of file IRBuilder.cpp.
References CreateIntrinsic(), llvm::Value::getType(), and Name.
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 857 of file IRBuilder.cpp.
References CreateIntrinsic(), getInt32(), and Name.
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 848 of file IRBuilder.cpp.
References CreateIntrinsic(), and Name.
Referenced by makeStatepointExplicitImpl().
CallInst * IRBuilderBase::CreateGCStatepointCall | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualCallee, | ||
ArrayRef< Use > | CallArgs, | ||
std::optional< ArrayRef< Value * > > | DeoptArgs, | ||
ArrayRef< Value * > | GCArgs, | ||
const Twine & | Name = "" |
||
) |
Conveninence function for the common case when CallArgs are filled in using ArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer.
Definition at line 779 of file IRBuilder.cpp.
References Name, and llvm::None.
CallInst * IRBuilderBase::CreateGCStatepointCall | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualCallee, | ||
ArrayRef< Value * > | CallArgs, | ||
std::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 759 of file IRBuilder.cpp.
References Name, and llvm::None.
Referenced by makeStatepointExplicitImpl().
CallInst * IRBuilderBase::CreateGCStatepointCall | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualCallee, | ||
uint32_t | Flags, | ||
ArrayRef< Value * > | CallArgs, | ||
std::optional< ArrayRef< Use > > | TransitionArgs, | ||
std::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 768 of file IRBuilder.cpp.
References Name.
InvokeInst * IRBuilderBase::CreateGCStatepointInvoke | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualInvokee, | ||
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
ArrayRef< Use > | InvokeArgs, | ||
std::optional< ArrayRef< Value * > > | DeoptArgs, | ||
ArrayRef< Value * > | GCArgs, | ||
const Twine & | Name = "" |
||
) |
Definition at line 837 of file IRBuilder.cpp.
References Name, and llvm::None.
InvokeInst * IRBuilderBase::CreateGCStatepointInvoke | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualInvokee, | ||
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
ArrayRef< Value * > | InvokeArgs, | ||
std::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 815 of file IRBuilder.cpp.
References Name, and llvm::None.
Referenced by makeStatepointExplicitImpl().
InvokeInst * IRBuilderBase::CreateGCStatepointInvoke | ( | uint64_t | ID, |
uint32_t | NumPatchBytes, | ||
FunctionCallee | ActualInvokee, | ||
BasicBlock * | NormalDest, | ||
BasicBlock * | UnwindDest, | ||
uint32_t | Flags, | ||
ArrayRef< Value * > | InvokeArgs, | ||
std::optional< ArrayRef< Use > > | TransitionArgs, | ||
std::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 826 of file IRBuilder.cpp.
References Name.
|
inline |
Definition at line 1874 of file IRBuilder.h.
References llvm::GetElementPtrInst::Create(), Folder, llvm::IRBuilderFolder::FoldGEP(), Insert(), Name, and Ptr.
Referenced by buildNew(), llvm::sandboxir::GetElementPtrInst::create(), CreateInBoundsGEP(), CreateInBoundsPtrAdd(), CreatePtrAdd(), DoFlattenLoopPair(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPWidenGEPRecipe::execute(), llvm::VPReverseVectorPointerRecipe::execute(), llvm::VPVectorPointerRecipe::execute(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPInterleaveRecipe::execute(), foldDependentIVs(), foldSelectGEP(), llvm::OpenMPIRBuilder::getSizeInBytes(), getStrlenWithNull(), hoistGEP(), instCombineLD1GatherIndex(), instCombineST1ScatterIndex(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), rewriteGEPAsOffset(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyRelocatesOffABase(), splitMergedValStore(), llvm::InstCombinerImpl::visitGEPOfGEP(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and DataScalarizerVisitor::visitGetElementPtrInst().
GlobalVariable * IRBuilderBase::CreateGlobalString | ( | StringRef | Str, |
const Twine & | Name = "" , |
||
unsigned | AddressSpace = 0 , |
||
Module * | M = nullptr , |
||
bool | AddNull = true |
||
) |
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 44 of file IRBuilder.cpp.
References BB, Context, llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::ConstantDataArray::getString(), llvm::Value::getType(), llvm::GlobalValue::Global, Name, llvm::GlobalValue::NotThreadLocal, and llvm::GlobalValue::PrivateLinkage.
Referenced by CreateGlobalStringPtr(), llvm::OpenMPIRBuilder::getOrCreateSrcLocStr(), and runSanitizeRealtimeBlocking().
|
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 2004 of file IRBuilder.h.
References Context, CreateGlobalString(), llvm::ConstantExpr::getInBoundsGetElementPtr(), llvm::Type::getInt32Ty(), llvm::GlobalValue::getValueType(), and Name.
|
inline |
Definition at line 2380 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldCmp(), Folder, Insert(), LHS, Name, P, and RHS.
Referenced by buildNew(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::OpenMPIRBuilder::createCanonicalLoop(), CreateCmp(), CreateICmpEQ(), CreateICmpNE(), CreateICmpSGE(), CreateICmpSGT(), CreateICmpSLE(), CreateICmpSLT(), CreateICmpUGE(), CreateICmpUGT(), CreateICmpULE(), CreateICmpULT(), createInvariantCond(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::EpilogueVectorizerMainLoop::emitIterationCountCheck(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::VPWidenRecipe::execute(), llvm::SCEVExpander::expandComparePredicate(), foldAndOrOfICmpEqConstantAndICmp(), foldAndOrOfICmpsWithConstEq(), foldAndOrOfICmpsWithPow2AndWithZero(), foldClampRangeOfTwo(), foldCtpop(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpDivConstant(), llvm::InstCombinerImpl::foldICmpOrConstant(), foldICmpOrXorSubChain(), llvm::InstCombinerImpl::foldICmpSelectConstant(), llvm::InstCombinerImpl::foldICmpUsingBoolRange(), foldICmpWithLowBitMaskedVal(), foldICmpWithTruncSignExtendedVal(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldNegativePower2AndShiftedMask(), llvm::InstCombinerImpl::foldSelectICmp(), llvm::InstCombinerImpl::FoldShiftByConstant(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), foldURemOfLoopIncrement(), llvm::SCEVExpander::generateOverflowCheck(), generateReproducer(), getNewICmpValue(), hoistMinMax(), llvm::InstCombinerImpl::insertRangeTest(), reassociateMinMaxWithConstants(), RunTermFold(), llvm::InstCombinerImpl::simplifyRangeCheck(), simplifySwitchOfCmpIntrinsic(), sinkMinMaxInBB(), llvm::splitLoopBound(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), llvm::UnrollRuntimeLoopRemainder(), upgradeMaskedCompare(), upgradeX86IntrinsicCall(), upgradeX86vpcom(), llvm::InstCombinerImpl::visitICmpInst(), and llvm::InstCombinerImpl::visitOr().
|
inline |
Definition at line 2270 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_EQ, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), llvm::buildCmpXchgValue(), llvm::InstCombinerImpl::commonIDivTransforms(), llvm::ConstantFoldTerminator(), CreateIsNull(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createTargetInit(), despeculateCountZeros(), llvm::orc::IRSpeculationLayer::emit(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), expandIToFP(), foldAnyOrAllBitsSet(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldIsPowerOf2(), foldSwitchToSelect(), generateUnsignedDivisionCode(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getStrlenWithNull(), preparePlanForEpilogueVectorLoop(), llvm::promoteCallWithVTableCmp(), llvm::orc::ReOptimizeLayer::reoptimizeIfCallFrequent(), llvm::SplitBlockAndInsertSimpleForLoop(), llvm::OpenMPIRBuilder::tileLoops(), upgradeX86IntrinsicCall(), llvm::versionCallSite(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitUDiv(), and llvm::InstCombinerImpl::visitURem().
|
inline |
Definition at line 2274 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_NE, LHS, Name, and RHS.
Referenced by CloneLoopBlocks(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), CreateIsNotNull(), llvm::createSanitizerCtorAndInitFunctions(), llvm::OpenMPIRBuilder::createTeams(), llvm::emitAMDGPUPrintfCall(), expandAnyOrAllIntrinsic(), expandIToFP(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldIsPowerOf2(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::lowerObjectSizeCall(), preparePlanForEpilogueVectorLoop(), llvm::KCFIPass::run(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), llvm::OpenMPIRBuilder::tileLoops(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitURem().
|
inline |
Definition at line 2298 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_SGE, LHS, Name, and RHS.
Referenced by llvm::AMDGPU::createSlowPathCmp(), and upgradeNVVMIntrinsicCall().
|
inline |
Definition at line 2294 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_SGT, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), CreateIsNotNeg(), expandFPToI(), expandIToFP(), llvm::InstCombinerImpl::foldICmpCommutative(), simplifyX86pack(), and llvm::InstCombinerImpl::visitOr().
|
inline |
Definition at line 2306 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_SLE, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), and upgradeNVVMIntrinsicCall().
|
inline |
Definition at line 2302 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_SLT, LHS, Name, and RHS.
Referenced by llvm::addRuntimeChecks(), llvm::OpenMPIRBuilder::createCanonicalLoop(), CreateIsNeg(), expandSignIntrinsic(), llvm::InstCombinerImpl::foldICmpCommutative(), getBoundsCheckCond(), simplifyX86pack(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitICmpInst(), and llvm::InstCombinerImpl::visitLShr().
|
inline |
Definition at line 2282 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_UGE, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), foldUnsignedUnderflowCheck(), upgradeNVVMIntrinsicCall(), and llvm::InstCombinerImpl::visitUDiv().
|
inline |
Definition at line 2278 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_UGT, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), llvm::InstCombinerImpl::foldICmpCommutative(), foldIsPowerOf2OrZero(), and generateUnsignedDivisionCode().
|
inline |
Definition at line 2290 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_ULE, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), and upgradeNVVMIntrinsicCall().
|
inline |
Definition at line 2286 of file IRBuilder.h.
References CreateICmp(), llvm::CmpInst::ICMP_ULT, LHS, Name, and RHS.
Referenced by llvm::addDiffRuntimeChecks(), llvm::addRuntimeChecks(), llvm::InstCombinerImpl::commonIDivTransforms(), llvm::OpenMPIRBuilder::createLoopSkeleton(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), expandFPToI(), llvm::InstCombinerImpl::foldICmpCommutative(), foldIsPowerOf2OrZero(), foldSignedTruncationCheck(), foldUnsignedUnderflowCheck(), getBoundsCheckCond(), llvm::lowerObjectSizeCall(), switchToLookupTable(), and llvm::InstCombinerImpl::visitURem().
|
inline |
Definition at line 1882 of file IRBuilder.h.
References CreateGEP(), llvm::GEPNoWrapFlags::inBounds(), Name, and Ptr.
Referenced by callBufferedPrintfArgPush(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::emitMapperCall(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), insertSpills(), unpackLoadToAggregate(), unpackStoreToAggregate(), and llvm::InstCombinerImpl::visitExtractValueInst().
|
inline |
Definition at line 1992 of file IRBuilder.h.
References CreateGEP(), getInt8Ty(), llvm::GEPNoWrapFlags::inBounds(), Name, llvm::Offset, and Ptr.
Referenced by foldMemChr().
|
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 1197 of file IRBuilder.h.
References Addr, llvm::IndirectBrInst::Create(), and Insert().
|
inline |
Definition at line 2516 of file IRBuilder.h.
References CreateInsertElement(), llvm::PoisonValue::get(), Idx, and Name.
|
inline |
Definition at line 2511 of file IRBuilder.h.
References CreateInsertElement(), llvm::PoisonValue::get(), Idx, and Name.
Referenced by canonicalizeInsertSplat(), llvm::sandboxir::InsertElementInst::create(), CreateInsertElement(), createTblShuffleForSExt(), createTblShuffleForZExt(), CreateVectorSplat(), evaluateInDifferentElementOrder(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), expandCrossIntrinsic(), foldTruncInsEltPair(), hoistInsEltConst(), insertValues(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVEDupqLane(), narrowInsElt(), optimizeIntegerToVectorInsertions(), llvm::VPTransformState::packScalarIntoVectorValue(), promoteAllocaUserToVector(), replaceTypedBufferAccess(), scalarize(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), simplifyAMDGCNMemoryIntrinsicDemanded(), upgradeMaskedMove(), upgradeX86IntrinsicCall(), and llvm::InstCombinerImpl::visitInsertElementInst().
|
inline |
Definition at line 2528 of file IRBuilder.h.
References CreateInsertElement(), getInt64(), Idx, and Name.
|
inline |
Definition at line 2521 of file IRBuilder.h.
References llvm::InsertElementInst::Create(), Folder, llvm::IRBuilderFolder::FoldInsertElement(), Idx, Insert(), and Name.
|
inline |
Definition at line 2562 of file IRBuilder.h.
References llvm::InsertValueInst::Create(), Folder, llvm::IRBuilderFolder::FoldInsertValue(), Insert(), and Name.
Referenced by llvm::sandboxir::InsertValueInst::create(), CreateAggregateRet(), createCast(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), expandFromPrimitiveShadowRecursive(), llvm::OpenMPIRBuilder::getKernelArgsVector(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), llvm::lowerAtomicCmpXchgInst(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), replaceFallthroughCoroEnd(), simplifyX86addcarry(), llvm::coro::AnyRetconABI::splitCoroutine(), unpackLoadToAggregate(), and llvm::UpgradeIntrinsicCall().
|
inline |
Create a call to the vector.insert intrinsic.
Definition at line 1080 of file IRBuilder.h.
References CreateIntrinsic(), llvm::Value::getType(), Idx, and Name.
Referenced by instCombineSVEDupqLane(), instCombineSVEUzp1(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), and llvm::UpgradeIntrinsicCall().
|
inline |
Definition at line 2225 of file IRBuilder.h.
References CreateCast(), llvm::Type::getScalarSizeInBits(), isSigned(), and Name.
Referenced by convertTo16Bit(), CreateMalloc(), llvm::OpenMPIRBuilder::createParallel(), llvm::AMDGPU::createSlowPathCmp(), llvm::coro::Shape::emitAlloc(), llvm::emitGEPOffset(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldICmpTruncWithTruncOrExt(), instCombineSVEUnpack(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::InstCombinerImpl::OptimizePointerDifference(), simplifyAllocaArraySize(), llvm::UpgradeIntrinsicCall(), upgradeX86ConcatShift(), upgradeX86Rotate(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and llvm::InstCombinerImpl::visitPtrToInt().
Create a vector integer max reduction intrinsic of the source vector.
Definition at line 432 of file IRBuilder.cpp.
Referenced by llvm::createFindLastIVReduction().
Create a vector integer min reduction intrinsic of the source vector.
Definition at line 438 of file IRBuilder.cpp.
CallInst * IRBuilderBase::CreateIntrinsic | ( | Intrinsic::ID | ID, |
ArrayRef< Type * > | Types, | ||
ArrayRef< Value * > | Args, | ||
FMFSource | FMFSource = {} , |
||
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 900 of file IRBuilder.cpp.
References BB, llvm::BasicBlock::getModule(), llvm::Intrinsic::getOrInsertDeclaration(), and Name.
Referenced by addBoundsChecking(), llvm::buildAtomicRMWValue(), callIntrinsic(), CreateArithmeticFence(), CreateConstrainedFPBinOp(), CreateConstrainedFPCast(), CreateConstrainedFPCmp(), CreateConstrainedFPUnroundedBinOp(), CreateCountTrailingZeroElems(), CreateElementUnorderedAtomicMemCpy(), CreateElementUnorderedAtomicMemMove(), CreateElementUnorderedAtomicMemSet(), CreateExtractVector(), CreateFAddReduce(), createFFSIntrinsic(), CreateFMulReduce(), CreateGCGetPointerBase(), CreateGCGetPointerOffset(), CreateGCRelocate(), CreateGCResult(), CreateInsertVector(), CreateInvariantStart(), createIsFPClass(), CreateLifetimeEnd(), CreateLifetimeStart(), createMaskInstrs(), CreateMemSet(), CreateMemSetInline(), CreateMemTransferInst(), llvm::createMinMaxOp(), CreateNoAliasScopeDeclaration(), llvm::SPIRVStructurizer::createOpSelectMerge(), createPopcntIntrinsic(), CreatePreserveArrayAccessIndex(), CreatePreserveStructAccessIndex(), CreatePreserveUnionAccessIndex(), createReverseEVL(), CreateStackRestore(), CreateStackSave(), CreateStepVector(), createTblForTrunc(), CreateThreadLocalAddress(), createTileStore(), CreateVScale(), llvm::AArch64TargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::ARMTargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::PPCTargetLowering::emitTrailingFence(), llvm::VPHistogramRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), expandAbs(), expandAtan2Intrinsic(), expandClampIntrinsic(), expandExpIntrinsic(), expandFloatDotIntrinsic(), expandIntegerDotIntrinsic(), expandLogIntrinsic(), expandNormalizeIntrinsic(), expandPowIntrinsic(), FlattenLoopPair(), foldCtpop(), foldFDivPowDivisor(), foldGuardedFunnelShift(), llvm::InstCombinerImpl::foldICmpEquality(), foldICmpIntrinsicWithIntrinsic(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), llvm::InstCombinerImpl::foldPowiReassoc(), llvm::InstCombinerImpl::foldSelectOpOp(), foldShuffledIntrinsicOperands(), foldSqrt(), foldSubOfMinMax(), llvm::AMDGPU::genAMDGPUReportBlock(), generateNewInstTree(), llvm::SCEVExpander::generateOverflowCheck(), llvm::memtag::getFP(), inlineRetainOrClaimRVCalls(), InsertIntrinsicCalls(), InsertTrap(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::ARMTTIImpl::instCombineIntrinsic(), instCombineRDFFR(), instCombineSVECmpNE(), instCombineSVECondLast(), instCombineSVELast(), instCombineSVEPTest(), instCombineSVESDIV(), instCombineSVESrshl(), instCombineSVEVectorFuseMulAddSub(), interleaveVectors(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleaveIntrinsicToStore(), lowerIntrinsicToFunction(), lowerKernelArguments(), lowerPtrAnnotation(), llvm::ARMTargetLowering::makeDMB(), matchOrConcat(), modifyIntrinsicCall(), processUMulZExtIdiom(), llvm::memtag::readRegister(), reassociateMinMaxWithConstants(), reduceSwitchRange(), replaceTypedBufferAccess(), replaceWithTileLoad(), llvm::KCFIPass::run(), simplifyAMDGCNMemoryIntrinsicDemanded(), simplifySwitchOfPowersOfTwo(), simplifyX86addcarry(), simplifyX86extrq(), simplifyX86insertq(), simplifyX86pmadd(), tryCombineFromSVBoolBinOp(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), tryToFPToSat(), tryToRecognizePopCount(), upgradeAArch64IntrinsicCall(), upgradeAbs(), upgradeARMIntrinsicCall(), upgradeAVX512MaskToSelect(), upgradeNVVMIntrinsicCall(), upgradeX86BinaryIntrinsics(), upgradeX86ConcatShift(), upgradeX86IntrinsicCall(), upgradeX86MaskedShift(), upgradeX86Rotate(), upgradeX86VPERMT2Intrinsics(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFAdd(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitFSub(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitTrunc().
CallInst * IRBuilderBase::CreateIntrinsic | ( | Type * | RetTy, |
Intrinsic::ID | ID, | ||
ArrayRef< Value * > | Args, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" |
||
) |
Create a call to intrinsic ID
with RetTy
and Args
.
If FMFSource
is provided, copy fast-math-flags from that instruction to the intrinsic.
Definition at line 910 of file IRBuilder.cpp.
References assert(), BB, llvm::ArrayRef< T >::empty(), llvm::FunctionType::get(), llvm::Intrinsic::getIntrinsicInfoTableEntries(), llvm::BasicBlock::getModule(), llvm::Intrinsic::getOrInsertDeclaration(), I, llvm::Intrinsic::MatchIntrinsicTypes_Match, Name, llvm::SmallVectorTemplateBase< T, bool >::push_back(), llvm::SmallVectorImpl< T >::reserve(), and RetTy.
|
inline |
Definition at line 2147 of file IRBuilder.h.
References CreateCast(), and Name.
Referenced by llvm::VNCoercion::coerceAvailableValueToLoadType(), llvm::OpenMPIRBuilder::createAtomicRead(), CreateBitOrPointerCast(), createCast(), insertSpills(), llvm::AMDGPU::instrumentAddress(), llvm::AMDGPU::instrumentAddressImpl(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), promoteAllocaUserToVector(), and llvm::KCFIPass::run().
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 484 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), getInt64(), getInt64Ty(), Ptr, and Size.
|
inline |
Definition at line 1224 of file IRBuilder.h.
References CreateInvoke(), and Name.
|
inline |
Definition at line 1232 of file IRBuilder.h.
|
inline |
Create an invoke instruction.
Definition at line 1202 of file IRBuilder.h.
References llvm::InvokeInst::Create(), II, Insert(), IsFPConstrained, Name, and setConstrainedFPCallAttr().
Referenced by CreateGCStatepointInvokeCommon(), CreateInvoke(), and lowerAwaitSuspend().
|
inline |
Definition at line 1213 of file IRBuilder.h.
Definition at line 1248 of file IRBuilder.cpp.
References CreateIntrinsic(), getInt32(), llvm::Value::getType(), and llvm::Test.
Referenced by foldFCmpToFPClassTest(), llvm::InstCombinerImpl::foldICmpAndConstConst(), and llvm::InstCombinerImpl::foldICmpBitCast().
Return a boolean value testing if Arg
< 0.
Definition at line 2593 of file IRBuilder.h.
References CreateICmpSLT(), llvm::Constant::getNullValue(), llvm::Value::getType(), and Name.
Referenced by canonicalizeAbs(), simplifyX86movmsk(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitMul(), and llvm::InstCombinerImpl::visitSub().
Return a boolean value testing if Arg
> -1.
Definition at line 2598 of file IRBuilder.h.
References CreateICmpSGT(), llvm::Constant::getAllOnesValue(), llvm::Value::getType(), and Name.
Referenced by llvm::InstCombinerImpl::foldAddWithConstant(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSDiv(), and llvm::InstCombinerImpl::visitXor().
Return a boolean value testing if Arg
!= 0.
Definition at line 2588 of file IRBuilder.h.
References CreateICmpNE(), llvm::Constant::getNullValue(), llvm::Value::getType(), and Name.
Referenced by llvm::OpenMPIRBuilder::emitKernelLaunch(), foldAnyOrAllBitsSet(), foldSelectICmpAndAnd(), llvm::AMDGPU::genAMDGPUReportBlock(), llvm::AMDGPU::instrumentAddressImpl(), upgradeMaskedMove(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), and llvm::InstCombinerImpl::visitOr().
Return a boolean value testing if Arg
== 0.
Definition at line 2583 of file IRBuilder.h.
References CreateICmpEQ(), llvm::Constant::getNullValue(), llvm::Value::getType(), and Name.
Referenced by llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::InstCombinerImpl::foldICmpUsingBoolRange(), llvm::coro::BaseCloner::handleFinalSuspend(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitAShr(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitLShr().
|
inline |
Definition at line 2569 of file IRBuilder.h.
References llvm::LandingPadInst::Create(), Insert(), and Name.
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 1086 of file IRBuilder.cpp.
References assert(), BB, CreateCall(), llvm::Function::getFunctionType(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::FunctionType::getParamType(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::Function::getReturnType(), and Ptr.
Referenced by simplifyInvariantGroupIntrinsic().
|
inline |
Create call to the ldexp intrinsic.
Definition at line 1057 of file IRBuilder.h.
Referenced by llvm::InstCombinerImpl::visitCallInst().
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 472 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), getInt64(), getInt64Ty(), Ptr, and Size.
Referenced by llvm::InlineFunction().
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 460 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), getInt64(), getInt64Ty(), Ptr, and Size.
Referenced by llvm::InlineFunction().
|
inline |
Definition at line 1806 of file IRBuilder.h.
References CreateAlignedLoad(), Name, and Ptr.
Provided to resolve 'CreateLoad(Ty, Ptr, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter.
Definition at line 1798 of file IRBuilder.h.
References CreateAlignedLoad(), Name, and Ptr.
Referenced by llvm::OpenMPIRBuilder::createAtomicRead(), llvm::OpenMPIRBuilder::createCopyPrivate(), createFakeIntVal(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTask(), eliminateSwiftErrorArgument(), llvm::orc::IRSpeculationLayer::emit(), emitSetAndGetSwiftErrorValueAround(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), getStrlenWithNull(), llvm::coro::BaseCloner::handleFinalSuspend(), hostParallelCallback(), insertSpills(), instCombineSVELD1(), llvm::lowerAtomicRMWInst(), lowerSubFn(), llvm::orc::makeStub(), promoteAllocaUserToVector(), llvm::orc::ReOptimizeLayer::reoptimizeIfCallFrequent(), replaceSwiftErrorOps(), llvm::KCFIPass::run(), llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(), scalarizeMaskedVectorHistogram(), llvm::InstCombinerImpl::SimplifyAnyMemTransfer(), targetParallelCallback(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitExtractValueInst(), DataScalarizerVisitor::visitLoadInst(), and llvm::InstCombinerImpl::visitLoadInst().
|
inline |
Definition at line 1802 of file IRBuilder.h.
References CreateAlignedLoad(), Name, and Ptr.
|
inline |
Definition at line 1688 of file IRBuilder.h.
References assert(), CreateSelect(), llvm::Constant::getNullValue(), llvm::Value::getType(), llvm::Type::isIntOrIntVectorTy(), and Name.
Referenced by CreateLogicalOp(), createLogicalOp(), foldAndOrOfICmpsWithConstEq(), and sinkMinMaxInBB().
|
inline |
Definition at line 1700 of file IRBuilder.h.
References CreateLogicalAnd(), CreateLogicalOr(), llvm_unreachable, and Name.
Referenced by llvm::InstCombiner::getFreelyInvertedImpl(), llvm::InstCombinerImpl::sinkNotIntoLogicalOp(), and llvm::InstCombinerImpl::sinkNotIntoOtherHandOfLogicalOp().
Definition at line 1714 of file IRBuilder.h.
References assert(), CreateLogicalOr(), llvm::ArrayRef< T >::empty(), and llvm::ArrayRef< T >::size().
|
inline |
Definition at line 1694 of file IRBuilder.h.
References assert(), CreateSelect(), llvm::Constant::getAllOnesValue(), llvm::Value::getType(), llvm::Type::isIntOrIntVectorTy(), and Name.
Referenced by CreateLogicalOp(), createLogicalOp(), CreateLogicalOr(), foldAndOrOfICmpsWithConstEq(), generateUnsignedDivisionCode(), sinkMinMaxInBB(), and llvm::InstCombinerImpl::visitBranchInst().
|
inline |
Definition at line 1489 of file IRBuilder.h.
References CreateLShr(), LHS, Name, and RHS.
|
inline |
Definition at line 1494 of file IRBuilder.h.
References CreateLShr(), LHS, Name, and RHS.
|
inline |
Definition at line 1480 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldExactBinOp(), Insert(), LHS, Name, and RHS.
Referenced by llvm::VNCoercion::coerceAvailableValueToLoadType(), CreateLShr(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), expandFPToI(), expandIToFP(), extractIntPart(), extractMaskedValue(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpAndShift(), foldICmpWithHighBitMask(), foldIDivShl(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), generateUnsignedDivisionCode(), getMul64(), getShiftedValue(), llvm::VNCoercion::getStoreValueForLoadHelper(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), llvm::AMDGPU::instrumentAddress(), LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), lowerFunnelShifts(), lowerKernelArguments(), llvm::AMDGPU::memToShadow(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyX86immShift(), simplifyX86pmulh(), simplifyX86varShift(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), switchToLookupTable(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSDiv(), llvm::InstCombinerImpl::visitUDiv(), and llvm::InstCombinerImpl::visitXor().
CallInst * IRBuilderBase::CreateMalloc | ( | Type * | IntPtrTy, |
Type * | AllocTy, | ||
Value * | AllocSize, | ||
Value * | ArraySize, | ||
ArrayRef< OperandBundleDef > | OpB, | ||
Function * | MallocF = nullptr , |
||
const Twine & | Name = "" |
||
) |
Definition at line 290 of file IRBuilder.cpp.
References assert(), BB, Context, CreateCall(), CreateIntCast(), CreateMul(), F, llvm::FunctionCallee::getCallee(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::Value::getType(), llvm::PointerType::getUnqual(), isConstantOne(), llvm::Type::isVoidTy(), Name, llvm::CallBase::setCallingConv(), and llvm::CallInst::setTailCall().
Referenced by CreateMalloc().
CallInst * IRBuilderBase::CreateMalloc | ( | Type * | IntPtrTy, |
Type * | AllocTy, | ||
Value * | AllocSize, | ||
Value * | ArraySize, | ||
Function * | MallocF = nullptr , |
||
const Twine & | Name = "" |
||
) |
CreateMalloc - Generate the IR for a call to malloc:
Definition at line 333 of file IRBuilder.cpp.
References CreateMalloc(), and Name.
CallInst * IRBuilderBase::CreateMaskedCompressStore | ( | Value * | Val, |
Value * | Ptr, | ||
MaybeAlign | Align, | ||
Value * | Mask = nullptr |
||
) |
Create a call to Masked Compress Store intrinsic.
Create a call to Masked Compress Store intrinsic Val
- data to be stored, Ptr
- base pointer for the store Align
- alignment of Ptr
Mask
- vector of booleans which indicates what vector lanes should be accessed in memory.
Definition at line 676 of file IRBuilder.cpp.
References llvm::CallBase::addParamAttr(), assert(), llvm::Value::getContext(), llvm::Value::getType(), llvm::Attribute::getWithAlignment(), llvm::Type::isVectorTy(), and Ptr.
CallInst * IRBuilderBase::CreateMaskedExpandLoad | ( | Type * | Ty, |
Value * | Ptr, | ||
MaybeAlign | Align, | ||
Value * | Mask = nullptr , |
||
Value * | PassThru = nullptr , |
||
const Twine & | Name = "" |
||
) |
Create a call to Masked Expand Load intrinsic.
Create a call to Masked Expand Load intrinsic Ty
- vector type to load Ptr
- base pointer for the load Align
- alignment of Ptr
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 653 of file IRBuilder.cpp.
References llvm::CallBase::addParamAttr(), assert(), llvm::PoisonValue::get(), llvm::Value::getContext(), llvm::Attribute::getWithAlignment(), llvm::Type::isVectorTy(), Name, and Ptr.
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 596 of file IRBuilder.cpp.
References assert(), llvm::PoisonValue::get(), getAllOnesMask(), getInt32(), llvm::Value::getType(), Name, and llvm::Align::value().
Referenced by llvm::VPWidenLoadRecipe::execute().
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 546 of file IRBuilder.cpp.
References assert(), llvm::PoisonValue::get(), getInt32(), llvm::Type::isVectorTy(), Name, Ptr, and llvm::Align::value().
Referenced by llvm::VPInterleaveRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), hoistConditionalLoadsStores(), instCombineLD1GatherIndex(), instCombineSVELD1(), simplifyX86MaskedLoad(), and upgradeMaskedLoad().
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 627 of file IRBuilder.cpp.
References llvm::Data, getAllOnesMask(), getInt32(), llvm::Value::getType(), and llvm::Align::value().
Referenced by llvm::VPWidenStoreRecipe::execute().
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 566 of file IRBuilder.cpp.
References assert(), getInt32(), llvm::Value::getType(), llvm::Type::isVectorTy(), Ptr, and llvm::Align::value().
Referenced by llvm::VPInterleaveRecipe::execute(), llvm::VPWidenStoreRecipe::execute(), hoistConditionalLoadsStores(), instCombineST1ScatterIndex(), instCombineSVEST1(), simplifyX86MaskedStore(), and upgradeMaskedStore().
|
inline |
Create call to the maximum intrinsic.
Definition at line 1033 of file IRBuilder.h.
References CreateBinaryIntrinsic(), LHS, Name, and RHS.
|
inline |
Create call to the maximum intrinsic.
Definition at line 1044 of file IRBuilder.h.
References CreateBinaryIntrinsic(), LHS, Name, and RHS.
|
inline |
Create call to the maxnum intrinsic.
Definition at line 1018 of file IRBuilder.h.
References CreateBinaryIntrinsic(), CreateConstrainedFPUnroundedBinOp(), IsFPConstrained, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), and llvm::GCNTTIImpl::instCombineIntrinsic().
|
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 677 of file IRBuilder.h.
References CreateMemCpy(), getInt64(), and Size.
Referenced by callBufferedPrintfArgPush(), CreateMemCpy(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), and HandleByValArgumentInit().
|
inline |
Definition at line 694 of file IRBuilder.h.
References CreateMemTransferInst(), and Size.
|
inline |
Definition at line 706 of file IRBuilder.h.
References CreateMemTransferInst(), and Size.
|
inline |
Definition at line 729 of file IRBuilder.h.
References CreateMemMove(), getInt64(), and Size.
Referenced by CreateMemMove().
|
inline |
Definition at line 738 of file IRBuilder.h.
References CreateMemTransferInst(), and Size.
|
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 614 of file IRBuilder.h.
References CreateMemSet(), getInt64(), Ptr, and Size.
Referenced by CreateMemSet(), lowerIntrinsicToFunction(), and OptimizeGlobalAddressOfAllocation().
CallInst * IRBuilderBase::CreateMemSet | ( | Value * | Ptr, |
Value * | Val, | ||
Value * | Size, | ||
MaybeAlign | Align, | ||
bool | isVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 136 of file IRBuilder.cpp.
References CreateIntrinsic(), getInt1(), Ptr, llvm::Instruction::setMetadata(), and Size.
CallInst * IRBuilderBase::CreateMemSetInline | ( | Value * | Dst, |
MaybeAlign | DstAlign, | ||
Value * | Val, | ||
Value * | Size, | ||
bool | IsVolatile = false , |
||
MDNode * | TBAATag = nullptr , |
||
MDNode * | ScopeTag = nullptr , |
||
MDNode * | NoAliasTag = nullptr |
||
) |
Definition at line 161 of file IRBuilder.cpp.
References CreateIntrinsic(), getInt1(), llvm::Instruction::setMetadata(), and Size.
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 |
||
) |
Definition at line 212 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), getInt1(), llvm::Instruction::setMetadata(), and Size.
Referenced by convertToParamAS(), CreateMemCpy(), CreateMemCpyInline(), and CreateMemMove().
|
inline |
Create call to the minimum intrinsic.
Definition at line 1028 of file IRBuilder.h.
References CreateBinaryIntrinsic(), LHS, Name, and RHS.
|
inline |
Create call to the minimumnum intrinsic.
Definition at line 1038 of file IRBuilder.h.
References CreateBinaryIntrinsic(), LHS, Name, and RHS.
|
inline |
Create call to the minnum intrinsic.
Definition at line 1008 of file IRBuilder.h.
References CreateBinaryIntrinsic(), CreateConstrainedFPUnroundedBinOp(), IsFPConstrained, LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), and llvm::GCNTTIImpl::instCombineIntrinsic().
|
inline |
Definition at line 1404 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldNoWrapBinOp(), LHS, Name, and RHS.
Referenced by llvm::addDiffRuntimeChecks(), buildMultiplyTree(), CheckAndCreateOffsetAdd(), llvm::OpenMPIRBuilder::collapseLoops(), llvm::OpenMPIRBuilder::createCanonicalLoop(), CreateMalloc(), CreateNSWMul(), CreateNUWMul(), CreateVScale(), llvm::emitGEPOffset(), llvm::VPReverseVectorPointerRecipe::execute(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPInterleaveRecipe::execute(), expandFPToI(), expandIntegerDotIntrinsic(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), generateUnsignedRemainderCode(), getMul64(), getStepVector(), hoistMulAddAssociation(), matchStridedStart(), llvm::VPlan::prepareToExecute(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), simplifyX86pmadd(), simplifyX86pmulh(), llvm::OpenMPIRBuilder::tileLoops(), upgradePMULDQ(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), llvm::ObjectSizeOffsetEvaluator::visitCallBase(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitMul(), and llvm::InstCombinerImpl::visitSub().
Create a vector int mul reduction intrinsic of the source vector.
Definition at line 416 of file IRBuilder.cpp.
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 968 of file IRBuilder.cpp.
References assert(), CreateBinOp(), CreateUnOp(), llvm::Instruction::isBinaryOp(), llvm::Instruction::isUnaryOp(), llvm_unreachable, Name, and llvm::ArrayRef< T >::size().
Referenced by llvm::VPWidenRecipe::execute().
|
inline |
Definition at line 1733 of file IRBuilder.h.
References CreateSub(), llvm::Constant::getNullValue(), and Name.
Referenced by canonicalizeAbs(), canonicalizeSaturatedSubtract(), llvm::OpenMPIRBuilder::createCanonicalLoop(), CreateNSWNeg(), llvm::VPHistogramRecipe::execute(), llvm::VPInterleaveRecipe::execute(), foldFDivPowDivisor(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), foldMulSelectToNegate(), foldUnsignedUnderflowCheck(), llvm::SCEVExpander::generateOverflowCheck(), llvm::InstCombinerImpl::OptimizePointerDifference(), upgradeNVVMIntrinsicCall(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitShl(), and llvm::InstCombinerImpl::visitSub().
|
inline |
Definition at line 882 of file IRBuilder.h.
References Context, CreateNoAliasScopeDeclaration(), and llvm::MetadataAsValue::get().
Instruction * IRBuilderBase::CreateNoAliasScopeDeclaration | ( | Value * | Scope | ) |
Create a llvm.experimental.noalias.scope.decl intrinsic call.
Definition at line 532 of file IRBuilder.cpp.
References CreateIntrinsic().
Referenced by AddAliasScopeMetadata(), and CreateNoAliasScopeDeclaration().
Definition at line 1757 of file IRBuilder.h.
References CreateXor(), llvm::Constant::getAllOnesValue(), and Name.
Referenced by llvm::buildAtomicRMWValue(), canonicalizeICmpBool(), createLogicFromTable(), createMaskInstrs(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::InstCombinerImpl::foldAddWithConstant(), llvm::InstCombinerImpl::foldBinOpShiftWithShift(), foldComplexAndOrPatterns(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpBinOp(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), foldNotXor(), freelyInvert(), insertSpills(), llvm::InvertBranch(), LowerCTLZ(), llvm::IntrinsicLowering::LowerIntrinsicCall(), matchDeMorgansLaws(), mergeConditionalStoreToAddress(), removeUndefIntroducingPredecessor(), SimplifyCondBranchToCondBranch(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyTernarylogic(), simplifyUsingControlFlow(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitBranchInst(), llvm::InstCombinerImpl::visitCallInst(), visitMaskedMerge(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 1379 of file IRBuilder.h.
References CreateAdd(), LHS, Name, and RHS.
|
inline |
Definition at line 1413 of file IRBuilder.h.
References CreateMul(), LHS, Name, and RHS.
Referenced by llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitMul().
Definition at line 1738 of file IRBuilder.h.
References CreateNeg(), and Name.
|
inline |
Definition at line 1396 of file IRBuilder.h.
References CreateSub(), LHS, Name, and RHS.
|
inline |
Definition at line 1383 of file IRBuilder.h.
References CreateAdd(), LHS, Name, and RHS.
Referenced by llvm::OpenMPIRBuilder::emitUserDefinedMapper(), foldNoWrapAdd(), and foldURemOfLoopIncrement().
|
inline |
Definition at line 1417 of file IRBuilder.h.
References CreateMul(), LHS, Name, and RHS.
Referenced by ShapeCalculator::getColFromRow().
|
inline |
Definition at line 1400 of file IRBuilder.h.
References CreateSub(), LHS, Name, and RHS.
Definition at line 1554 of file IRBuilder.h.
References assert(), CreateOr(), llvm::ArrayRef< T >::empty(), and llvm::ArrayRef< T >::size().
|
inline |
Definition at line 1546 of file IRBuilder.h.
References CreateOr(), LHS, Name, and RHS.
Definition at line 1550 of file IRBuilder.h.
References CreateOr(), LHS, Name, and RHS.
Definition at line 1540 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldBinOp(), Folder, Insert(), LHS, Name, and RHS.
Referenced by llvm::addDiffRuntimeChecks(), llvm::addRuntimeChecks(), llvm::buildAtomicRMWValue(), buildPartialUnswitchConditionalBranch(), checkForNegativeOperand(), createLogicFromTable(), CreateOr(), llvm::OpenMPIRBuilder::createTask(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), expandAnyOrAllIntrinsic(), expandFPToI(), expandIToFP(), llvm::SCEVExpander::expandUnionPredicate(), llvm::SCEVExpander::expandWrapPredicate(), foldComplexAndOrPatterns(), llvm::InstCombinerImpl::foldICmpAndConstConst(), foldICmpAndXX(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), llvm::InstCombinerImpl::foldICmpEqIntrinsicWithConstant(), foldICmpOrXX(), llvm::InstCombinerImpl::foldICmpSelectConstant(), llvm::InstCombinerImpl::foldICmpSubConstant(), llvm::InstCombinerImpl::foldICmpWithZextOrSext(), foldLogOpOfMaskedICmps(), foldMinimumOverTrailingOrLeadingZeroCount(), foldSelectICmpAndAnd(), foldSwitchToSelect(), llvm::SCEVExpander::generateOverflowCheck(), generateUnsignedDivisionCode(), getBoundsCheckCond(), llvm::VNCoercion::getMemInstValueForLoad(), insertMaskedValue(), LowerBSWAP(), LowerCTLZ(), lowerFunnelShifts(), matchOrConcat(), mergeConditionalStoreToAddress(), performMaskedAtomicOp(), llvm::promoteCallWithVTableCmp(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyTernarylogic(), upgradeX86IntrinsicCall(), llvm::LoopVersioning::versionLoop(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitXor().
Create a vector int OR reduction intrinsic of the source vector.
Definition at line 424 of file IRBuilder.cpp.
Referenced by llvm::createAnyOfReduction(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 2435 of file IRBuilder.h.
References llvm::PHINode::Create(), FMF, Insert(), and Name.
Referenced by llvm::sandboxir::PHINode::create(), llvm::OpenMPIRBuilder::createLoopSkeleton(), llvm::createMemCpyLoopKnownSize(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), createMemSetLoop(), createRetPHINode(), despeculateCountZeros(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPScalarPHIRecipe::execute(), llvm::VPWidenPHIRecipe::execute(), llvm::VPPredInstPHIRecipe::execute(), llvm::VPActiveLaneMaskPHIRecipe::execute(), expandFPToI(), expandIToFP(), expandToSwitch(), foldGEPOfPhi(), llvm::InstCombinerImpl::foldICmpWithConstant(), foldMemChr(), foldURemOfLoopIncrement(), generateUnsignedDivisionCode(), llvm::InstCombiner::getFreelyInvertedImpl(), getStrlenWithNull(), optimizeSQRT(), processPhiNode(), rewritePHIsForCleanupPad(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), llvm::SplitBlockAndInsertSimpleForLoop(), llvm::coro::AnyRetconABI::splitCoroutine(), llvm::splitLoopBound(), and llvm::ObjectSizeOffsetEvaluator::visitPHINode().
|
inline |
Definition at line 2211 of file IRBuilder.h.
References llvm::IRBuilderFolder::CreatePointerBitCastOrAddrSpaceCast(), llvm::CastInst::CreatePointerBitCastOrAddrSpaceCast(), Folder, Insert(), and Name.
Referenced by llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createTask(), and llvm::OpenMPIRBuilder::emitNonContiguousDescriptor().
|
inline |
Definition at line 2199 of file IRBuilder.h.
References llvm::IRBuilderFolder::CreatePointerCast(), llvm::CastInst::CreatePointerCast(), Folder, Insert(), and Name.
Referenced by llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitOffloadingArraysArgument(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), targetParallelCallback(), upgradeX86IntrinsicCall(), and UseTlsOffset().
Value * IRBuilderBase::CreatePreserveArrayAccessIndex | ( | Type * | ElTy, |
Value * | Base, | ||
unsigned | Dimension, | ||
unsigned | LastIndex, | ||
MDNode * | DbgInfo | ||
) |
Definition at line 1183 of file IRBuilder.cpp.
References llvm::CallBase::addParamAttr(), assert(), llvm::sampleprof::Base, Context, CreateIntrinsic(), llvm::Attribute::get(), llvm::Value::getContext(), llvm::GetElementPtrInst::getGEPReturnType(), getInt32(), llvm::Type::getInt32Ty(), llvm::SmallVectorTemplateBase< T, bool >::push_back(), and llvm::Instruction::setMetadata().
Value * IRBuilderBase::CreatePreserveStructAccessIndex | ( | Type * | ElTy, |
Value * | Base, | ||
unsigned | Index, | ||
unsigned | FieldIndex, | ||
MDNode * | DbgInfo | ||
) |
Definition at line 1224 of file IRBuilder.cpp.
References llvm::CallBase::addParamAttr(), assert(), llvm::sampleprof::Base, Context, CreateIntrinsic(), llvm::Attribute::get(), llvm::Value::getContext(), llvm::GetElementPtrInst::getGEPReturnType(), getInt32(), llvm::Type::getInt32Ty(), and llvm::Instruction::setMetadata().
Value * IRBuilderBase::CreatePreserveUnionAccessIndex | ( | Value * | Base, |
unsigned | FieldIndex, | ||
MDNode * | DbgInfo | ||
) |
Definition at line 1209 of file IRBuilder.cpp.
References assert(), llvm::sampleprof::Base, CreateIntrinsic(), getInt32(), and llvm::Instruction::setMetadata().
|
inline |
Definition at line 1987 of file IRBuilder.h.
References CreateGEP(), getInt8Ty(), Name, llvm::Offset, and Ptr.
Referenced by canonicalizeGEPOfConstGEPI8(), constructPointer(), createByteGEP(), foldConsecutiveLoads(), llvm::SCEVExpander::generateOverflowCheck(), insertSpills(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedStore(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
Value * IRBuilderBase::CreatePtrDiff | ( | Type * | ElemTy, |
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 1075 of file IRBuilder.cpp.
References assert(), Context, CreateExactSDiv(), CreatePtrToInt(), CreateSub(), llvm::Type::getInt64Ty(), llvm::ConstantExpr::getSizeOf(), llvm::Value::getType(), LHS, Name, and RHS.
|
inline |
Definition at line 2142 of file IRBuilder.h.
References CreateCast(), and Name.
Referenced by llvm::VNCoercion::coerceAvailableValueToLoadType(), convertToShadowDataInt(), CreateBitOrPointerCast(), createCast(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), createMaskInstrs(), CreatePtrDiff(), llvm::OpenMPIRBuilder::createTask(), llvm::orc::IRSpeculationLayer::emit(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), emitTaskDependencies(), fitArgInto64Bits(), llvm::memtag::getFP(), llvm::memtag::getPC(), llvm::OpenMPIRBuilder::getSizeInBytes(), llvm::VNCoercion::getStoreValueForLoadHelper(), getStrlenWithNull(), inlineGetBaseAndOffset(), insertSpills(), llvm::AMDGPU::instrumentAddress(), llvm::AMDGPU::instrumentAddressImpl(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), makeStatepointExplicitImpl(), llvm::KCFIPass::run(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitPtrToInt().
|
inline |
Definition at line 1275 of file IRBuilder.h.
References llvm::ResumeInst::Create(), and Insert().
Referenced by llvm::sandboxir::ResumeInst::create().
|
inline |
Create a 'ret <val>' instruction.
Definition at line 1139 of file IRBuilder.h.
References Context, llvm::ReturnInst::Create(), and Insert().
Referenced by createThunk(), generateReproducer(), llvm::Instruction::hasPoisonGeneratingMetadata(), llvm::InlineFunction(), lowerFunnelShifts(), lowerIntrinsicToFunction(), llvm::orc::makeStub(), replaceFallthroughCoroEnd(), and llvm::coro::AnyRetconABI::splitCoroutine().
|
inline |
Create a 'ret void' instruction.
Definition at line 1134 of file IRBuilder.h.
References Context, llvm::ReturnInst::Create(), and Insert().
Referenced by createFrameHelperMachineFunction(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTargetInit(), createThunk(), llvm::ThunkInserter< Derived, InsertedThunksTy >::createThunkFunction(), emitTargetTaskProxyFunction(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::InlineFunction(), llvm::lowerGlobalIFuncUsersAsGlobalCtor(), lowerIntrinsicToFunction(), llvm::orc::makeStub(), replaceCoroEndAsync(), replaceFallthroughCoroEnd(), and llvm::coro::AsyncABI::splitCoroutine().
|
inline |
Definition at line 1434 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldExactBinOp(), Insert(), LHS, Name, and RHS.
Referenced by CreateExactSDiv(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), foldIDivShl(), and llvm::InstCombinerImpl::visitSDiv().
Value * IRBuilderBase::CreateSelect | ( | Value * | C, |
Value * | True, | ||
Value * | False, | ||
const Twine & | Name = "" , |
||
Instruction * | MDFrom = nullptr |
||
) |
Definition at line 1053 of file IRBuilder.cpp.
References llvm::CallingConv::C, CreateSelectFMF(), and Name.
Referenced by llvm::buildAtomicRMWValue(), llvm::buildCmpXchgValue(), llvm::createAnyOfReduction(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCanonicalLoop(), llvm::SPIRVMergeRegionExitTargets::createExitVariable(), llvm::createFindLastIVReduction(), CreateLogicalAnd(), CreateLogicalOr(), llvm::createMinMaxOp(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTeams(), emitRsqIEEE1ULP(), emitX86ScalarSelect(), emitX86Select(), llvm::VPWidenSelectRecipe::execute(), llvm::VPBlendRecipe::execute(), llvm::VPReductionRecipe::execute(), expandAtan2Intrinsic(), expandFPToI(), expandStepIntrinsic(), foldMulSelectToNegate(), llvm::InstCombinerImpl::foldSelectIntoOp(), llvm::InstCombinerImpl::foldSelectOpOp(), foldSetClearBits(), foldSwitchToSelect(), foldURemOfLoopIncrement(), generateNewInstTree(), llvm::SCEVExpander::generateOverflowCheck(), generateUnsignedDivisionCode(), llvm::InstCombiner::getFreelyInvertedImpl(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVESel(), llvm::lowerObjectSizeCall(), preparePlanForEpilogueVectorLoop(), reassociateMinMaxWithConstants(), SimplifyCondBranchToCondBranch(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), simplifyX86pack(), llvm::InstCombinerImpl::takeLog2(), llvm::OpenMPIRBuilder::tileLoops(), upgradeMaskedMove(), upgradeNVVMIntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitCallInst(), and llvm::ObjectSizeOffsetEvaluator::visitSelectInst().
Value * IRBuilderBase::CreateSelectFMF | ( | Value * | C, |
Value * | True, | ||
Value * | False, | ||
FMFSource | FMFSource, | ||
const Twine & | Name = "" , |
||
Instruction * | MDFrom = nullptr |
||
) |
Definition at line 1058 of file IRBuilder.cpp.
References llvm::CallingConv::C, llvm::SelectInst::Create(), FMF, Folder, llvm::IRBuilderFolder::FoldSelect(), llvm::FMFSource::get(), llvm::Instruction::getMetadata(), Insert(), and Name.
Referenced by CreateSelect(), foldMulSelectToNegate(), foldTwoEntryPHINode(), and llvm::InstCombinerImpl::visitFPTrunc().
|
inline |
Definition at line 2045 of file IRBuilder.h.
References CreateCast(), and Name.
Referenced by llvm::OpenMPIRBuilder::createAtomicCompare(), CreateSExtOrTrunc(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), expandFPToI(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), foldNoWrapAdd(), llvm::InstCombiner::getFreelyInvertedImpl(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), sinkMinMaxInBB(), tryInterleave(), tryToFPToSat(), upgradeMaskToInt(), upgradeX86IntrinsicCall(), upgradeX86vpcom(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitGetElementPtrInst(), and llvm::InstCombinerImpl::visitSub().
|
inline |
Definition at line 2170 of file IRBuilder.h.
References CreateCast(), llvm::Type::getScalarSizeInBits(), and 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 2066 of file IRBuilder.h.
References assert(), CreateSExt(), CreateTrunc(), llvm::Type::getScalarSizeInBits(), llvm::Type::isIntOrIntVectorTy(), and Name.
Referenced by hostParallelCallback(), and targetParallelCallback().
|
inline |
Definition at line 1468 of file IRBuilder.h.
References CreateShl(), LHS, Name, and RHS.
|
inline |
Definition at line 1474 of file IRBuilder.h.
References CreateShl(), LHS, Name, and RHS.
|
inline |
Definition at line 1459 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldNoWrapBinOp(), LHS, Name, and RHS.
Referenced by canonicalizeLowbitMask(), combineAddSubWithShlAddSub(), llvm::InstCombinerImpl::commonIDivTransforms(), convertToRelLookupTable(), convertToShadowDataInt(), createMaskInstrs(), CreateShl(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), expandFPToI(), expandIToFP(), llvm::InstCombinerImpl::foldAddWithConstant(), foldConsecutiveLoads(), llvm::InstCombinerImpl::foldICmpAndConstConst(), llvm::InstCombinerImpl::foldICmpAndShift(), foldIDivShl(), foldMulShl1(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndBinOp(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), generateUnsignedDivisionCode(), llvm::VNCoercion::getMemInstValueForLoad(), getShiftedValue(), llvm::memtag::incrementThreadLong(), insertMaskedValue(), llvm::GCNTTIImpl::instCombineIntrinsic(), llvm::X86TTIImpl::instCombineIntrinsic(), LowerBSWAP(), lowerFunnelShifts(), matchOrConcat(), matchStridedStart(), simplifyValueKnownNonZero(), simplifyX86immShift(), simplifyX86varShift(), upgradePMULDQ(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitShl(), and llvm::InstCombinerImpl::visitTrunc().
|
inline |
Create a unary shuffle.
The second vector operand of the IR instruction is poison.
Definition at line 2550 of file IRBuilder.h.
References CreateShuffleVector(), llvm::PoisonValue::get(), and Name.
|
inline |
See class ShuffleVectorInst for a description of the mask representation.
Definition at line 2541 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldShuffleVector(), Insert(), and Name.
|
inline |
Definition at line 2533 of file IRBuilder.h.
References CreateShuffleVector(), llvm::ShuffleVectorInst::getShuffleMask(), and Name.
Referenced by applyX86MaskOn1BitsVec(), concatenateTwoVectors(), concatSubVector(), llvm::sandboxir::ShuffleVectorInst::create(), createShiftShuffle(), CreateShuffleVector(), createTblForTrunc(), createTblShuffleForSExt(), createTblShuffleForZExt(), CreateVectorReverse(), CreateVectorSplat(), CreateVectorSplice(), llvm::VPInterleaveRecipe::execute(), foldCastShuffle(), llvm::InstCombinerImpl::foldSelectShuffle(), foldShuffleOfUnaryOps(), llvm::InstCombinerImpl::foldVectorBinop(), generateNewInstTree(), llvm::getShuffleReduction(), getX86MaskVec(), llvm::X86TTIImpl::instCombineIntrinsic(), instCombineSVEDupqLane(), interleaveVectors(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), lowerKernelArguments(), narrowVectorSelect(), promoteAllocaUserToVector(), reorderSubVector(), scalarizeMaskedExpandLoad(), simplifyAMDGCNMemoryIntrinsicDemanded(), simplifyNeonTbl1(), simplifyX86extrq(), simplifyX86immShift(), simplifyX86insertps(), simplifyX86insertq(), simplifyX86pack(), simplifyX86pmadd(), simplifyX86pshufb(), simplifyX86vpermilvar(), simplifyX86vpermv(), simplifyX86vpermv3(), tryInterleave(), upgradeX86ALIGNIntrinsics(), upgradeX86IntrinsicCall(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitShuffleVectorInst().
|
inline |
Definition at line 2106 of file IRBuilder.h.
References CreateCast(), CreateConstrainedFPCast(), IsFPConstrained, and Name.
Referenced by llvm::VPScalarIVStepsRecipe::execute(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), and upgradeX86IntrinsicCall().
|
inline |
Definition at line 1453 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldBinOp(), Folder, Insert(), LHS, Name, and RHS.
Referenced by llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), and llvm::InstCombinerImpl::visitSRem().
Create a call to llvm.stackrestore.
Definition at line 1095 of file IRBuilder.h.
References CreateIntrinsic(), Name, and Ptr.
Referenced by llvm::InlineFunction(), lowerLocalAllocas(), and RemovePreallocated().
Create a call to llvm.stacksave.
Definition at line 1088 of file IRBuilder.h.
References BB, Context, CreateIntrinsic(), DL, llvm::BasicBlock::getDataLayout(), and Name.
Referenced by llvm::InlineFunction(), lowerLocalAllocas(), and RemovePreallocated().
Creates a vector of type DstType
with the linear sequence <0, 1, ...>
Definition at line 108 of file IRBuilder.cpp.
References CreateIntrinsic(), CreateTrunc(), llvm::ConstantVector::get(), llvm::VectorType::get(), getInt8Ty(), llvm::Type::getScalarSizeInBits(), llvm::Type::getScalarType(), Name, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), and getStepVector().
|
inline |
Definition at line 1811 of file IRBuilder.h.
References CreateAlignedStore(), and Ptr.
Referenced by callBufferedPrintfArgPush(), llvm::OpenMPIRBuilder::createAtomicCapture(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createAtomicRead(), llvm::OpenMPIRBuilder::createAtomicWrite(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createSingle(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTask(), eliminateSwiftErrorArgument(), llvm::orc::IRSpeculationLayer::emit(), llvm::emitAMDGPUPrintfCall(), emitSetAndGetSwiftErrorValueAround(), emitTaskDependencies(), hostParallelCallback(), insertSpills(), instCombineSVEST1(), llvm::lowerAtomicRMWInst(), markCoroutineAsDone(), mergeConditionalStoreToAddress(), llvm::orc::ReOptimizeLayer::reoptimizeIfCallFrequent(), replaceSwiftErrorOps(), llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(), salvageDebugInfoImpl(), scalarizeMaskedVectorHistogram(), llvm::InstCombinerImpl::SimplifyAnyMemSet(), llvm::InstCombinerImpl::SimplifyAnyMemTransfer(), llvm::coro::AnyRetconABI::splitCoroutine(), targetParallelCallback(), and DataScalarizerVisitor::visitStoreInst().
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 1102 of file IRBuilder.cpp.
References assert(), BB, CreateCall(), llvm::Function::getFunctionType(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::FunctionType::getParamType(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::Function::getReturnType(), and Ptr.
Referenced by simplifyInvariantGroupIntrinsic().
|
inline |
Definition at line 1980 of file IRBuilder.h.
References CreateConstGEP2_32(), Idx, llvm::GEPNoWrapFlags::inBounds(), Name, llvm::GEPNoWrapFlags::noUnsignedWrap(), and Ptr.
Referenced by llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitTargetKernel(), emitTargetTaskProxyFunction(), emitTaskDependencies(), llvm::coro::BaseCloner::handleFinalSuspend(), and markCoroutineAsDone().
|
inline |
Definition at line 1387 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldNoWrapBinOp(), LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), checkForNegativeOperand(), llvm::OpenMPIRBuilder::createCanonicalLoop(), createMemMoveLoopKnownSize(), createMemMoveLoopUnknownSize(), CreateNeg(), CreateNSWSub(), CreateNUWSub(), CreatePtrDiff(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::EpilogueVectorizerEpilogueLoop::emitMinimumVectorEpilogueIterCountCheck(), llvm::VPReverseVectorPointerRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPInterleaveRecipe::execute(), expandAbs(), expandFPToI(), expandIToFP(), expandSignIntrinsic(), foldAndOrOfICmpEqConstantAndICmp(), foldCtpop(), llvm::InstCombinerImpl::foldICmpBinOp(), foldICmpIntrinsicWithIntrinsic(), foldMulShl1(), foldSwitchToSelect(), llvm::SCEVExpander::generateOverflowCheck(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), generateUnsignedRemainderCode(), llvm::VPLane::getAsRuntimeExpr(), getBoundsCheckCond(), llvm::InstCombiner::getFreelyInvertedImpl(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getStrlenWithNull(), hoistAdd(), hoistSub(), inlineGetBaseAndOffset(), llvm::InstCombinerImpl::insertRangeTest(), lowerFunnelShifts(), llvm::IntrinsicLowering::LowerIntrinsicCall(), llvm::lowerObjectSizeCall(), makeStatepointExplicitImpl(), llvm::InstCombinerImpl::OptimizePointerDifference(), llvm::VPlan::prepareToExecute(), reduceSwitchRange(), replaceSubOverflowUses(), llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp(), simplifyValueKnownNonZero(), switchToLookupTable(), llvm::InstCombinerImpl::takeLog2(), llvm::InstCombinerImpl::tryFoldInstWithCtpopWithNot(), llvm::UnrollRuntimeLoopRemainder(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitOr(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitURem().
|
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 1187 of file IRBuilder.h.
References llvm::SwitchInst::Create(), and Insert().
Referenced by llvm::sandboxir::SwitchInst::create(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createSections(), expandIToFP(), expandToSwitch(), foldMemChr(), rewritePHIsForCleanupPad(), and llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse().
Create a call to llvm.threadlocal.address intrinsic.
Definition at line 508 of file IRBuilder.cpp.
References A, llvm::CallBase::addParamAttr(), llvm::CallBase::addRetAttr(), assert(), CreateIntrinsic(), llvm::getAlign(), llvm::Value::getContext(), llvm::Attribute::getWithAlignment(), and Ptr.
|
inline |
Definition at line 2019 of file IRBuilder.h.
References llvm::CastInst::Create(), llvm::IRBuilderFolder::FoldCast(), Folder, I, Insert(), and Name.
Referenced by callBufferedPrintfStart(), createMaskInstrs(), CreateSExtOrTrunc(), CreateStepVector(), CreateZExtOrTrunc(), DoFlattenLoopPair(), dropRedundantMaskingOfLeftShiftInput(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), expandIToFP(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), extractIntPart(), extractMaskedValue(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpShlConstant(), foldMemChr(), llvm::InstCombiner::getFreelyInvertedImpl(), getMul64(), lowerKernelArguments(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), processUGT_ADDCST_ADD(), shrinkSplatShuffle(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyX86pack(), simplifyX86pmulh(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), switchToLookupTable(), llvm::InstCombinerImpl::takeLog2(), llvm::UpgradeIntrinsicCall(), upgradeNVVMIntrinsicCall(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitShl(), llvm::InstCombinerImpl::visitSwitchInst(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitZExt().
|
inline |
Definition at line 2178 of file IRBuilder.h.
References CreateCast(), llvm::Type::getScalarSizeInBits(), and Name.
Referenced by llvm::VNCoercion::coerceAvailableValueToLoadType(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::VNCoercion::getStoreValueForLoadHelper(), and llvm::SCEVExpander::replaceCongruentIVs().
Create an expression which evaluates to the number of units in Size
at runtime.
This works for both units of bits and bytes.
Definition at line 103 of file IRBuilder.cpp.
References CreateVScale(), and Size.
Referenced by llvm::emitGEPOffset(), getBoundsCheckCond(), llvm::AMDGPU::instrumentAddress(), and llvm::ObjectSizeOffsetEvaluator::visitAllocaInst().
|
inline |
Definition at line 1421 of file IRBuilder.h.
References Folder, llvm::IRBuilderFolder::FoldExactBinOp(), Insert(), LHS, Name, and RHS.
Referenced by llvm::OpenMPIRBuilder::collapseLoops(), llvm::OpenMPIRBuilder::createCanonicalLoop(), CreateExactUDiv(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), foldIDivShl(), generateSignedDivisionCode(), generateUnsignedRemainderCode(), ShapeCalculator::getRowFromCol(), and llvm::OpenMPIRBuilder::tileLoops().
|
inline |
Definition at line 2093 of file IRBuilder.h.
References CreateConstrainedFPCast(), llvm::IRBuilderFolder::FoldCast(), Folder, I, Insert(), IsFPConstrained, and Name.
Referenced by llvm::VPWidenIntOrFpInductionRecipe::execute(), getStepVector(), llvm::AArch64TargetLowering::optimizeExtendOrTruncateConversion(), and upgradeX86IntrinsicCall().
CallInst * IRBuilderBase::CreateUnaryIntrinsic | ( | Intrinsic::ID | ID, |
Value * | V, | ||
FMFSource | FMFSource = {} , |
||
const Twine & | Name = "" |
||
) |
Create a call to intrinsic ID
with 1 operand which is mangled on its type.
Definition at line 881 of file IRBuilder.cpp.
References BB, llvm::BasicBlock::getModule(), llvm::Intrinsic::getOrInsertDeclaration(), and Name.
Referenced by llvm::createSimpleReduction(), emitRsqIEEE1ULP(), foldBitOrderCrossLogicOp(), foldCtpop(), foldFDivSqrtDivisor(), llvm::InstCombinerImpl::foldFMulReassoc(), foldICmpPow2Test(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitFMul(), llvm::InstCombinerImpl::visitLShr(), and llvm::InstCombinerImpl::visitOr().
|
inline |
Definition at line 1761 of file IRBuilder.h.
References llvm::UnaryOperator::Create(), FMF, Folder, llvm::IRBuilderFolder::FoldUnOpFMF(), Insert(), and Name.
Referenced by llvm::sandboxir::UnaryOperator::create(), CreateNAryOp(), and generateNewInstTree().
|
inline |
Definition at line 1306 of file IRBuilder.h.
References Context, and Insert().
Referenced by llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCancel(), createMemMoveLoopUnknownSize(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTargetInit(), llvm::deleteDeadLoop(), llvm::VPBasicBlock::execute(), expandToSwitch(), removeUndefIntroducingPredecessor(), rewritePHIsForCleanupPad(), and tryToMergeLandingPad().
|
inline |
Definition at line 1447 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldBinOp(), Folder, Insert(), LHS, Name, and RHS.
Referenced by llvm::OpenMPIRBuilder::collapseLoops(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::InstCombinerImpl::foldICmpBinOpEqualityWithConstant(), generateSignedRemainderCode(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), lowerFunnelShifts(), llvm::InstCombinerImpl::SimplifyAddWithRemainder(), and llvm::OpenMPIRBuilder::tileLoops().
|
inline |
Definition at line 2495 of file IRBuilder.h.
References Insert(), llvm::List, and Name.
Return a vector value that contains the vector V reversed.
Definition at line 1119 of file IRBuilder.cpp.
References BB, llvm::CallInst::Create(), CreateShuffleVector(), F, llvm::Intrinsic::getOrInsertDeclaration(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), Insert(), Name, and llvm::SmallVectorTemplateBase< T, bool >::push_back().
Referenced by llvm::VPInterleaveRecipe::execute(), llvm::VPWidenLoadRecipe::execute(), and llvm::VPWidenStoreRecipe::execute().
Value * IRBuilderBase::CreateVectorSplat | ( | ElementCount | EC, |
Value * | V, | ||
const Twine & | Name = "" |
||
) |
Return a vector value that contains.
EC
elements. Definition at line 1169 of file IRBuilder.cpp.
References assert(), CreateInsertElement(), CreateShuffleVector(), llvm::VectorType::get(), llvm::PoisonValue::get(), getInt64(), Name, Poison, and llvm::SmallVectorImpl< T >::resize().
Return a vector value that contains.
NumElts
elements. Definition at line 1163 of file IRBuilder.cpp.
References CreateVectorSplat(), llvm::ElementCount::getFixed(), and Name.
Referenced by CheckAndCreateOffsetAdd(), createReverseEVL(), CreateVectorSplat(), llvm::emitGEPOffset(), llvm::VPHistogramRecipe::execute(), llvm::VPWidenGEPRecipe::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPReductionEVLRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), llvm::VPWidenCanonicalIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), llvm::VPWidenEVLRecipe::execute(), expandNormalizeIntrinsic(), llvm::InstCombinerImpl::foldGEPICmp(), llvm::VPTransformState::get(), getStepVector(), llvm::ARMTTIImpl::instCombineIntrinsic(), instCombineSVEDupX(), instCombineSVETBL(), instCombineSVEUnpack(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), lowerFunnelShifts(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), promoteAllocaUserToVector(), simplifyX86immShift(), upgradeX86ConcatShift(), upgradeX86IntrinsicCall(), and upgradeX86Rotate().
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 1135 of file IRBuilder.cpp.
References assert(), BB, llvm::CallInst::Create(), CreateShuffleVector(), F, getInt32(), llvm::Intrinsic::getOrInsertDeclaration(), llvm::GlobalValue::getParent(), llvm::BasicBlock::getParent(), llvm::Value::getType(), I, Idx, Insert(), and 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 89 of file IRBuilder.cpp.
References assert(), CreateIntrinsic(), CreateMul(), llvm::Value::getType(), isZero(), and Name.
Referenced by CreateElementCount(), CreateTypeSize(), instCombineSVECntElts(), llvm::InstCombinerImpl::visitSExt(), llvm::InstCombinerImpl::visitTrunc(), and llvm::InstCombinerImpl::visitZExt().
|
inline |
Definition at line 1568 of file IRBuilder.h.
References CreateXor(), LHS, Name, and RHS.
|
inline |
Definition at line 1572 of file IRBuilder.h.
References CreateXor(), LHS, Name, and RHS.
Definition at line 1562 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldBinOp(), Folder, Insert(), LHS, Name, and RHS.
Referenced by llvm::buildAtomicRMWValue(), canonicalizeICmpBool(), createLogicFromTable(), createMaskInstrs(), CreateNot(), CreateXor(), expandFPToI(), expandIToFP(), foldAndToXor(), foldComplexAndOrPatterns(), llvm::InstCombinerImpl::foldICmpAndConstant(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpOrConstant(), foldOrOfInversions(), foldOrToXor(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), foldXorToXor(), generateSignedDivisionCode(), generateSignedRemainderCode(), llvm::InstCombiner::getFreelyInvertedImpl(), hoistConditionalLoadsStores(), llvm::memtag::incrementThreadLong(), mergeNestedCondBranch(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), simplifyTernarylogic(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitXor().
Create a vector int XOR reduction intrinsic of the source vector.
Definition at line 428 of file IRBuilder.cpp.
|
inline |
Definition at line 2033 of file IRBuilder.h.
References llvm::IRBuilderFolder::FoldCast(), Folder, I, Insert(), and Name.
Referenced by bitTrackingDCE(), llvm::InstCombinerImpl::commonShiftTransforms(), llvm::OpenMPIRBuilder::createAtomicCompare(), createTblShuffleForZExt(), CreateZExtOrTrunc(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), expandFPToI(), expandIToFP(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), expandSignIntrinsic(), fitArgInto64Bits(), foldAnyOrAllBitsSet(), foldConsecutiveLoads(), foldCttzCtlz(), foldNoWrapAdd(), foldShiftIntoShiftInAnotherHandOfAndInICmp(), getMul64(), injectPendingInvariantConditions(), insertMaskedValue(), llvm::GCNTTIImpl::instCombineIntrinsic(), matchOrConcat(), processNonStringArg(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), simplifyX86addcarry(), sinkMinMaxInBB(), llvm::InstCombinerImpl::takeLog2(), llvm::OpenMPIRBuilder::tileLoops(), tryInterleave(), upgradeNVVMIntrinsicCall(), upgradeX86IntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), llvm::InstCombinerImpl::visitBitCast(), llvm::InstCombinerImpl::visitCallInst(), llvm::InstCombinerImpl::visitLShr(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitSub(), and llvm::InstCombinerImpl::visitZExt().
|
inline |
Definition at line 2162 of file IRBuilder.h.
References CreateCast(), llvm::Type::getScalarSizeInBits(), and Name.
Referenced by llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::VNCoercion::getMemInstValueForLoad(), and splitMergedValStore().
|
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 2051 of file IRBuilder.h.
References assert(), CreateTrunc(), CreateZExt(), llvm::Type::getScalarSizeInBits(), llvm::Type::isIntOrIntVectorTy(), and Name.
Referenced by createTargetLoopWorkshareCall(), llvm::VPReverseVectorPointerRecipe::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), foldSelectICmpAnd(), foldSelectICmpAndBinOp(), llvm::SCEVExpander::generateOverflowCheck(), llvm::lowerObjectSizeCall(), simplifyX86immShift(), simplifyX86movmsk(), switchToLookupTable(), llvm::InstCombinerImpl::visitAdd(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), llvm::ObjectSizeOffsetEvaluator::visitCallBase(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitIntToPtr().
|
inline |
Return an all true boolean vector (mask) with NumElts
lanes.
Definition at line 867 of file IRBuilder.h.
References Context, llvm::VectorType::get(), llvm::Constant::getAllOnesValue(), and llvm::Type::getInt1Ty().
Referenced by CreateMaskedGather(), CreateMaskedScatter(), llvm::VectorBuilder::getAllTrueMask(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), and llvm::RISCVTargetLowering::lowerInterleavedStore().
|
inline |
Fetch the type representing a 16-bit brain floating point value.
Definition at line 568 of file IRBuilder.h.
References Context, and llvm::Type::getBFloatTy().
Referenced by llvm::UpgradeIntrinsicCall().
|
inline |
Definition at line 195 of file IRBuilder.h.
References Context.
Referenced by llvm::OpenMPIRBuilder::applySimd(), callBufferedPrintfStart(), CloneLoopBlocks(), createAllocaInstAtEntry(), CreateGCStatepointCallCommon(), CreateGCStatepointInvokeCommon(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createSingle(), llvm::OpenMPIRBuilder::createTargetData(), llvm::emitAMDGPUPrintfCall(), llvm::AtomicInfo::EmitAtomicLibcall(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::LoongArchTargetLowering::emitExpandAtomicRMW(), llvm::OpenMPIRBuilder::emitKernelLaunch(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::AArch64TargetLowering::emitStoreConditional(), emitTargetTaskProxyFunction(), expandFPToI(), expandIToFP(), generateUnsignedDivisionCode(), llvm::VectorBuilder::getContext(), llvm::dxil::DXILOpBuilder::getHandleType(), llvm::OpenMPIRBuilder::getKernelArgsVector(), llvm::AtomicInfo::getLLVMContext(), llvm::dxil::DXILOpBuilder::getResBind(), llvm::dxil::DXILOpBuilder::getResProps(), llvm::OpenMPIRBuilder::getSizeInBytes(), llvm::GCNTTIImpl::instCombineIntrinsic(), lowerAwaitSuspend(), processConstantStringArg(), SegmentOffset(), SetNoSanitizeMetadata(), llvm::OpenMPIRBuilder::unrollLoopFull(), llvm::OpenMPIRBuilder::unrollLoopHeuristic(), and upgradeNVVMIntrinsicCall().
DebugLoc IRBuilderBase::getCurrentDebugLocation | ( | ) | const |
Get location information used by debugging information.
Definition at line 64 of file IRBuilder.cpp.
Referenced by createOutlinedFunction(), llvm::InstrumentationIRBuilder::ensureDebugInfo(), llvm::SCEVExpander::getCurrentDebugLocation(), llvm::spliceBB(), and llvm::splitBB().
Type * IRBuilderBase::getCurrentFunctionReturnType | ( | ) | const |
Get the return type of the current function that we're emitting into.
Definition at line 59 of file IRBuilder.cpp.
References assert(), BB, llvm::BasicBlock::getParent(), and llvm::Function::getReturnType().
Referenced by CreateAggregateRet().
|
inline |
Get the exception handling used with constrained floating point.
Definition at line 362 of file IRBuilder.h.
References DefaultConstrainedExcept.
|
inline |
Get the rounding mode handling used with constrained floating point.
Definition at line 367 of file IRBuilder.h.
References DefaultConstrainedRounding.
|
inline |
Get the floating point math metadata being used.
Definition at line 316 of file IRBuilder.h.
References DefaultFPMathTag.
|
inline |
Fetch the type representing a 64-bit floating point value.
Definition at line 578 of file IRBuilder.h.
References Context, and llvm::Type::getDoubleTy().
Referenced by instCombineSVECondLast(), and processNonStringArg().
|
inline |
Get the constant value for i1 false.
Definition at line 490 of file IRBuilder.h.
References Context, and llvm::ConstantInt::getFalse().
Referenced by createLogicFromTable(), llvm::deleteDeadLoop(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldCtpop(), llvm::InstCombinerImpl::foldICmpDivConstant(), llvm::InstCombinerImpl::foldICmpSelectConstant(), llvm::InstCombinerImpl::foldICmpWithDominatingICmp(), handleNoSuspendCoroutine(), replaceSubOverflowUses(), llvm::UpgradeIntrinsicCall(), upgradeNVVMIntrinsicCall(), llvm::InstCombinerImpl::visitAdd(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Definition at line 321 of file IRBuilder.h.
References FMF.
|
inline |
Get the flags to be applied to created floating point ops.
Definition at line 319 of file IRBuilder.h.
References FMF.
Referenced by llvm::createSimpleReduction().
|
inline |
Fetch the type representing a 32-bit floating point value.
Definition at line 573 of file IRBuilder.h.
References Context, and llvm::Type::getFloatTy().
Referenced by instCombineSVECondLast(), and upgradeNVVMIntrinsicCall().
|
inline |
Fetch the type representing a 16-bit floating point value.
Definition at line 563 of file IRBuilder.h.
References Context, and llvm::Type::getHalfTy().
Referenced by instCombineSVECondLast().
|
inline |
Fetch the type of an integer that should be used to index GEP operations within AddressSpace.
Definition at line 600 of file IRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::createReductionsGPU().
|
inline |
Definition at line 193 of file IRBuilder.h.
References BB.
Referenced by callAppendArgs(), callAppendStringN(), callBufferedPrintfArgPush(), callBufferedPrintfStart(), callPrintfBegin(), llvm::OpenMPIRBuilder::createAtomicCompare(), CreateGCStatepointCallCommon(), CreateGCStatepointInvokeCommon(), llvm::SPIRVStructurizer::createOpSelectMerge(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTargetDeinit(), llvm::OpenMPIRBuilder::createTargetInit(), llvm::OpenMPIRBuilder::createTeams(), llvm::orc::IRSpeculationLayer::emit(), llvm::emitAMDGPUPrintfCall(), llvm::AtomicInfo::EmitAtomicLibcall(), llvm::AtomicInfo::EmitAtomicLoadLibcall(), llvm::OpenMPIRBuilder::emitBlock(), llvm::OpenMPIRBuilder::emitBranch(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::OpenMPIRBuilder::emitIfClause(), llvm::OpenMPIRBuilder::emitKernelLaunch(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::PPCTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::PPCTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), llvm::VPWidenIntrinsicRecipe::execute(), expandFPToI(), expandIToFP(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), generateUnsignedDivisionCode(), llvm::memtag::getAndroidSlotPtr(), llvm::TargetLoweringBase::getDefaultSafeStackPointerLocation(), llvm::memtag::getFP(), getGEPIndexTy(), llvm::TargetLoweringBase::getIRStackGuard(), llvm::RISCVTargetLowering::getIRStackGuard(), llvm::X86TargetLowering::getIRStackGuard(), llvm::VectorBuilder::getModule(), llvm::memtag::getPC(), llvm::TargetLoweringBase::getSafeStackPointerLocation(), getStrlenWithNull(), hostParallelCallback(), InsertCall(), InsertTrap(), processNonStringArg(), llvm::memtag::readRegister(), saveAndClearIP(), saveIP(), llvm::VPTransformState::setDebugLocFrom(), llvm::spliceBB(), llvm::splitBB(), llvm::splitBBWithSuffix(), targetParallelCallback(), UseTlsOffset(), useTpOffset(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), llvm::InstCombinerImpl::visitAnd(), llvm::InstCombinerImpl::visitOr(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Definition at line 194 of file IRBuilder.h.
References InsertPt.
Referenced by llvm::OpenMPIRBuilder::createTask(), DoFlattenLoopPair(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), llvm::VPWidenPointerInductionRecipe::execute(), llvm::VPExpandSCEVRecipe::execute(), llvm::expandDivision(), expandFPToI(), expandIToFP(), llvm::expandRemainder(), llvm::AMDGPU::genAMDGPUReportBlock(), generateReproducer(), generateUnsignedDivisionCode(), getStrlenWithNull(), insertBoundsCheck(), insertSpills(), llvm::SampleProfileProber::instrumentOneFunc(), lowerAwaitSuspend(), mergeConditionalStoreToAddress(), saveAndClearIP(), saveIP(), and llvm::slpvectorizer::BoUpSLP::vectorizeTree().
|
inline |
Get a constant integer value.
Definition at line 521 of file IRBuilder.h.
References Context.
Referenced by canonicalizeGEPOfConstGEPI8(), createByteGEP(), despeculateCountZeros(), foldConsecutiveLoads(), llvm::InstCombinerImpl::foldICmpEquality(), llvm::InstCombinerImpl::foldICmpWithDominatingICmp(), lowerFunnelShifts(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), transformToIndexedCompare(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
|
inline |
Get a constant value representing either true or false.
Definition at line 480 of file IRBuilder.h.
References getInt1Ty().
Referenced by llvm::createBitMaskForGaps(), CreateCountTrailingZeroElems(), createFFSIntrinsic(), CreateMemSet(), CreateMemSetInline(), CreateMemTransferInst(), llvm::VPHistogramRecipe::execute(), and upgradeAbs().
|
inline |
Fetch the type representing a 128-bit integer.
Definition at line 555 of file IRBuilder.h.
References Context, and llvm::Type::getInt128Ty().
|
inline |
Get a constant 16-bit value.
Definition at line 500 of file IRBuilder.h.
References llvm::CallingConv::C, and getInt16Ty().
Referenced by ShapeCalculator::getColFromRow(), and ShapeCalculator::getRowFromCol().
|
inline |
Fetch the type representing a 16-bit integer.
Definition at line 540 of file IRBuilder.h.
References Context, and llvm::Type::getInt16Ty().
Referenced by getInt16(), llvm::UpgradeIntrinsicCall(), and upgradeX86IntrinsicCall().
|
inline |
Fetch the type representing a single bit.
Definition at line 530 of file IRBuilder.h.
References Context, and llvm::Type::getInt1Ty().
Referenced by addBoundsChecking(), llvm::slpvectorizer::BoUpSLP::computeMinimumValueSizes(), CreateAssumption(), emitX86ScalarSelect(), llvm::VPInterleaveRecipe::execute(), getInt1(), llvm::slpvectorizer::BoUpSLP::getVectorElementSize(), getX86MaskVec(), llvm::X86TTIImpl::instCombineIntrinsic(), upgradeAArch64IntrinsicCall(), upgradeARMIntrinsicCall(), upgradeMaskedCompare(), and llvm::InstCombinerImpl::visitCallInst().
|
inline |
Get a constant 32-bit value.
Definition at line 505 of file IRBuilder.h.
References llvm::CallingConv::C, and getInt32Ty().
Referenced by appendToGlobalArray(), callAppendArgs(), callAppendStringN(), CreateElementUnorderedAtomicMemCpy(), CreateElementUnorderedAtomicMemMove(), CreateElementUnorderedAtomicMemSet(), createFakeIntVal(), CreateGCRelocate(), CreateGCRelocates(), createIsFPClass(), CreateMaskedGather(), CreateMaskedLoad(), CreateMaskedScatter(), CreateMaskedStore(), createOrdering(), CreatePreserveArrayAccessIndex(), CreatePreserveStructAccessIndex(), CreatePreserveUnionAccessIndex(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createSections(), llvm::OpenMPIRBuilder::createSingle(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTeams(), CreateVectorSplice(), llvm::emitAMDGPUPrintfCall(), emitDXILVersionTupleMD(), llvm::OpenMPIRBuilder::emitMapperCall(), emitShaderModelVersionMD(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::OpenMPIRBuilder::emitTargetTask(), emitValidatorVersionMD(), llvm::VPReductionPHIRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::InstCombinerImpl::foldICmpBitCast(), foldVecExtTruncToExtElt(), foldVecTruncToExtElt(), llvm::VPLane::getAsRuntimeExpr(), llvm::OpenMPIRBuilder::getKernelArgsVector(), llvm::getOrderedReduction(), llvm::getShuffleReduction(), getSign32(), llvm::OpenMPIRBuilder::getSizeInBytes(), hostParallelCallback(), llvm::PPCTTIImpl::instCombineIntrinsic(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::RISCVTargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::RISCVTargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::RISCVTargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::makeDMB(), nullifySetjmp(), optimizeIntegerToVectorInsertions(), llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(), simplifyAllocaArraySize(), targetParallelCallback(), llvm::dxil::DXILOpBuilder::tryCreateOp(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and llvm::InstCombinerImpl::visitExtractValueInst().
|
inline |
Fetch the type representing a 32-bit integer.
Definition at line 545 of file IRBuilder.h.
References Context, and llvm::Type::getInt32Ty().
Referenced by appendToGlobalArray(), callAppendArgs(), callBufferedPrintfStart(), llvm::OpenMPIRBuilder::createCopyPrivate(), createFakeIntVal(), llvm::OpenMPIRBuilder::createOffloadEntriesAndInfoMetadata(), llvm::SPIRVStructurizer::createOpSelectMerge(), llvm::OpenMPIRBuilder::createTask(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::OpenMPIRBuilder::emitTargetTask(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPInterleaveRecipe::execute(), llvm::expandDivisionUpTo32Bits(), expandFPToI(), expandIToFP(), llvm::expandRemainderUpTo32Bits(), getAllocaPos(), llvm::VPLane::getAsRuntimeExpr(), getGEPIndexTy(), getInt32(), getMul64(), llvm::dxil::DXILOpBuilder::getResBind(), llvm::dxil::DXILOpBuilder::getResProps(), instCombineSVEDupqLane(), instCombineSVESDIV(), lowerKernelArguments(), processConstantStringArg(), replaceTypedBufferAccess(), llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(), llvm::UpgradeIntrinsicCall(), upgradeNVVMIntrinsicCall(), and upgradeX86IntrinsicCall().
|
inline |
Get a constant 64-bit value.
Definition at line 510 of file IRBuilder.h.
References llvm::CallingConv::C, and getInt64Ty().
Referenced by appendArg(), constructPointer(), CreateElementUnorderedAtomicMemSet(), CreateExtractElement(), CreateInsertElement(), CreateInvariantStart(), CreateLifetimeEnd(), CreateLifetimeStart(), CreateMemCpy(), CreateMemMove(), CreateMemSet(), llvm::OpenMPIRBuilder::createOrderedDepend(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createTask(), createTileStore(), CreateVectorSplat(), llvm::emitAMDGPUPrintfCall(), llvm::OpenMPIRBuilder::emitMapperCall(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), emitTaskDependencies(), emitTPIDR2Save(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::OpenMPIRBuilder::getKernelArgsVector(), getMul64(), getStrlenWithNull(), HandleByValArgumentInit(), llvm::GCNTTIImpl::instCombineIntrinsic(), instCombineSVEDupqLane(), instCombineSVEUzp1(), llvm::SampleProfileProber::instrumentOneFunc(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), replaceWithTileLoad(), llvm::setProbeDistributionFactor(), llvm::coro::AnyRetconABI::splitCoroutine(), targetParallelCallback(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), and llvm::InstCombinerImpl::visitInsertElementInst().
|
inline |
Fetch the type representing a 64-bit integer.
Definition at line 550 of file IRBuilder.h.
References Context, and llvm::Type::getInt64Ty().
Referenced by callAppendArgs(), callAppendStringN(), callBufferedPrintfStart(), callPrintfBegin(), CreateInvariantStart(), CreateLifetimeEnd(), CreateLifetimeStart(), llvm::OpenMPIRBuilder::createTask(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), emitTaskDependencies(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::expandDivisionUpTo64Bits(), expandIToFP(), llvm::expandRemainderUpTo64Bits(), fitArgInto64Bits(), llvm::AMDGPU::genAMDGPUReportBlock(), getInt64(), getMul64(), getStrlenWithNull(), instCombineSVEDupqLane(), lowerKernelArguments(), processNonStringArg(), and upgradeNVVMIntrinsicCall().
|
inline |
Get a constant 8-bit value.
Definition at line 495 of file IRBuilder.h.
References llvm::CallingConv::C, and getInt8Ty().
Referenced by createTblForTrunc(), getStrlenWithNull(), llvm::HexagonTargetLowering::LowerConstantPool(), and upgradeX86IntrinsicCall().
|
inline |
Fetch the type representing an 8-bit integer.
Definition at line 535 of file IRBuilder.h.
References Context, and llvm::Type::getInt8Ty().
Referenced by callBufferedPrintfArgPush(), CreateInBoundsPtrAdd(), CreatePtrAdd(), CreateStepVector(), llvm::OpenMPIRBuilder::createTask(), createTblForTrunc(), llvm::emitAMDGPUPrintfCall(), llvm::OpenMPIRBuilder::emitKernelExecutionMode(), emitTaskDependencies(), llvm::VPWidenPointerInductionRecipe::execute(), foldMemChr(), llvm::memtag::getAndroidSlotPtr(), getInt8(), llvm::dxil::DXILOpBuilder::getResBind(), getStrlenWithNull(), InsertTrap(), lowerKernelArguments(), lowerLocalAllocas(), rewriteGEPAsOffset(), rewritePHIsForCleanupPad(), simplifyX86addcarry(), upgradeX86PSLLDQIntrinsics(), upgradeX86PSRLDQIntrinsics(), UseTlsOffset(), useTpOffset(), and llvm::InstCombinerImpl::visitGetElementPtrInst().
|
inline |
Get a constant N-bit value, zero extended or truncated from a 64-bit value.
Definition at line 516 of file IRBuilder.h.
References llvm::CallingConv::C, getIntNTy(), and N.
Referenced by CheckAndCreateOffsetAdd(), createTblShuffleForSExt(), createTblShuffleForZExt(), llvm::emitAMDGPUPrintfCall(), llvm::LoongArchTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicCmpXchgIntrinsic(), llvm::LoongArchTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::RISCVTargetLowering::emitMaskedAtomicRMWIntrinsic(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), expandFPToI(), expandIToFP(), generateSignedDivisionCode(), generateSignedRemainderCode(), getAddrSizeInt(), promoteAllocaUserToVector(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), and scalarizeMaskedStore().
|
inline |
Fetch the type representing an N-bit integer.
Definition at line 558 of file IRBuilder.h.
References Context, llvm::Type::getIntNTy(), and N.
Referenced by applyX86MaskOn1BitsVec(), createCmpXchgInstFun(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::HexagonTargetLowering::emitStoreConditional(), expandFPToI(), expandIToFP(), llvm::InstCombinerImpl::foldICmpBitCast(), foldReductionIdiom(), getAddrIntType(), getIntN(), llvm::GCNTTIImpl::instCombineIntrinsic(), instCombineSVEDupqLane(), lowerKernelArguments(), promoteAllocaUserToVector(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), simplifyX86movmsk(), llvm::InstCombinerImpl::visitCallInst(), and llvm::InstCombinerImpl::visitFCmpInst().
|
inline |
Fetch the type of an integer with size at least as big as that of a pointer in the given address space.
Definition at line 594 of file IRBuilder.h.
Referenced by CreateAlignmentAssumption(), llvm::memtag::getFP(), llvm::memtag::getPC(), and llvm::memtag::readRegister().
|
inline |
Query for the use of constrained floating point math.
Definition at line 339 of file IRBuilder.h.
References IsFPConstrained.
|
inline |
Fetch the type representing a pointer.
Definition at line 588 of file IRBuilder.h.
References Context, and llvm::PointerType::get().
Referenced by appendToGlobalArray(), callBufferedPrintfStart(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTask(), emitGetSwiftErrorValue(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), emitSetSwiftErrorValue(), llvm::OpenMPIRBuilder::emitUsed(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), getAllocaPos(), llvm::memtag::getFP(), getGEPIndexTy(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedStore(), promoteAllocaUserToVector(), SegmentOffset(), llvm::UpgradeGlobalVariable(), llvm::UpgradeIntrinsicCall(), upgradeNVVMIntrinsicCall(), UseTlsOffset(), llvm::InstCombinerImpl::visitCallInst(), and workshareLoopTargetCallback().
|
inline |
Get the constant value for i1 true.
Definition at line 485 of file IRBuilder.h.
References Context, and llvm::ConstantInt::getTrue().
Referenced by createLogicFromTable(), createReverseEVL(), despeculateCountZeros(), llvm::InnerLoopVectorizer::emitIterationCountCheck(), llvm::VPReductionEVLRecipe::execute(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPWidenLoadEVLRecipe::execute(), llvm::VPWidenStoreEVLRecipe::execute(), llvm::VPWidenEVLRecipe::execute(), expandIToFP(), foldAbsDiff(), llvm::InstCombinerImpl::foldCmpLoadFromIndexedGlobal(), foldCttzCtlz(), llvm::InstCombinerImpl::foldICmpDivConstant(), llvm::InstCombinerImpl::foldICmpWithDominatingICmp(), generateReproducer(), generateUnsignedDivisionCode(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::AArch64TargetLowering::lowerDeinterleaveIntrinsicToLoad(), llvm::AArch64TargetLowering::lowerInterleaveIntrinsicToStore(), optimizeSQRT(), llvm::InstCombinerImpl::visitMul(), llvm::InstCombinerImpl::visitSub(), llvm::InstCombinerImpl::visitUDiv(), and llvm::InstCombinerImpl::visitXor().
|
inline |
Fetch the type representing void.
Definition at line 583 of file IRBuilder.h.
References Context, and llvm::Type::getVoidTy().
Referenced by appendToGlobalArray(), createOutlinedFunction(), llvm::createSanitizerCtorAndInitFunctions(), emitTargetTaskProxyFunction(), emitTPIDR2Save(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::AMDGPU::generateCrashCode(), and replaceTypedBufferAccess().
No-op overload to handle constants.
Definition at line 171 of file IRBuilder.h.
References llvm::CallingConv::C.
|
inline |
Insert and return the specified instruction.
Definition at line 164 of file IRBuilder.h.
References AddMetadataToInst(), I, Inserter, llvm::IRBuilderDefaultInserter::InsertHelper(), InsertPt, and Name.
Referenced by llvm::InstCombinerImpl::canonicalizeCondSignextOfHighBitExtractToSignextHighBitExtract(), CreateAggregateRet(), CreateAlignedLoad(), CreateAlignedStore(), CreateAlloca(), CreateAnd(), CreateAShr(), CreateAtomicCmpXchg(), CreateAtomicRMW(), CreateBinOpFMF(), CreateBr(), CreateCall(), CreateCallBr(), CreateCatchPad(), CreateCatchRet(), CreateCatchSwitch(), CreateCleanupRet(), CreateCondBr(), CreateConstGEP1_32(), CreateConstGEP1_64(), CreateConstGEP2_32(), CreateConstGEP2_64(), CreateConstInBoundsGEP1_32(), CreateConstInBoundsGEP1_64(), CreateConstInBoundsGEP2_32(), CreateConstInBoundsGEP2_64(), CreateExtractElement(), CreateExtractValue(), CreateFAddFMF(), CreateFDivFMF(), CreateFence(), CreateFMulFMF(), CreateFNegFMF(), CreateFreeze(), CreateFRemFMF(), CreateFSubFMF(), CreateGEP(), CreateICmp(), CreateIndirectBr(), CreateInsertElement(), CreateInsertValue(), CreateInvoke(), CreateLandingPad(), CreateLShr(), CreateOr(), CreatePHI(), CreatePointerBitCastOrAddrSpaceCast(), CreatePointerCast(), CreateResume(), CreateRet(), CreateRetVoid(), CreateSDiv(), CreateSelectFMF(), CreateShuffleVector(), CreateSRem(), CreateSwitch(), CreateTrunc(), CreateUDiv(), CreateUIToFP(), CreateUnOp(), CreateUnreachable(), CreateURem(), CreateVAArg(), CreateVectorReverse(), CreateVectorSplice(), CreateXor(), CreateZExt(), dropRedundantMaskingOfLeftShiftInput(), llvm::InstCombinerImpl::foldVariableSignZeroExtensionOfVariableHighBitExtract(), Insert(), llvm::Negator::Negate(), optimizeSQRT(), llvm::InstCombinerImpl::reassociateShiftAmtsOfTwoSameDirectionShifts(), llvm::InnerLoopVectorizer::scalarizeInstruction(), and llvm::InstCombinerImpl::visitShl().
|
inline |
Sets the current insert point to a previously-saved location.
Definition at line 308 of file IRBuilder.h.
References ClearInsertionPoint(), llvm::IRBuilderBase::InsertPoint::getBlock(), llvm::IRBuilderBase::InsertPoint::getPoint(), llvm::IRBuilderBase::InsertPoint::isSet(), and SetInsertPoint().
Referenced by llvm::OpenMPIRBuilder::applySimd(), llvm::OpenMPIRBuilder::collapseLoops(), llvm::OpenMPIRBuilder::createCancel(), llvm::OpenMPIRBuilder::createCanonicalLoop(), createFakeIntVal(), llvm::OpenMPIRBuilder::createMapperAllocas(), llvm::OpenMPIRBuilder::createOrderedDepend(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createSection(), llvm::OpenMPIRBuilder::createSections(), llvm::OpenMPIRBuilder::createTarget(), llvm::OpenMPIRBuilder::createTargetData(), createTargetLoopWorkshareCall(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::emitKernelLaunch(), llvm::OpenMPIRBuilder::emitNonContiguousDescriptor(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitTargetKernel(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTaskDependencies(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPTransformState::get(), targetParallelCallback(), llvm::OpenMPIRBuilder::tileLoops(), llvm::OpenMPIRBuilder::updateToLocation(), workshareLoopTargetCallback(), and llvm::IRBuilderBase::InsertPointGuard::~InsertPointGuard().
|
inline |
Returns the current insert point, clearing it in the process.
Definition at line 301 of file IRBuilder.h.
References ClearInsertionPoint(), GetInsertBlock(), and GetInsertPoint().
|
inline |
Returns the current insert point.
Definition at line 296 of file IRBuilder.h.
References GetInsertBlock(), and GetInsertPoint().
Referenced by llvm::OpenMPIRBuilder::applySimd(), llvm::OpenMPIRBuilder::createAtomicCapture(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createAtomicRead(), llvm::OpenMPIRBuilder::createAtomicUpdate(), llvm::OpenMPIRBuilder::createAtomicWrite(), llvm::OpenMPIRBuilder::createBarrier(), llvm::OpenMPIRBuilder::createCancel(), llvm::OpenMPIRBuilder::createCanonicalLoop(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), llvm::OpenMPIRBuilder::createCopyPrivate(), llvm::OpenMPIRBuilder::createOrderedDepend(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), llvm::OpenMPIRBuilder::createReductionsGPU(), llvm::OpenMPIRBuilder::createSections(), llvm::OpenMPIRBuilder::createSingle(), llvm::OpenMPIRBuilder::createTarget(), llvm::OpenMPIRBuilder::createTargetData(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTaskgroup(), llvm::OpenMPIRBuilder::createTeams(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::OpenMPIRBuilder::emitIfClause(), llvm::OpenMPIRBuilder::emitKernelLaunch(), llvm::OpenMPIRBuilder::emitOffloadingArrays(), llvm::OpenMPIRBuilder::emitTargetKernel(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTaskDependencies(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPTransformState::get(), llvm::OpenMPIRBuilder::getInsertionPoint(), llvm::spliceBB(), llvm::splitBB(), and targetParallelCallback().
|
inline |
Definition at line 380 of file IRBuilder.h.
References I.
Referenced by CreateCall(), CreateConstrainedFPBinOp(), CreateConstrainedFPCall(), CreateConstrainedFPCast(), CreateConstrainedFPCmp(), CreateConstrainedFPUnroundedBinOp(), and CreateInvoke().
|
inline |
Definition at line 371 of file IRBuilder.h.
References assert(), BB, F, and llvm::BasicBlock::getParent().
|
inline |
Set location information used by debugging information.
Definition at line 239 of file IRBuilder.h.
Referenced by llvm::OpenMPIRBuilder::collapseLoops(), llvm::OpenMPIRBuilder::createLoopSkeleton(), createOutlinedFunction(), despeculateCountZeros(), llvm::InstrumentationIRBuilder::ensureDebugInfo(), initIRBuilder(), makeStatepointExplicitImpl(), matchStridedStart(), mergeConditionalStoreToAddress(), llvm::Negator::Negate(), llvm::SCEVExpander::replaceCongruentIVs(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), llvm::SCEVExpander::SetCurrentDebugLocation(), llvm::VPTransformState::setDebugLocFrom(), SetInsertPoint(), simplifyRelocatesOffABase(), llvm::spliceBB(), llvm::splitBB(), llvm::OpenMPIRBuilder::tileLoops(), llvm::OpenMPIRBuilder::updateToLocation(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), workshareLoopTargetCallback(), and llvm::IRBuilderBase::InsertPointGuard::~InsertPointGuard().
|
inline |
Set the exception handling to be used with constrained floating point.
Definition at line 342 of file IRBuilder.h.
References assert(), llvm::convertExceptionBehaviorToStr(), and DefaultConstrainedExcept.
|
inline |
Set the rounding mode handling to be used with constrained floating point.
Definition at line 352 of file IRBuilder.h.
References assert(), llvm::convertRoundingModeToStr(), and DefaultConstrainedRounding.
|
inline |
Set the floating point math metadata to be used.
Definition at line 327 of file IRBuilder.h.
References DefaultFPMathTag.
|
inline |
Definition at line 384 of file IRBuilder.h.
References DefaultOperandBundles.
Referenced by llvm::FortifiedLibCallSimplifier::optimizeCall(), and llvm::LibCallSimplifier::optimizeCall().
|
inline |
Set the fast-math flags to be used with generated fp-math operators.
Definition at line 330 of file IRBuilder.h.
References FMF.
Referenced by llvm::InnerLoopVectorizer::createInductionAdditionalBypassValues(), llvm::VPInstruction::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPReductionRecipe::execute(), llvm::VPReductionEVLRecipe::execute(), llvm::VPDerivedIVRecipe::execute(), llvm::VPScalarIVStepsRecipe::execute(), expandAtan2Intrinsic(), and llvm::InstCombinerImpl::SimplifySelectsFeedingBinaryOp().
|
inline |
This specifies that created instructions should be appended to the end of the specified block.
Definition at line 199 of file IRBuilder.h.
References BB, llvm::BasicBlock::end(), and InsertPt.
Referenced by llvm::addDiffRuntimeChecks(), llvm::addRuntimeChecks(), llvm::OpenMPIRBuilder::applySimd(), buildNew(), convertToRelLookupTable(), llvm::OpenMPIRBuilder::createAtomicCompare(), llvm::OpenMPIRBuilder::createCancel(), llvm::OpenMPIRBuilder::createCopyinClauseBlocks(), llvm::SPIRVMergeRegionExitTargets::createExitVariable(), llvm::OpenMPIRBuilder::createLoopSkeleton(), createMemMoveLoopKnownSize(), createOutlinedFunction(), llvm::OpenMPIRBuilder::createParallel(), llvm::OpenMPIRBuilder::createReductions(), createRetPHINode(), llvm::createSanitizerCtorAndInitFunctions(), llvm::OpenMPIRBuilder::createSections(), llvm::OpenMPIRBuilder::createTargetInit(), llvm::OpenMPIRBuilder::createTask(), llvm::OpenMPIRBuilder::createTaskgroup(), llvm::OpenMPIRBuilder::createTeams(), llvm::deleteDeadLoop(), despeculateCountZeros(), DoFlattenLoopPair(), eliminateSwiftErrorArgument(), llvm::orc::IRSpeculationLayer::emit(), llvm::emitAMDGPUPrintfCall(), llvm::OpenMPIRBuilder::emitBlock(), llvm::OpenMPIRBuilder::emitCancelationCheckImpl(), llvm::SITargetLowering::emitExpandAtomicAddrSpacePredicate(), emitSetAndGetSwiftErrorValueAround(), llvm::OpenMPIRBuilder::emitTargetTask(), emitTargetTaskProxyFunction(), emitTaskDependencies(), llvm::OpenMPIRBuilder::emitUserDefinedMapper(), evaluateInDifferentElementOrder(), llvm::VPIRInstruction::execute(), llvm::VPWidenIntOrFpInductionRecipe::execute(), llvm::VPFirstOrderRecurrencePHIRecipe::execute(), llvm::VPReductionPHIRecipe::execute(), llvm::VPExpandSCEVRecipe::execute(), llvm::VPBasicBlock::execute(), llvm::VPIRBasicBlock::execute(), llvm::SCEVExpander::expandComparePredicate(), expandFPToI(), expandIToFP(), llvm::SCEVExpander::expandUnionPredicate(), llvm::InnerLoopVectorizer::fixNonInductionPHIs(), llvm::InstCombinerImpl::foldBinopWithPhiOperands(), foldConsecutiveLoads(), foldDependentIVs(), llvm::InstCombinerImpl::foldFreezeIntoRecurrence(), foldGEPOfPhi(), llvm::InstCombinerImpl::foldICmpWithConstant(), foldMemChr(), llvm::InstCombinerImpl::foldMultiplicationOverflowCheck(), foldURemOfLoopIncrement(), freelyInvert(), llvm::AMDGPU::genAMDGPUReportBlock(), llvm::AMDGPU::generateCrashCode(), llvm::SCEVExpander::generateOverflowCheck(), generateReproducer(), generateSignedDivisionCode(), generateSignedRemainderCode(), generateUnsignedDivisionCode(), generateUnsignedRemainderCode(), llvm::VPTransformState::get(), getAllocaPos(), ShapeCalculator::getColFromRow(), llvm::InstCombiner::getFreelyInvertedImpl(), ShapeCalculator::getRowFromCol(), getStrlenWithNull(), llvm::coro::BaseCloner::handleFinalSuspend(), hoistGEP(), hoistMinMax(), hostParallelCallback(), initIRBuilder(), injectPendingInvariantConditions(), inlineRetainOrClaimRVCalls(), InsertIntrinsicCalls(), insertSpills(), llvm::ARMTTIImpl::instCombineIntrinsic(), llvm::AMDGPU::instrumentAddress(), llvm::AMDGPU::instrumentAddressImpl(), LLVMPositionBuilderImpl(), lowerAwaitSuspend(), lowerLocalAllocas(), llvm::lowerObjectSizeCall(), lowerPtrAnnotation(), lowerSubFn(), makeStatepointExplicitImpl(), matchStridedStart(), mergeConditionalStoreToAddress(), llvm::InstCombinerImpl::mergeStoreIntoSuccessor(), llvm::EscapeEnumerator::Next(), optimizeSQRT(), processPhiNode(), processUGT_ADDCST_ADD(), processUMulZExtIdiom(), promoteAllocaUserToVector(), llvm::InstCombinerImpl::pushFreezeToPreventPoisonFromPropagating(), reduceSwitchRange(), RemovePreallocated(), removeUndefIntroducingPredecessor(), replaceCoroEndAsync(), restoreIP(), rewritePHIsForCleanupPad(), llvm::InstCombinerImpl::run(), llvm::KCFIPass::run(), llvm::SPIRVMergeRegionExitTargets::runOnConvergenceRegionNoRecurse(), salvageDebugInfoImpl(), scalarizeMaskedCompressStore(), scalarizeMaskedExpandLoad(), scalarizeMaskedGather(), scalarizeMaskedLoad(), scalarizeMaskedScatter(), scalarizeMaskedStore(), scalarizeMaskedVectorHistogram(), setInsertionPoint(), llvm::SCEVExpander::setInsertPoint(), simplifyAMDGCNMemoryIntrinsicDemanded(), llvm::InstCombinerImpl::SimplifyDemandedUseBits(), llvm::X86TTIImpl::simplifyDemandedVectorEltsIntrinsic(), simplifySwitchOfCmpIntrinsic(), simplifySwitchOfPowersOfTwo(), simplifyUsingControlFlow(), llvm::InstCombinerImpl::sinkNotIntoLogicalOp(), llvm::InstCombinerImpl::sinkNotIntoOtherHandOfLogicalOp(), llvm::InstCombinerImpl::SliceUpIllegalIntegerPHI(), llvm::spliceBB(), llvm::splitBB(), llvm::SplitBlockAndInsertForEachLane(), llvm::splitLoopBound(), splitMergedValStore(), switchToLookupTable(), targetParallelCallback(), llvm::OpenMPIRBuilder::tileLoops(), tryInterleave(), trySwitchToSelect(), llvm::UnrollRuntimeLoopRemainder(), llvm::UpgradeIntrinsicCall(), llvm::slpvectorizer::BoUpSLP::vectorizeTree(), versionCallSiteWithCond(), llvm::LoopVersioning::versionLoop(), llvm::InstCombinerImpl::visitExtractValueInst(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::InstCombinerImpl::visitSwitchInst().
|
inline |
This specifies that created instructions should be inserted at the specified point.
Definition at line 215 of file IRBuilder.h.
References BB, llvm::BasicBlock::end(), InsertPt, and SetCurrentDebugLocation().
|
inline |
This specifies that created instructions should be inserted at the specified point, but also requires that IP
is dereferencable.
Definition at line 224 of file IRBuilder.h.
References BB, llvm::BasicBlock::getParent(), InsertPt, and SetCurrentDebugLocation().
|
inline |
This specifies that created instructions should be inserted before the specified instruction.
Definition at line 206 of file IRBuilder.h.
References assert(), BB, llvm::BasicBlock::end(), I, InsertPt, and SetCurrentDebugLocation().
|
inline |
This specifies that created instructions should inserted at the beginning end of the specified function, but after already existing static alloca instructions that are at the start.
Definition at line 233 of file IRBuilder.h.
References BB, F, llvm::BasicBlock::getFirstNonPHIOrDbgOrAlloca(), and InsertPt.
void IRBuilderBase::SetInstDebugLocation | ( | Instruction * | I | ) | const |
If this builder has a current debug location, set it on the specified instruction.
Definition at line 71 of file IRBuilder.cpp.
References I.
|
inline |
Enable/Disable use of constrained floating point math.
When enabled the CreateF<op>() calls instead create constrained floating point intrinsic calls. Fast math flags are unaffected by this setting.
Definition at line 336 of file IRBuilder.h.
References IsFPConstrained.
Referenced by llvm::lowerAtomicRMWInst().
|
inline |
Set nosanitize metadata.
Definition at line 244 of file IRBuilder.h.
References llvm::MDNode::get(), and getContext().
Referenced by BuilderTy::BuilderTy().
|
protected |
Definition at line 138 of file IRBuilder.h.
Referenced by ClearInsertionPoint(), CreateAlignedLoad(), CreateAlignedStore(), CreateAlloca(), CreateAssumption(), CreateAtomicCmpXchg(), CreateAtomicRMW(), CreateBinaryIntrinsic(), CreateCatchRet(), CreateFree(), CreateGlobalString(), CreateIntrinsic(), CreateLaunderInvariantGroup(), CreateMalloc(), CreateStackSave(), CreateStripInvariantGroup(), CreateUnaryIntrinsic(), CreateVectorReverse(), CreateVectorSplice(), getCurrentFunctionReturnType(), GetInsertBlock(), setConstrainedFPFunctionAttr(), SetInsertPoint(), and SetInsertPointPastAllocas().
|
protected |
Definition at line 140 of file IRBuilder.h.
Referenced by CreateAggregateRet(), CreateConstGEP1_32(), CreateConstGEP1_64(), CreateConstGEP2_32(), CreateConstGEP2_64(), CreateConstInBoundsGEP1_32(), CreateConstInBoundsGEP1_64(), CreateConstInBoundsGEP2_32(), CreateConstInBoundsGEP2_64(), CreateFence(), CreateGlobalString(), CreateGlobalStringPtr(), CreateMalloc(), CreateNoAliasScopeDeclaration(), CreatePreserveArrayAccessIndex(), CreatePreserveStructAccessIndex(), CreatePtrDiff(), CreateRet(), CreateRetVoid(), CreateStackSave(), CreateUnreachable(), getAllOnesMask(), getBFloatTy(), getContext(), getDoubleTy(), getFalse(), getFloatTy(), getHalfTy(), getIndexTy(), getInt(), getInt128Ty(), getInt16Ty(), getInt1Ty(), getInt32Ty(), getInt64Ty(), getInt8Ty(), getIntNTy(), getIntPtrTy(), getPtrTy(), getTrue(), and getVoidTy().
|
protected |
Definition at line 148 of file IRBuilder.h.
Referenced by getDefaultConstrainedExcept(), setDefaultConstrainedExcept(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
|
protected |
Definition at line 149 of file IRBuilder.h.
Referenced by getDefaultConstrainedRounding(), setDefaultConstrainedRounding(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
|
protected |
Definition at line 144 of file IRBuilder.h.
Referenced by getDefaultFPMathTag(), setDefaultFPMathTag(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
|
protected |
Definition at line 151 of file IRBuilder.h.
Referenced by setDefaultOperandBundles(), and llvm::IRBuilderBase::OperandBundlesGuard::~OperandBundlesGuard().
|
protected |
Definition at line 145 of file IRBuilder.h.
Referenced by clearFastMathFlags(), CreateBinOpFMF(), CreateCall(), CreateConstrainedFPBinOp(), CreateConstrainedFPCast(), CreateConstrainedFPUnroundedBinOp(), CreateFAddFMF(), CreateFDivFMF(), CreateFMulFMF(), CreateFNegFMF(), CreateFRemFMF(), CreateFSubFMF(), CreatePHI(), CreateSelectFMF(), CreateUnOp(), getFastMathFlags(), setFastMathFlags(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().
|
protected |
Definition at line 141 of file IRBuilder.h.
Referenced by CreateAdd(), CreateAnd(), CreateAShr(), CreateBinaryIntrinsic(), CreateBinOpFMF(), CreateConstGEP1_32(), CreateConstGEP1_64(), CreateConstGEP2_32(), CreateConstGEP2_64(), CreateConstInBoundsGEP1_32(), CreateConstInBoundsGEP1_64(), CreateConstInBoundsGEP2_32(), CreateConstInBoundsGEP2_64(), CreateExtractElement(), CreateExtractValue(), CreateFAddFMF(), CreateFDivFMF(), CreateFMulFMF(), CreateFNegFMF(), CreateFRemFMF(), CreateFSubFMF(), CreateGEP(), CreateICmp(), CreateInsertElement(), CreateInsertValue(), CreateLShr(), CreateMul(), CreateOr(), CreatePointerBitCastOrAddrSpaceCast(), CreatePointerCast(), CreateSDiv(), CreateSelectFMF(), CreateShl(), CreateShuffleVector(), CreateSRem(), CreateSub(), CreateTrunc(), CreateUDiv(), CreateUIToFP(), CreateUnOp(), CreateURem(), CreateXor(), and CreateZExt().
|
protected |
Definition at line 142 of file IRBuilder.h.
Referenced by Insert().
|
protected |
Definition at line 139 of file IRBuilder.h.
Referenced by ClearInsertionPoint(), GetInsertPoint(), Insert(), SetInsertPoint(), and SetInsertPointPastAllocas().
|
protected |
Definition at line 147 of file IRBuilder.h.
Referenced by CreateCall(), CreateFAddFMF(), CreateFDivFMF(), CreateFMulFMF(), CreateFPExtFMF(), CreateFPToSI(), CreateFPToUI(), CreateFPTruncFMF(), CreateFRemFMF(), CreateFSubFMF(), CreateInvoke(), CreateMaxNum(), CreateMinNum(), CreateSIToFP(), CreateUIToFP(), getIsFPConstrained(), setIsFPConstrained(), and llvm::IRBuilderBase::FastMathFlagGuard::~FastMathFlagGuard().