LLVM
8.0.1
|
This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block. More...
#include "llvm/IR/IRBuilder.h"
Public Member Functions | |
IRBuilder (LLVMContext &C, const T &F, Inserter I=Inserter(), MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (LLVMContext &C, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (BasicBlock *TheBB, const T &F, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (BasicBlock *TheBB, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (Instruction *IP, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, const T &F, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
IRBuilder (BasicBlock *TheBB, BasicBlock::iterator IP, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
const T & | getFolder () |
Get the constant folder being used. More... | |
template<typename InstTy > | |
InstTy * | Insert (InstTy *I, const Twine &Name="") const |
Insert and return the specified instruction. More... | |
Constant * | Insert (Constant *C, const Twine &="") const |
No-op overload to handle constants. More... | |
ReturnInst * | CreateRetVoid () |
Create a 'ret void' instruction. More... | |
ReturnInst * | CreateRet (Value *V) |
Create a 'ret <val>' instruction. More... | |
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. More... | |
BranchInst * | CreateBr (BasicBlock *Dest) |
Create an unconditional 'br label X' instruction. More... | |
BranchInst * | CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, MDNode *BranchWeights=nullptr, MDNode *Unpredictable=nullptr) |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More... | |
BranchInst * | CreateCondBr (Value *Cond, BasicBlock *True, BasicBlock *False, Instruction *MDSrc) |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction. More... | |
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). More... | |
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). More... | |
InvokeInst * | CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
Create an invoke instruction. More... | |
InvokeInst * | CreateInvoke (FunctionType *Ty, Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, const Twine &Name="") |
InvokeInst * | CreateInvoke (Function *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
InvokeInst * | CreateInvoke (Function *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, const Twine &Name="") |
InvokeInst * | CreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="") |
InvokeInst * | CreateInvoke (Value *Callee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> Args=None, 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=None, 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 * | 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 * | 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, Instruction *FMFSource, const Twine &Name="") |
Copy fast-math-flags from an instruction rather than using the builder's default FMF. More... | |
Value * | CreateFSub (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFSubFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="") |
Copy fast-math-flags from an instruction rather than using the builder's default FMF. More... | |
Value * | CreateFMul (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFMulFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="") |
Copy fast-math-flags from an instruction rather than using the builder's default FMF. More... | |
Value * | CreateFDiv (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFDivFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="") |
Copy fast-math-flags from an instruction rather than using the builder's default FMF. More... | |
Value * | CreateFRem (Value *L, Value *R, const Twine &Name="", MDNode *FPMD=nullptr) |
Value * | CreateFRemFMF (Value *L, Value *R, Instruction *FMFSource, const Twine &Name="") |
Copy fast-math-flags from an instruction rather than using the builder's default FMF. More... | |
Value * | CreateBinOp (Instruction::BinaryOps Opc, Value *LHS, Value *RHS, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateNeg (Value *V, const Twine &Name="", bool HasNUW=false, bool HasNSW=false) |
Value * | CreateNSWNeg (Value *V, const Twine &Name="") |
Value * | CreateNUWNeg (Value *V, const Twine &Name="") |
Value * | CreateFNeg (Value *V, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateNot (Value *V, const Twine &Name="") |
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. More... | |
LoadInst * | CreateLoad (Type *Ty, Value *Ptr, const Twine &Name="") |
LoadInst * | CreateLoad (Type *Ty, Value *Ptr, bool isVolatile, const Twine &Name="") |
LoadInst * | CreateLoad (Value *Ptr, const char *Name) |
LoadInst * | CreateLoad (Value *Ptr, const Twine &Name="") |
LoadInst * | CreateLoad (Value *Ptr, bool isVolatile, const Twine &Name="") |
StoreInst * | CreateStore (Value *Val, Value *Ptr, bool isVolatile=false) |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, const char *Name) |
Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter. More... | |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, const Twine &Name="") |
LoadInst * | CreateAlignedLoad (Type *Ty, Value *Ptr, unsigned Align, bool isVolatile, const Twine &Name="") |
LoadInst * | CreateAlignedLoad (Value *Ptr, unsigned Align, const char *Name) |
LoadInst * | CreateAlignedLoad (Value *Ptr, unsigned Align, const Twine &Name="") |
LoadInst * | CreateAlignedLoad (Value *Ptr, unsigned Align, bool isVolatile, const Twine &Name="") |
StoreInst * | CreateAlignedStore (Value *Val, Value *Ptr, unsigned Align, bool isVolatile=false) |
FenceInst * | CreateFence (AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System, const Twine &Name="") |
AtomicCmpXchgInst * | CreateAtomicCmpXchg (Value *Ptr, Value *Cmp, Value *New, AtomicOrdering SuccessOrdering, AtomicOrdering FailureOrdering, SyncScope::ID SSID=SyncScope::System) |
AtomicRMWInst * | CreateAtomicRMW (AtomicRMWInst::BinOp Op, Value *Ptr, Value *Val, AtomicOrdering Ordering, SyncScope::ID SSID=SyncScope::System) |
Value * | CreateGEP (Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="") |
Value * | CreateGEP (Type *Ty, Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="") |
Value * | CreateInBoundsGEP (Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="") |
Value * | CreateInBoundsGEP (Type *Ty, Value *Ptr, ArrayRef< Value *> IdxList, const Twine &Name="") |
Value * | CreateGEP (Value *Ptr, Value *Idx, const Twine &Name="") |
Value * | CreateGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="") |
Value * | CreateInBoundsGEP (Type *Ty, Value *Ptr, Value *Idx, const Twine &Name="") |
Value * | CreateConstGEP1_32 (Value *Ptr, unsigned Idx0, 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="") |
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 * | CreateConstGEP1_64 (Value *Ptr, uint64_t Idx0, const Twine &Name="") |
Value * | CreateConstInBoundsGEP1_64 (Type *Ty, Value *Ptr, uint64_t Idx0, const Twine &Name="") |
Value * | CreateConstInBoundsGEP1_64 (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 * | CreateConstGEP2_64 (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 * | CreateConstInBoundsGEP2_64 (Value *Ptr, uint64_t Idx0, uint64_t Idx1, const Twine &Name="") |
Value * | CreateStructGEP (Type *Ty, Value *Ptr, unsigned Idx, const Twine &Name="") |
Value * | CreateStructGEP (Value *Ptr, unsigned Idx, const Twine &Name="") |
Constant * | CreateGlobalStringPtr (StringRef Str, const Twine &Name="", unsigned AddressSpace=0) |
Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8. More... | |
Value * | CreateTrunc (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateZExt (Value *V, Type *DestTy, const Twine &Name="") |
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. More... | |
Value * | CreateSExtOrTrunc (Value *V, Type *DestTy, const Twine &Name="") |
Create a SExt or Trunc from the integer value V to DestTy. More... | |
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="") |
Value * | CreateSIToFP (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateFPTrunc (Value *V, Type *DestTy, const Twine &Name="") |
Value * | CreateFPExt (Value *V, Type *DestTy, const Twine &Name="") |
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="") |
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="") |
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) |
PHINode * | CreatePHI (Type *Ty, unsigned NumReservedValues, const Twine &Name="") |
CallInst * | CreateCall (FunctionType *FTy, Value *Callee, ArrayRef< Value *> Args=None, 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 (Function *Callee, ArrayRef< Value *> Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (Function *Callee, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (Value *Callee, ArrayRef< Value *> Args=None, const Twine &Name="", MDNode *FPMathTag=nullptr) |
CallInst * | CreateCall (Value *Callee, ArrayRef< Value *> Args, ArrayRef< OperandBundleDef > OpBundles, const Twine &Name="", MDNode *FPMathTag=nullptr) |
Value * | CreateSelect (Value *C, Value *True, Value *False, 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 (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< uint32_t > IntMask, const Twine &Name="") |
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 * | CreateIsNull (Value *Arg, const Twine &Name="") |
Return an i1 value testing if Arg is null. More... | |
Value * | CreateIsNotNull (Value *Arg, const Twine &Name="") |
Return an i1 value testing if Arg is not null. More... | |
Value * | CreatePtrDiff (Value *LHS, Value *RHS, const Twine &Name="") |
Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects. More... | |
Value * | CreateLaunderInvariantGroup (Value *Ptr) |
Create a launder.invariant.group intrinsic call. More... | |
Value * | CreateStripInvariantGroup (Value *Ptr) |
Create a strip.invariant.group intrinsic call. More... | |
Value * | CreateVectorSplat (unsigned NumElts, Value *V, const Twine &Name="") |
Return a vector value that contains. More... | |
Value * | CreateExtractInteger (const DataLayout &DL, Value *From, IntegerType *ExtractedTy, uint64_t Offset, const Twine &Name) |
Return a value that has been extracted from a larger integer type. More... | |
CallInst * | CreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, unsigned Alignment, Value *OffsetValue=nullptr, Value **TheCheck=nullptr) |
Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More... | |
CallInst * | CreateAlignmentAssumption (const DataLayout &DL, Value *PtrValue, Value *Alignment, Value *OffsetValue=nullptr, Value **TheCheck=nullptr) |
Create an assume intrinsic call that represents an alignment assumption on the provided pointer. More... | |
Public Member Functions inherited from llvm::IRBuilderBase | |
IRBuilderBase (LLVMContext &context, MDNode *FPMathTag=nullptr, ArrayRef< OperandBundleDef > OpBundles=None) | |
void | ClearInsertionPoint () |
Clear the insertion point: created instructions will not be inserted into a block. More... | |
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. More... | |
void | SetInsertPoint (Instruction *I) |
This specifies that created instructions should be inserted before the specified instruction. More... | |
void | SetInsertPoint (BasicBlock *TheBB, BasicBlock::iterator IP) |
This specifies that created instructions should be inserted at the specified point. More... | |
void | SetCurrentDebugLocation (DebugLoc L) |
Set location information used by debugging information. More... | |
const DebugLoc & | getCurrentDebugLocation () const |
Get location information used by debugging information. More... | |
void | SetInstDebugLocation (Instruction *I) const |
If this builder has a current debug location, set it on the specified instruction. More... | |
Type * | getCurrentFunctionReturnType () const |
Get the return type of the current function that we're emitting into. More... | |
InsertPoint | saveIP () const |
Returns the current insert point. More... | |
InsertPoint | saveAndClearIP () |
Returns the current insert point, clearing it in the process. More... | |
void | restoreIP (InsertPoint IP) |
Sets the current insert point to a previously-saved location. More... | |
MDNode * | getDefaultFPMathTag () const |
Get the floating point math metadata being used. More... | |
FastMathFlags | getFastMathFlags () const |
Get the flags to be applied to created floating point ops. More... | |
void | clearFastMathFlags () |
Clear the fast-math flags. More... | |
void | setDefaultFPMathTag (MDNode *FPMathTag) |
Set the floating point math metadata to be used. More... | |
void | setFastMathFlags (FastMathFlags NewFMF) |
Set the fast-math flags to be used with generated fp-math operators. More... | |
GlobalVariable * | CreateGlobalString (StringRef Str, const Twine &Name="", unsigned AddressSpace=0) |
Make a new global variable with initializer type i8*. More... | |
ConstantInt * | getInt1 (bool V) |
Get a constant value representing either true or false. More... | |
ConstantInt * | getTrue () |
Get the constant value for i1 true. More... | |
ConstantInt * | getFalse () |
Get the constant value for i1 false. More... | |
ConstantInt * | getInt8 (uint8_t C) |
Get a constant 8-bit value. More... | |
ConstantInt * | getInt16 (uint16_t C) |
Get a constant 16-bit value. More... | |
ConstantInt * | getInt32 (uint32_t C) |
Get a constant 32-bit value. More... | |
ConstantInt * | getInt64 (uint64_t C) |
Get a constant 64-bit value. More... | |
ConstantInt * | getIntN (unsigned N, uint64_t C) |
Get a constant N-bit value, zero extended or truncated from a 64-bit value. More... | |
ConstantInt * | getInt (const APInt &AI) |
Get a constant integer value. More... | |
IntegerType * | getInt1Ty () |
Fetch the type representing a single bit. More... | |
IntegerType * | getInt8Ty () |
Fetch the type representing an 8-bit integer. More... | |
IntegerType * | getInt16Ty () |
Fetch the type representing a 16-bit integer. More... | |
IntegerType * | getInt32Ty () |
Fetch the type representing a 32-bit integer. More... | |
IntegerType * | getInt64Ty () |
Fetch the type representing a 64-bit integer. More... | |
IntegerType * | getInt128Ty () |
Fetch the type representing a 128-bit integer. More... | |
IntegerType * | getIntNTy (unsigned N) |
Fetch the type representing an N-bit integer. More... | |
Type * | getHalfTy () |
Fetch the type representing a 16-bit floating point value. More... | |
Type * | getFloatTy () |
Fetch the type representing a 32-bit floating point value. More... | |
Type * | getDoubleTy () |
Fetch the type representing a 64-bit floating point value. More... | |
Type * | getVoidTy () |
Fetch the type representing void. More... | |
PointerType * | getInt8PtrTy (unsigned AddrSpace=0) |
Fetch the type representing a pointer to an 8-bit integer value. More... | |
IntegerType * | getIntPtrTy (const DataLayout &DL, unsigned AddrSpace=0) |
Fetch the type representing a pointer to an integer value. More... | |
CallInst * | CreateMemSet (Value *Ptr, Value *Val, uint64_t Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memset to the specified pointer and the specified value. More... | |
CallInst * | CreateMemSet (Value *Ptr, Value *Val, Value *Size, unsigned Align, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, uint64_t Size, unsigned Align, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert an element unordered-atomic memset of the region of memory starting at the given pointer to the given value. More... | |
CallInst * | CreateElementUnorderedAtomicMemSet (Value *Ptr, Value *Val, Value *Size, unsigned Align, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memcpy between the specified pointers. More... | |
CallInst * | CreateMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateElementUnorderedAtomicMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert an element unordered-atomic memcpy between the specified pointers. More... | |
CallInst * | CreateElementUnorderedAtomicMemCpy (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert a memmove between the specified pointers. More... | |
CallInst * | CreateMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, bool isVolatile=false, MDNode *TBAATag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateElementUnorderedAtomicMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, uint64_t Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
Create and insert an element unordered-atomic memmove between the specified pointers. More... | |
CallInst * | CreateElementUnorderedAtomicMemMove (Value *Dst, unsigned DstAlign, Value *Src, unsigned SrcAlign, Value *Size, uint32_t ElementSize, MDNode *TBAATag=nullptr, MDNode *TBAAStructTag=nullptr, MDNode *ScopeTag=nullptr, MDNode *NoAliasTag=nullptr) |
CallInst * | CreateFAddReduce (Value *Acc, Value *Src) |
Create a vector fadd reduction intrinsic of the source vector. More... | |
CallInst * | CreateFMulReduce (Value *Acc, Value *Src) |
Create a vector fmul reduction intrinsic of the source vector. More... | |
CallInst * | CreateAddReduce (Value *Src) |
Create a vector int add reduction intrinsic of the source vector. More... | |
CallInst * | CreateMulReduce (Value *Src) |
Create a vector int mul reduction intrinsic of the source vector. More... | |
CallInst * | CreateAndReduce (Value *Src) |
Create a vector int AND reduction intrinsic of the source vector. More... | |
CallInst * | CreateOrReduce (Value *Src) |
Create a vector int OR reduction intrinsic of the source vector. More... | |
CallInst * | CreateXorReduce (Value *Src) |
Create a vector int XOR reduction intrinsic of the source vector. More... | |
CallInst * | CreateIntMaxReduce (Value *Src, bool IsSigned=false) |
Create a vector integer max reduction intrinsic of the source vector. More... | |
CallInst * | CreateIntMinReduce (Value *Src, bool IsSigned=false) |
Create a vector integer min reduction intrinsic of the source vector. More... | |
CallInst * | CreateFPMaxReduce (Value *Src, bool NoNaN=false) |
Create a vector float max reduction intrinsic of the source vector. More... | |
CallInst * | CreateFPMinReduce (Value *Src, bool NoNaN=false) |
Create a vector float min reduction intrinsic of the source vector. More... | |
CallInst * | CreateLifetimeStart (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.start intrinsic. More... | |
CallInst * | CreateLifetimeEnd (Value *Ptr, ConstantInt *Size=nullptr) |
Create a lifetime.end intrinsic. More... | |
CallInst * | CreateInvariantStart (Value *Ptr, ConstantInt *Size=nullptr) |
Create a call to invariant.start intrinsic. More... | |
CallInst * | CreateMaskedLoad (Value *Ptr, unsigned Align, Value *Mask, Value *PassThru=nullptr, const Twine &Name="") |
Create a call to Masked Load intrinsic. More... | |
CallInst * | CreateMaskedStore (Value *Val, Value *Ptr, unsigned Align, Value *Mask) |
Create a call to Masked Store intrinsic. More... | |
CallInst * | CreateMaskedGather (Value *Ptrs, unsigned Align, Value *Mask=nullptr, Value *PassThru=nullptr, const Twine &Name="") |
Create a call to Masked Gather intrinsic. More... | |
CallInst * | CreateMaskedScatter (Value *Val, Value *Ptrs, unsigned Align, Value *Mask=nullptr) |
Create a call to Masked Scatter intrinsic. More... | |
CallInst * | CreateAssumption (Value *Cond) |
Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true. More... | |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Value *> CallArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="") |
Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More... | |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, uint32_t Flags, ArrayRef< Use > CallArgs, ArrayRef< Use > TransitionArgs, ArrayRef< Use > DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="") |
Create a call to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More... | |
CallInst * | CreateGCStatepointCall (uint64_t ID, uint32_t NumPatchBytes, Value *ActualCallee, ArrayRef< Use > CallArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="") |
Conveninence function for the common case when CallArgs are filled in using makeArrayRef(CS.arg_begin(), CS.arg_end()); Use needs to be .get()'ed to get the Value pointer. More... | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Value *> InvokeArgs, ArrayRef< Value *> DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="") |
Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More... | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, uint32_t Flags, ArrayRef< Use > InvokeArgs, ArrayRef< Use > TransitionArgs, ArrayRef< Use > DeoptArgs, ArrayRef< Value *> GCArgs, const Twine &Name="") |
Create an invoke to the experimental.gc.statepoint intrinsic to start a new statepoint sequence. More... | |
InvokeInst * | CreateGCStatepointInvoke (uint64_t ID, uint32_t NumPatchBytes, Value *ActualInvokee, BasicBlock *NormalDest, BasicBlock *UnwindDest, ArrayRef< Use > InvokeArgs, 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. More... | |
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. More... | |
CallInst * | CreateUnaryIntrinsic (Intrinsic::ID ID, Value *V, Instruction *FMFSource=nullptr, const Twine &Name="") |
Create a call to intrinsic ID with 1 operand which is mangled on its type. More... | |
CallInst * | CreateBinaryIntrinsic (Intrinsic::ID ID, Value *LHS, Value *RHS, Instruction *FMFSource=nullptr, const Twine &Name="") |
Create a call to intrinsic ID with 2 operands which is mangled on the first type. More... | |
CallInst * | CreateIntrinsic (Intrinsic::ID ID, ArrayRef< Type *> Types, ArrayRef< Value *> Args, Instruction *FMFSource=nullptr, const Twine &Name="") |
Create a call to intrinsic ID with args , mangled using Types . More... | |
CallInst * | CreateMinNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the minnum intrinsic. More... | |
CallInst * | CreateMaxNum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the maxnum intrinsic. More... | |
CallInst * | CreateMinimum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the minimum intrinsic. More... | |
CallInst * | CreateMaximum (Value *LHS, Value *RHS, const Twine &Name="") |
Create call to the maximum intrinsic. More... | |
Additional Inherited Members | |
Protected Attributes inherited from llvm::IRBuilderBase | |
BasicBlock * | BB |
BasicBlock::iterator | InsertPt |
LLVMContext & | Context |
MDNode * | DefaultFPMathTag |
FastMathFlags | FMF |
ArrayRef< OperandBundleDef > | DefaultOperandBundles |
This provides a uniform API for creating instructions and inserting them into a basic block: either at the end of a BasicBlock, or at a specific iterator location in a block.
Note that the builder does not expose the full generality of LLVM instructions. For access to extra instruction properties, use the mutators (e.g. setVolatile) on the instructions after they have been created. Convenience state exists to specify fast-math flags and fp-math tags.
The first template argument specifies a class to use for creating constants. This defaults to creating minimally folded constants. The second template argument allows clients to specify custom insertion hooks that are called on every newly created insertion.
Definition at line 743 of file IRBuilder.h.
|
inline |
Definition at line 747 of file IRBuilder.h.
|
inlineexplicit |
Definition at line 753 of file IRBuilder.h.
|
inlineexplicit |
Definition at line 757 of file IRBuilder.h.
|
inlineexplicit |
Definition at line 763 of file IRBuilder.h.
|
inlineexplicit |
Definition at line 769 of file IRBuilder.h.
|
inline |
Definition at line 775 of file IRBuilder.h.
|
inline |
Definition at line 782 of file IRBuilder.h.
|
inline |
Definition at line 1014 of file IRBuilder.h.
Referenced by llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), llvm::createEfficiencySanitizerPass(), createFFSIntrinsic(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::InnerLoopVectorizer::emitTransformedIndex(), evaluateGEPOffsetExpression(), foldAndOrOfEqualityCmpsWithConstants(), foldICmpWithTruncSignExtendedVal(), foldUDivShl(), getMulHu(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getOrInsertValueProfilingCall(), llvm::InnerLoopVectorizer::getStepVector(), GlobalWasGeneratedByCompiler(), insertSinCosCall(), instrumentMaskedLoadOrStore(), isCallPromotable(), IsNonLocalValue(), isReportingError(), LowerAtomicRMWInst(), LowerCTPOP(), performAtomicOp(), processOverflowIntrinsic(), RedzoneSizeForScale(), RetagMask(), shouldInstrumentBlock(), shouldKeepInEntry(), StackMallocSizeClass(), switchToSelect(), TurnSwitchRangeIntoICmp(), TypeSizeToSizeIndex(), unifyBitWidth(), llvm::UnrollRuntimeLoopRemainder(), llvm::ObjectSizeOffsetEvaluator::visitGEPOperator(), and llvm::InnerLoopVectorizer::widenPHIInstruction().
|
inline |
Definition at line 1737 of file IRBuilder.h.
Referenced by INITIALIZE_PASS(), and simplifyInvariantGroupIntrinsic().
|
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 840 of file IRBuilder.h.
|
inline |
Provided to resolve 'CreateAlignedLoad(Ptr, Align, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter.
Definition at line 1393 of file IRBuilder.h.
Referenced by combineLoadToNewType(), CreateLoadIns(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), INITIALIZE_PASS(), lowerLoadRelative(), simplifyMaskedLoad(), simplifyNeonVld1(), TypeSizeToSizeIndex(), unpackLoadToAggregate(), UpgradeMaskedLoad(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().
|
inline |
Definition at line 1399 of file IRBuilder.h.
|
inline |
Definition at line 1405 of file IRBuilder.h.
|
inline |
Definition at line 1413 of file IRBuilder.h.
|
inline |
Definition at line 1418 of file IRBuilder.h.
|
inline |
Definition at line 1424 of file IRBuilder.h.
|
inline |
Definition at line 1430 of file IRBuilder.h.
Referenced by combineStoreToNewValue(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), INITIALIZE_PASS(), TypeSizeToSizeIndex(), unpackStoreToAggregate(), UpgradeMaskedStore(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().
|
inline |
Create an assume intrinsic call that represents an alignment assumption on the provided pointer.
An optional offset can be provided, and if it is provided, the offset must be subtracted from the provided pointer to get the pointer with the specified alignment.
It may be sometimes useful to do some other logic based on this alignment check, thus it can be stored into 'TheCheck'.
Definition at line 2277 of file IRBuilder.h.
|
inline |
Create an assume intrinsic call that represents an alignment assumption on the provided pointer.
An optional offset can be provided, and if it is provided, the offset must be subtracted from the provided pointer to get the pointer with the specified alignment.
It may be sometimes useful to do some other logic based on this alignment check, thus it can be stored into 'TheCheck'.
This overload handles the condition where the Alignment is dependent on an existing value rather than a static value.
Definition at line 2303 of file IRBuilder.h.
|
inline |
Definition at line 1344 of file IRBuilder.h.
Referenced by handleNoSuspendCoroutine(), INITIALIZE_PASS(), simplifyAllocaArraySize(), and StackMallocSizeClass().
|
inline |
Definition at line 1349 of file IRBuilder.h.
|
inline |
Definition at line 1164 of file IRBuilder.h.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), ApplyX86MaskOn1BitsVec(), assertBranchOrSelectConditionHoisted(), buildPartialUnswitchConditionalBranch(), canonicalizeSaturatedSubtract(), canTransformToMemCmp(), checkForNegativeOperand(), llvm::createEfficiencySanitizerPass(), createMaskedBitTest(), createMaskInstrs(), foldAnyOrAllBitsSet(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndOr(), foldShiftedShift(), getMulHu(), getSignature(), hasZeroSignBit(), INITIALIZE_PASS(), insertSinCosCall(), instrumentMaskedLoadOrStore(), llvm::log2(), LowerAtomicRMWInst(), LowerBSWAP(), LowerCTPOP(), llvm::IntrinsicLowering::LowerIntrinsicCall(), mayLoopAccessLocation(), performAtomicOp(), performMaskedAtomicOp(), processUMulZExtIdiom(), RetagMask(), llvm::LoopPredicationPass::run(), simplifyX86round(), StackMallocSizeClass(), TypeSizeToSizeIndex(), llvm::UnrollRuntimeLoopRemainder(), upgradeMaskedMove(), upgradePMULDQ(), and visitMaskedMerge().
|
inline |
Definition at line 1174 of file IRBuilder.h.
|
inline |
Definition at line 1178 of file IRBuilder.h.
|
inline |
Definition at line 1144 of file IRBuilder.h.
Referenced by generateSignedDivisionCode(), generateSignedRemainderCode(), getMulHu(), RetagMask(), simplifyX86immShift(), simplifyX86varShift(), and upgradePMULDQ().
|
inline |
Definition at line 1154 of file IRBuilder.h.
|
inline |
Definition at line 1159 of file IRBuilder.h.
|
inline |
Definition at line 1444 of file IRBuilder.h.
Referenced by atomicSizeSupported(), createCmpXchgInstFun(), GetRMWLibcall(), and performMaskedAtomicOp().
|
inline |
Definition at line 1452 of file IRBuilder.h.
Referenced by atomicSizeSupported(), getOrInsertValueProfilingCall(), and performMaskedAtomicOp().
|
inline |
Definition at line 1298 of file IRBuilder.h.
Referenced by llvm::InnerLoopVectorizer::buildScalarSteps(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), createRdxShuffleMask(), createReplacementInstr(), llvm::InnerLoopVectorizer::emitTransformedIndex(), llvm::VPRecipeBase::eraseFromParent(), llvm::InnerLoopVectorizer::fixReduction(), llvm::FoldBranchToCommonDest(), foldLogicCastConstant(), foldOperationIntoPhiValue(), foldOperationIntoSelectOperand(), getMulHu(), llvm::getOrderedReduction(), getReducedType(), llvm::getShuffleReduction(), llvm::InnerLoopVectorizer::getStepVector(), hasZeroSignBit(), INITIALIZE_PASS(), mapBinOpcode(), matchDeMorgansLaws(), narrowUDivURem(), promotedOpIsNUW(), SimplifyBSwap(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TypeSizeToSizeIndex(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1732 of file IRBuilder.h.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), ApplyX86MaskOn1BitsVec(), atomicSizeSupported(), canonicalizeBitCastExtElt(), canTransformToMemCmp(), llvm::castToCStr(), combineLoadToNewType(), combineStoreToNewValue(), createCast(), CreateLoadIns(), llvm::createMemCpyLoopUnknownSize(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), EmitX86ScalarSelect(), foldBitCastBitwiseLogic(), foldBitcastExtElt(), foldBitCastSelect(), foldVecTruncToExtElt(), getMulHu(), GetRMWLibcall(), getScalarIntrinsicDeclaration(), getSuccState(), getX86MaskVec(), handleNoSuspendCoroutine(), INITIALIZE_PASS(), llvm::InlineFunction(), llvm::log2(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), lowerLoadRelative(), lowerSubFn(), mayLoopAccessLocation(), needsRuntimeRegistrationOfSectionRange(), optimizeVectorResize(), llvm::WholeProgramDevirtPass::run(), simplifyInvariantGroupIntrinsic(), simplifyNeonVld1(), simplifyX86MaskedLoad(), simplifyX86MaskedStore(), simplifyX86movmsk(), simplifyX86round(), TypeSizeToSizeIndex(), unifyBitWidth(), UpgradeMaskedLoad(), UpgradeMaskedStore(), upgradePMULDQ(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), UpgradeX86VPERMT2Intrinsics(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), and llvm::InnerLoopVectorizer::vectorizeMemoryInstruction().
|
inline |
Definition at line 1810 of file IRBuilder.h.
Referenced by llvm::InnerLoopVectorizer::createBitOrPointerCast(), createOrdering(), GetRMWLibcall(), and isGEPFoldable().
|
inline |
Create an unconditional 'br label X' instruction.
Definition at line 848 of file IRBuilder.h.
Referenced by llvm::ConstantFoldTerminator(), FoldTwoEntryPHINode(), getSignature(), INITIALIZE_PASS(), isUnconditionalBranch(), mayLoopAccessLocation(), mergeCleanupPad(), performMaskedAtomicOp(), RemoveSwitchAfterSelectConversion(), removeUndefIntroducingPredecessor(), setBranchWeights(), shouldKeepInEntry(), SimplifyIndirectBrOnSelect(), SimplifyTerminatorOnSelect(), and SwitchToLookupTable().
|
inline |
Definition at line 1974 of file IRBuilder.h.
Referenced by asmClobbersCTR(), callIntrinsic(), llvm::SanitizerStatReport::create(), llvm::createEfficiencySanitizerPass(), createFFSIntrinsic(), CreateGCRelocates(), llvm::createHWAddressSanitizerPass(), createOrdering(), createPopcntIntrinsic(), CreatePrologue(), llvm::AArch64TargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::ARMTargetLowering::emitAtomicCmpXchgNoStoreLLBalance(), llvm::emitBinaryFloatFnCall(), llvm::emitCalloc(), llvm::emitFGetCUnlocked(), llvm::emitFGetSUnlocked(), llvm::emitFPutC(), llvm::emitFPutCUnlocked(), llvm::emitFPutS(), llvm::emitFPutSUnlocked(), llvm::emitFReadUnlocked(), llvm::emitFWrite(), llvm::emitFWriteUnlocked(), llvm::HexagonTargetLowering::emitLoadLinked(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::emitMalloc(), llvm::emitMemChr(), llvm::emitMemCmp(), llvm::emitMemCpyChk(), llvm::emitPutChar(), llvm::emitPutS(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), llvm::emitStrChr(), llvm::emitStrCpy(), llvm::emitStrLen(), llvm::emitStrNCmp(), llvm::emitStrNCpy(), llvm::PPCTargetLowering::emitTrailingFence(), emitUnaryFloatFnCallHelper(), getAllocaSizeInBytes(), getDeclareIntrin(), getIntrinsicForMaskedAtomicRMWBinOp32(), getPow(), GetRMWLibcall(), llvm::TargetLoweringBase::getSafeStackPointerLocation(), getSignature(), getSqrtCall(), getStackGuard(), getSuccState(), GlobalWasGeneratedByCompiler(), INITIALIZE_PASS(), insertSinCosCall(), instrumentMaskedLoadOrStore(), instrumentOneFunc(), isAtomic(), isCallPromotable(), isIndirectBrTarget(), isInterestingPointerComparisonOrSubtraction(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::makeDMB(), llvm::makeGuardControlFlowExplicit(), mayLoopAccessLocation(), needsRuntimeRegistrationOfSectionRange(), optimizeBinaryDoubleFP(), optimizeDoubleFP(), optimizeTrigReflections(), processUMulZExtIdiom(), promotedOpIsNUW(), RedzoneSizeForScale(), replaceUnaryCall(), RetagMask(), llvm::LoopDataPrefetchPass::run(), llvm::WholeProgramDevirtPass::run(), shouldInstrumentBlock(), shouldKeepFDivF32(), shouldKeepInEntry(), SimplifyBSwap(), StackMallocSizeClass(), TypeSizeToSizeIndex(), upgradeAVX512MaskToSelect(), UpgradeX86AddSubSatIntrinsics(), upgradeX86ConcatShift(), UpgradeX86MaskedShift(), upgradeX86Rotate(), UpgradeX86VPERMT2Intrinsics(), llvm::AMDGPULibCalls::useNative(), UseTlsOffset(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1983 of file IRBuilder.h.
|
inline |
Definition at line 1992 of file IRBuilder.h.
|
inline |
Definition at line 1997 of file IRBuilder.h.
|
inline |
Definition at line 2005 of file IRBuilder.h.
|
inline |
Definition at line 2013 of file IRBuilder.h.
|
inline |
Definition at line 1769 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), createReplacementInstr(), foldOperationIntoSelectOperand(), getScalarIntrinsicDeclaration(), INITIALIZE_PASS(), performMaskedAtomicOp(), shrinkInsertElt(), llvm::InnerLoopVectorizer::widenInstruction(), and llvm::InnerLoopVectorizer::widenIntOrFpInduction().
|
inline |
Definition at line 963 of file IRBuilder.h.
|
inline |
Definition at line 974 of file IRBuilder.h.
|
inline |
Definition at line 956 of file IRBuilder.h.
|
inline |
Definition at line 968 of file IRBuilder.h.
|
inline |
Definition at line 951 of file IRBuilder.h.
|
inline |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
Definition at line 854 of file IRBuilder.h.
Referenced by buildPartialUnswitchConditionalBranch(), ConnectEpilog(), ConnectProlog(), llvm::ConstantFoldTerminator(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), CreatePrologue(), getSignature(), handleFinalSuspend(), INITIALIZE_PASS(), mayLoopAccessLocation(), performMaskedAtomicOp(), shouldKeepInEntry(), SimplifyBranchOnICmpChain(), SimplifyTerminatorOnSelect(), SwitchToLookupTable(), TurnSwitchRangeIntoICmp(), and llvm::UnrollRuntimeLoopRemainder().
|
inline |
Create a conditional 'br Cond, TrueDest, FalseDest' instruction.
Copy branch meta data if available.
Definition at line 863 of file IRBuilder.h.
|
inline |
Definition at line 1516 of file IRBuilder.h.
Referenced by INITIALIZE_PASS(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), RetagMask(), TypeSizeToSizeIndex(), and UseTlsOffset().
|
inline |
Definition at line 1520 of file IRBuilder.h.
|
inline |
Definition at line 1566 of file IRBuilder.h.
|
inline |
Definition at line 1576 of file IRBuilder.h.
|
inline |
Definition at line 1540 of file IRBuilder.h.
|
inline |
Definition at line 1595 of file IRBuilder.h.
Referenced by INITIALIZE_PASS().
|
inline |
Definition at line 1608 of file IRBuilder.h.
|
inline |
Definition at line 1530 of file IRBuilder.h.
|
inline |
Definition at line 1580 of file IRBuilder.h.
Referenced by canTransformToMemCmp().
|
inline |
Definition at line 1590 of file IRBuilder.h.
|
inline |
Definition at line 1553 of file IRBuilder.h.
Referenced by createResumeEntryBlock(), handleFinalSuspend(), lowerSubFn(), and updateCoroFrame().
|
inline |
Definition at line 1613 of file IRBuilder.h.
Referenced by getOrInsertValueProfilingCall().
|
inline |
Definition at line 1626 of file IRBuilder.h.
|
inline |
Definition at line 1089 of file IRBuilder.h.
|
inline |
Definition at line 1075 of file IRBuilder.h.
|
inline |
Definition at line 2041 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), EmitX86ScalarSelect(), llvm::VPBranchOnMaskRecipe::execute(), llvm::VPBasicBlock::execute(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), getMulHu(), llvm::InnerLoopVectorizer::getOrCreateScalarValue(), llvm::getOrderedReduction(), llvm::getShuffleReduction(), INITIALIZE_PASS(), insertSinCosCall(), instrumentMaskedLoadOrStore(), isAtomic(), isReInterleaveMask(), shouldKeepFDivF32(), simplifyX86round(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TypeSizeToSizeIndex(), and upgradeMaskedMove().
|
inline |
Definition at line 2049 of file IRBuilder.h.
|
inline |
Return a value that has been extracted from a larger integer type.
Definition at line 2211 of file IRBuilder.h.
|
inline |
Definition at line 2083 of file IRBuilder.h.
Referenced by atomicSizeSupported(), createCast(), createCmpXchgInstFun(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), GetRMWLibcall(), getSignature(), INITIALIZE_PASS(), insertSinCosCall(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), optimizeBinaryDoubleFP(), performMaskedAtomicOp(), processUMulZExtIdiom(), TypeSizeToSizeIndex(), and unpackStoreToAggregate().
|
inline |
Definition at line 1213 of file IRBuilder.h.
Referenced by llvm::log2(), and optimizeBinaryDoubleFP().
|
inline |
Copy fast-math-flags from an instruction rather than using the builder's default FMF.
Definition at line 1222 of file IRBuilder.h.
Referenced by factorizeFAddFSub().
|
inline |
Definition at line 1957 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), llvm::createMinMaxOp(), foldVectorCmp(), getFCmpValue(), false::LibCallsShrinkWrap::perform(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1879 of file IRBuilder.h.
|
inline |
Definition at line 1889 of file IRBuilder.h.
Referenced by getMulHu().
|
inline |
Definition at line 1884 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), and getSqrtCall().
|
inline |
Definition at line 1899 of file IRBuilder.h.
|
inline |
Definition at line 1894 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), and getSqrtCall().
|
inline |
Definition at line 1904 of file IRBuilder.h.
|
inline |
Definition at line 1909 of file IRBuilder.h.
|
inline |
Definition at line 1919 of file IRBuilder.h.
|
inline |
Definition at line 1929 of file IRBuilder.h.
|
inline |
Definition at line 1924 of file IRBuilder.h.
|
inline |
Definition at line 1939 of file IRBuilder.h.
|
inline |
Definition at line 1934 of file IRBuilder.h.
|
inline |
Definition at line 1944 of file IRBuilder.h.
|
inline |
Definition at line 1914 of file IRBuilder.h.
|
inline |
Definition at line 1264 of file IRBuilder.h.
Referenced by llvm::AMDGPULibCalls::fold(), getMulHu(), getSqrtCall(), llvm::log2(), shouldKeepFDivF32(), and llvm::InstCombiner::visitFDiv().
|
inline |
Copy fast-math-flags from an instruction rather than using the builder's default FMF.
Definition at line 1273 of file IRBuilder.h.
|
inline |
Definition at line 1437 of file IRBuilder.h.
Referenced by llvm::RISCVTargetLowering::emitLeadingFence(), llvm::TargetLoweringBase::emitLeadingFence(), llvm::RISCVTargetLowering::emitTrailingFence(), and llvm::TargetLoweringBase::emitTrailingFence().
|
inline |
Definition at line 1247 of file IRBuilder.h.
Referenced by buildMultiplyTree(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), llvm::InnerLoopVectorizer::emitTransformedIndex(), llvm::AMDGPULibCalls::fold(), getMulHu(), getPow(), getSqrtCall(), llvm::InnerLoopVectorizer::getStepVector(), llvm::log2(), and optimizeBinaryDoubleFP().
|
inline |
Copy fast-math-flags from an instruction rather than using the builder's default FMF.
Definition at line 1256 of file IRBuilder.h.
|
inline |
Definition at line 1326 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), getMulHu(), and optimizeTrigReflections().
|
inline |
Definition at line 1822 of file IRBuilder.h.
|
inline |
Definition at line 1718 of file IRBuilder.h.
Referenced by optimizeDoubleFP().
|
inline |
Definition at line 1701 of file IRBuilder.h.
Referenced by getMulHu(), and llvm::log2().
|
inline |
Definition at line 1697 of file IRBuilder.h.
Referenced by getMulHu().
|
inline |
Definition at line 1713 of file IRBuilder.h.
|
inline |
Definition at line 1281 of file IRBuilder.h.
|
inline |
Copy fast-math-flags from an instruction rather than using the builder's default FMF.
Definition at line 1290 of file IRBuilder.h.
|
inline |
Definition at line 1230 of file IRBuilder.h.
|
inline |
Copy fast-math-flags from an instruction rather than using the builder's default FMF.
Definition at line 1239 of file IRBuilder.h.
Referenced by factorizeFAddFSub().
|
inline |
Definition at line 1458 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), createMaskedBitTest(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::createShadowStackGCLoweringPass(), llvm::InnerLoopVectorizer::emitTransformedIndex(), genLoopLimit(), getScalarIntrinsicDeclaration(), hasSameExtUse(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isGEPFoldable(), IsNonLocalValue(), isReportingError(), llvm::LibCallSimplifier::LibCallSimplifier(), lowerLoadRelative(), moveUp(), llvm::WholeProgramDevirtPass::run(), shouldInstrumentBlock(), TypeSizeToSizeIndex(), unifyBitWidth(), llvm::InnerLoopVectorizer::vectorizeInterleaveGroup(), llvm::InnerLoopVectorizer::vectorizeMemoryInstruction(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1463 of file IRBuilder.h.
|
inline |
Definition at line 1497 of file IRBuilder.h.
|
inline |
Definition at line 1501 of file IRBuilder.h.
|
inline |
Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8.
Definition at line 1642 of file IRBuilder.h.
Referenced by CreatePrologue(), and shouldKeepInEntry().
|
inline |
Definition at line 1949 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), canTransformToMemCmp(), createFFSIntrinsic(), createMinMax(), llvm::createMinMaxOp(), llvm::InnerLoopVectorizer::emitMinimumIterationCountCheck(), foldAndOrOfEqualityCmpsWithConstants(), foldICmpWithLowBitMaskedVal(), foldICmpWithTruncSignExtendedVal(), foldLogOpOfMaskedICmps(), foldLogOpOfMaskedICmps_NotAllZeros_BMask_Mixed(), foldVectorCmp(), getNewICmpValue(), INITIALIZE_PASS(), mapBinOpcode(), promotedOpIsNUW(), llvm::LoopPredicationPass::run(), simplifyX86round(), simplifyX86vpcom(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TypeSizeToSizeIndex(), upgradeAbs(), upgradeIntMinMax(), upgradeMaskedCompare(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1839 of file IRBuilder.h.
Referenced by llvm::ConstantFoldTerminator(), ConvertTwoCaseSwitch(), createOrdering(), CreatePrologue(), llvm::HexagonTargetLowering::emitStoreConditional(), foldAnyOrAllBitsSet(), getMulHu(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getSignature(), handleFinalSuspend(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isKnownTypeIdMember(), LowerAtomicCmpXchgInst(), performMaskedAtomicOp(), RetagMask(), StackMallocSizeClass(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1843 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), llvm::createEfficiencySanitizerPass(), createMaskedBitTest(), llvm::createMemCpyLoopUnknownSize(), getSignature(), INITIALIZE_PASS(), insertSinCosCall(), instrumentMaskedLoadOrStore(), performMaskedAtomicOp(), StackMallocSizeClass(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1867 of file IRBuilder.h.
Referenced by instrumentMaskedLoadOrStore().
|
inline |
Definition at line 1863 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), and performAtomicOp().
|
inline |
Definition at line 1875 of file IRBuilder.h.
Referenced by mayLoopAccessLocation(), and performAtomicOp().
|
inline |
Definition at line 1871 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), getBoundsCheckCond(), insertSinCosCall(), LowerAtomicRMWInst(), shouldKeepInEntry(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1851 of file IRBuilder.h.
Referenced by getMulHu().
|
inline |
Definition at line 1847 of file IRBuilder.h.
Referenced by createRdxShuffleMask(), and performAtomicOp().
|
inline |
Definition at line 1859 of file IRBuilder.h.
Referenced by llvm::VPRecipeBase::eraseFromParent(), isKnownTypeIdMember(), moveUp(), and performAtomicOp().
|
inline |
Definition at line 1855 of file IRBuilder.h.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), ConnectProlog(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), createRdxShuffleMask(), foldSignedTruncationCheck(), getBoundsCheckCond(), insertSinCosCall(), LowerAtomicRMWInst(), mayLoopAccessLocation(), shouldInstrumentBlock(), SwitchToLookupTable(), TurnSwitchRangeIntoICmp(), and llvm::UnrollRuntimeLoopRemainder().
|
inline |
Definition at line 1477 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), createReplacementInstr(), INITIALIZE_PASS(), isCallPromotable(), llvm::LibCallSimplifier::LibCallSimplifier(), shouldKeepInEntry(), switchToSelect(), unifyBitWidth(), unpackLoadToAggregate(), unpackStoreToAggregate(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1482 of file IRBuilder.h.
|
inline |
Definition at line 1508 of file IRBuilder.h.
|
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 887 of file IRBuilder.h.
|
inline |
Definition at line 2054 of file IRBuilder.h.
Referenced by llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), llvm::InnerLoopVectorizer::fixReduction(), getMulHu(), getScalarIntrinsicDeclaration(), hoistInsEltConst(), INITIALIZE_PASS(), optimizeIntegerToVectorInsertions(), llvm::InnerLoopVectorizer::packScalarIntoVectorValue(), shouldKeepFDivF32(), simplifyX86round(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TypeSizeToSizeIndex(), and upgradeMaskedMove().
|
inline |
Definition at line 2063 of file IRBuilder.h.
|
inline |
Definition at line 2091 of file IRBuilder.h.
Referenced by createCast(), createOrdering(), llvm::AArch64TTIImpl::getOrCreateResultFromMemIntrinsic(), GetRMWLibcall(), getSignature(), INITIALIZE_PASS(), LowerAtomicCmpXchgInst(), performMaskedAtomicOp(), processOverflowIntrinsic(), and unpackLoadToAggregate().
|
inline |
Definition at line 1801 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), llvm::createEfficiencySanitizerPass(), createOrdering(), llvm::emitFPutC(), llvm::emitFPutCUnlocked(), llvm::emitPutChar(), evaluateGEPOffsetExpression(), getReducedType(), GlobalWasGeneratedByCompiler(), hasZeroSignBit(), insertSinCosCall(), instrumentMaskedLoadOrStore(), IsNonLocalValue(), isReportingError(), llvm::LibCallSimplifier::LibCallSimplifier(), llvm::IntrinsicLowering::LowerIntrinsicCall(), shouldInstrumentBlock(), simplifyAllocaArraySize(), StackMallocSizeClass(), switchToSelect(), TypeSizeToSizeIndex(), upgradeX86ConcatShift(), and upgradeX86Rotate().
|
delete |
|
inline |
Definition at line 1727 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), createCast(), llvm::createEfficiencySanitizerPass(), createMaskInstrs(), createOrdering(), llvm::createSeparateConstOffsetFromGEPPass(), getAllocaSizeInBytes(), getSignature(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isAtomic(), IsNonLocalValue(), llvm::AArch64TargetLowering::lowerInterleavedLoad(), llvm::ARMTargetLowering::lowerInterleavedLoad(), RetagMask(), shouldInstrumentBlock(), StackMallocSizeClass(), and TypeSizeToSizeIndex().
|
inline |
Create an invoke instruction.
Definition at line 892 of file IRBuilder.h.
Referenced by INITIALIZE_PASS().
|
inline |
Definition at line 901 of file IRBuilder.h.
|
inline |
Definition at line 909 of file IRBuilder.h.
|
inline |
Definition at line 917 of file IRBuilder.h.
|
inline |
Definition at line 926 of file IRBuilder.h.
|
inline |
Definition at line 937 of file IRBuilder.h.
|
inline |
Return an i1 value testing if Arg
is not null.
Definition at line 2116 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), ConnectEpilog(), foldAnyOrAllBitsSet(), foldSelectICmpAndAnd(), llvm::UnrollRuntimeLoopRemainder(), and upgradeMaskedMove().
|
inline |
Return an i1 value testing if Arg
is null.
Definition at line 2110 of file IRBuilder.h.
|
inline |
Definition at line 2100 of file IRBuilder.h.
|
inline |
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 2142 of file IRBuilder.h.
Referenced by simplifyInvariantGroupIntrinsic().
|
inline |
Provided to resolve 'CreateLoad(Ty, Ptr, "...")' correctly, instead of converting the string to 'bool' for the isVolatile parameter.
Definition at line 1357 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), llvm::createEfficiencySanitizerPass(), llvm::createHWAddressSanitizerPass(), createMaskedBitTest(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), CreatePrologue(), createResumeEntryBlock(), ensurePromotedGV(), getMulHu(), getOrInsertValueProfilingCall(), getSignature(), getStackGuard(), getSuccState(), handleFinalSuspend(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isReportingError(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), lowerSubFn(), needsRuntimeRegistrationOfSectionRange(), performMaskedAtomicOp(), RedzoneSizeForScale(), RetagMask(), llvm::WholeProgramDevirtPass::run(), shouldInstrumentBlock(), shouldKeepInEntry(), StackMallocSizeClass(), switchToSelect(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1361 of file IRBuilder.h.
|
inline |
Definition at line 1365 of file IRBuilder.h.
|
inline |
Definition at line 1371 of file IRBuilder.h.
|
inline |
Definition at line 1376 of file IRBuilder.h.
|
inline |
Definition at line 1381 of file IRBuilder.h.
|
inline |
Definition at line 1124 of file IRBuilder.h.
Referenced by llvm::createEfficiencySanitizerPass(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), foldBitcastExtElt(), foldICmpWithHighBitMask(), foldSelectICmpAnd(), foldSelectICmpAndOr(), getMul64(), getShiftedValue(), GlobalWasGeneratedByCompiler(), hasZeroSignBit(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isKnownTypeIdMember(), LowerBSWAP(), LowerCTLZ(), LowerCTPOP(), performMaskedAtomicOp(), promotedOpIsNUW(), ReduceSwitchRange(), RetagMask(), simplifyX86immShift(), simplifyX86varShift(), SwitchToLookupTable(), switchToSelect(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1134 of file IRBuilder.h.
|
inline |
Definition at line 1139 of file IRBuilder.h.
|
inline |
Definition at line 1048 of file IRBuilder.h.
Referenced by buildMultiplyTree(), llvm::LoopVectorizationPlanner::collectTriviallyDeadInstructions(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::InnerLoopVectorizer::emitTransformedIndex(), generatedUnsignedRemainderCode(), getMul64(), getMulHu(), llvm::InnerLoopVectorizer::getStepVector(), INITIALIZE_PASS(), isCallPromotable(), isGEPFoldable(), IsNonLocalValue(), StackMallocSizeClass(), switchToSelect(), TypeSizeToSizeIndex(), unifyBitWidth(), upgradePMULDQ(), llvm::ObjectSizeOffsetEvaluator::visitAllocaInst(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
|
inline |
Definition at line 1308 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), canTransformToMemCmp(), getMulHu(), TypeSizeToSizeIndex(), unifyBitWidth(), and upgradeAbs().
|
inline |
Definition at line 1334 of file IRBuilder.h.
Referenced by canonicalizeICmpBool(), canonicalizeSaturatedSubtract(), createMaskInstrs(), llvm::VPRecipeBase::eraseFromParent(), llvm::FoldBranchToCommonDest(), LowerAtomicRMWInst(), LowerCTLZ(), llvm::IntrinsicLowering::LowerIntrinsicCall(), performAtomicOp(), SimplifyCondBranchToCondBranch(), sinkNotIntoXor(), TypeSizeToSizeIndex(), and visitMaskedMerge().
|
inline |
Definition at line 1023 of file IRBuilder.h.
|
inline |
Definition at line 1057 of file IRBuilder.h.
|
inline |
Definition at line 1318 of file IRBuilder.h.
Referenced by insertSinCosCall().
|
inline |
Definition at line 1040 of file IRBuilder.h.
|
inline |
Definition at line 1027 of file IRBuilder.h.
|
inline |
Definition at line 1061 of file IRBuilder.h.
|
inline |
Definition at line 1322 of file IRBuilder.h.
|
inline |
Definition at line 1044 of file IRBuilder.h.
|
inline |
Definition at line 1182 of file IRBuilder.h.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), buildPartialUnswitchConditionalBranch(), canonicalizeSaturatedSubtract(), checkForNegativeOperand(), llvm::createEfficiencySanitizerPass(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), foldAndOrOfEqualityCmpsWithConstants(), foldLogOpOfMaskedICmps(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndOr(), getBoundsCheckCond(), getMulHu(), GlobalWasGeneratedByCompiler(), INITIALIZE_PASS(), isKnownTypeIdMember(), llvm::log2(), LowerAtomicRMWInst(), LowerBSWAP(), LowerCTLZ(), mayLoopAccessLocation(), false::LibCallsShrinkWrap::perform(), performAtomicOp(), performMaskedAtomicOp(), ReduceSwitchRange(), RetagMask(), SimplifyCondBranchToCondBranch(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1192 of file IRBuilder.h.
|
inline |
Definition at line 1196 of file IRBuilder.h.
|
inline |
Definition at line 1969 of file IRBuilder.h.
Referenced by llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), createRetPHINode(), llvm::VPPredInstPHIRecipe::execute(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), getScalarIntrinsicDeclaration(), getSignature(), isKnownTypeIdMember(), performMaskedAtomicOp(), RetagMask(), shouldKeepInEntry(), speculatePHIs(), StackMallocSizeClass(), llvm::ObjectSizeOffsetEvaluator::visitPHINode(), and llvm::InnerLoopVectorizer::widenPHIInstruction().
|
inline |
Definition at line 1787 of file IRBuilder.h.
|
inline |
Definition at line 1778 of file IRBuilder.h.
Referenced by llvm::createEfficiencySanitizerPass(), createOrdering(), getAllocaSizeInBytes(), GlobalWasGeneratedByCompiler(), hasSameExtUse(), INITIALIZE_PASS(), instrumentMaskedLoadOrStore(), isAtomic(), isInterestingPointerComparisonOrSubtraction(), IsNonLocalValue(), RetagMask(), shouldInstrumentBlock(), StackMallocSizeClass(), TypeSizeToSizeIndex(), llvm::AMDGPULibCalls::useNative(), and UseTlsOffset().
|
inline |
Return the i64 difference between two pointer values, dividing out the size of the pointed-to objects.
This is intended to implement C-style pointer subtraction. As such, the pointers must be appropriately aligned for their element types and pointing into the same object.
Definition at line 2127 of file IRBuilder.h.
|
inline |
Definition at line 1722 of file IRBuilder.h.
Referenced by createCast(), createMaskInstrs(), llvm::createSeparateConstOffsetFromGEPPass(), FitWeights(), INITIALIZE_PASS(), instrumentOneFunc(), isKnownTypeIdMember(), IsNonLocalValue(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), mayLoopAccessLocation(), RedzoneSizeForScale(), RetagMask(), shouldInstrumentBlock(), SimplifyBranchOnICmpChain(), StackMallocSizeClass(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 947 of file IRBuilder.h.
|
inline |
Create a 'ret <val>' instruction.
Definition at line 829 of file IRBuilder.h.
Referenced by INITIALIZE_PASS(), llvm::InlineFunction(), llvm::makeGuardControlFlowExplicit(), needsRuntimeRegistrationOfSectionRange(), shouldKeepInEntry(), SimplifyCondBranchToTwoReturns(), and SwitchToLookupTable().
|
inline |
Create a 'ret void' instruction.
Definition at line 824 of file IRBuilder.h.
Referenced by llvm::createX86RetpolineThunksPass(), INITIALIZE_PASS(), llvm::makeGuardControlFlowExplicit(), needsRuntimeRegistrationOfSectionRange(), shouldKeepInEntry(), and SimplifyCondBranchToTwoReturns().
|
inline |
Definition at line 1079 of file IRBuilder.h.
Referenced by llvm::expandDivisionUpTo32Bits(), and llvm::expandDivisionUpTo64Bits().
|
inline |
Definition at line 2021 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), canTransformToMemCmp(), ConvertTwoCaseSwitch(), createMinMax(), llvm::createMinMaxOp(), createRdxShuffleMask(), EmitX86ScalarSelect(), EmitX86Select(), llvm::VPBlendRecipe::execute(), FoldTwoEntryPHINode(), getMulHu(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), getScalarIntrinsicDeclaration(), getSqrtCall(), hasZeroSignBit(), HoistThenElseCodeToIf(), INITIALIZE_PASS(), insertSinCosCall(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), moveUp(), performAtomicOp(), promotedOpIsNUW(), SimplifyCondBranchToCondBranch(), SimplifyCondBranchToTwoReturns(), simplifyX86round(), SpeculativelyExecuteBB(), StackMallocSizeClass(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), TypeSizeToSizeIndex(), upgradeAbs(), upgradeIntMinMax(), upgradeMaskedMove(), llvm::ObjectSizeOffsetEvaluator::visitSelectInst(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1663 of file IRBuilder.h.
Referenced by llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::InnerLoopVectorizer::fixReduction(), getMulHu(), getSqrtCall(), isLoopInvariant(), operator<<(), promotedOpIsNUW(), TypeSizeToSizeIndex(), and UpgradeMaskToInt().
|
inline |
Definition at line 1751 of file IRBuilder.h.
|
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 1684 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), isGEPFoldable(), mapBinOpcode(), simplifyX86vpcom(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), unifyBitWidth(), llvm::InnerLoopVectorizer::widenIntOrFpInduction(), and llvm::InnerLoopVectorizer::widenPHIInstruction().
|
inline |
Definition at line 1103 of file IRBuilder.h.
Referenced by canonicalizeLowbitMask(), canTransformToMemCmp(), createMaskedBitTest(), createMaskInstrs(), llvm::createSeparateConstOffsetFromGEPPass(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), foldSelectICmpAnd(), foldSelectICmpAndAnd(), foldSelectICmpAndOr(), getShiftedValue(), INITIALIZE_PASS(), isKnownTypeIdMember(), llvm::log2(), LowerBSWAP(), performMaskedAtomicOp(), ReduceSwitchRange(), RetagMask(), simplifyValueKnownNonZero(), simplifyX86immShift(), simplifyX86varShift(), TypeSizeToSizeIndex(), unifyBitWidth(), and upgradePMULDQ().
|
inline |
Definition at line 1112 of file IRBuilder.h.
|
inline |
Definition at line 1118 of file IRBuilder.h.
|
inline |
Definition at line 2068 of file IRBuilder.h.
Referenced by ApplyX86MaskOn1BitsVec(), concatenateTwoVectors(), concatSubVector(), createRdxShuffleMask(), llvm::InnerLoopVectorizer::fixFirstOrderRecurrence(), foldSelectShuffle(), llvm::getShuffleReduction(), getX86MaskVec(), INITIALIZE_PASS(), llvm::AArch64TargetLowering::lowerInterleavedStore(), llvm::ARMTargetLowering::lowerInterleavedStore(), narrowVectorSelect(), reorderSubVector(), llvm::InnerLoopVectorizer::reverseVector(), simplifyNeonTbl1(), simplifyX86insertps(), simplifyX86pshufb(), simplifyX86round(), simplifyX86vpermilvar(), simplifyX86vpermv(), llvm::InnerLoopVectorizer::truncateToMinimalBitwidths(), UpgradeX86ALIGNIntrinsics(), UpgradeX86PSLLDQIntrinsics(), UpgradeX86PSRLDQIntrinsics(), and llvm::InnerLoopVectorizer::vectorizeInterleaveGroup().
|
inline |
Definition at line 2077 of file IRBuilder.h.
|
inline |
Definition at line 1709 of file IRBuilder.h.
Referenced by getMulHu(), and llvm::log2().
|
inline |
Definition at line 1098 of file IRBuilder.h.
Referenced by llvm::expandRemainderUpTo32Bits(), and llvm::expandRemainderUpTo64Bits().
|
inline |
Definition at line 1386 of file IRBuilder.h.
Referenced by atomicSizeSupported(), llvm::createEfficiencySanitizerPass(), llvm::createMemCpyLoopKnownSize(), llvm::createMemCpyLoopUnknownSize(), createMemSetLoop(), createResumeEntryBlock(), getOrInsertValueProfilingCall(), getSignature(), getSuccState(), INITIALIZE_PASS(), isReportingError(), LowerAtomicCmpXchgInst(), LowerAtomicRMWInst(), RetagMask(), shouldInstrumentBlock(), shouldKeepInEntry(), StackMallocSizeClass(), and TypeSizeToSizeIndex().
|
inline |
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 2169 of file IRBuilder.h.
Referenced by simplifyInvariantGroupIntrinsic().
|
inline |
Definition at line 1631 of file IRBuilder.h.
Referenced by getSuccState(), INITIALIZE_PASS(), and shouldKeepInEntry().
|
inline |
Definition at line 1636 of file IRBuilder.h.
|
inline |
Definition at line 1031 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), canTransformToMemCmp(), checkForNegativeOperand(), createFFSIntrinsic(), llvm::InnerLoopVectorizer::emitTransformedIndex(), llvm::VPlan::execute(), generatedUnsignedRemainderCode(), generateSignedDivisionCode(), generateSignedRemainderCode(), getBoundsCheckCond(), getIntrinsicForMaskedAtomicRMWBinOp32(), getMulHu(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), insertSinCosCall(), isKnownTypeIdMember(), LowerAtomicRMWInst(), llvm::IntrinsicLowering::LowerIntrinsicCall(), mayLoopAccessLocation(), moveUp(), performAtomicOp(), processOverflowIntrinsic(), ReduceSwitchRange(), simplifyValueKnownNonZero(), StackMallocSizeClass(), SwitchToLookupTable(), and unifyBitWidth().
|
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 877 of file IRBuilder.h.
Referenced by createResumeEntryBlock(), FitWeights(), getSignature(), and SimplifyBranchOnICmpChain().
|
inline |
Definition at line 1655 of file IRBuilder.h.
Referenced by createMaskInstrs(), llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), evaluateGEPOffsetExpression(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::InnerLoopVectorizer::fixReduction(), foldBitcastExtElt(), getAllocaSizeInBytes(), getMul64(), getMulHu(), INITIALIZE_PASS(), IsNonLocalValue(), isReportingError(), operator<<(), performMaskedAtomicOp(), promotedOpIsNUW(), shrinkSplatShuffle(), SwitchToLookupTable(), switchToSelect(), truncateIVUse(), TypeSizeToSizeIndex(), and llvm::InnerLoopVectorizer::widenIntOrFpInduction().
|
inline |
Definition at line 1760 of file IRBuilder.h.
Referenced by llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), and llvm::SCEVExpander::replaceCongruentIVs().
|
inline |
Definition at line 1065 of file IRBuilder.h.
Referenced by llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), generatedUnsignedRemainderCode(), and generateSignedDivisionCode().
|
inline |
Definition at line 1705 of file IRBuilder.h.
Referenced by getMulHu().
|
inline |
Definition at line 978 of file IRBuilder.h.
Referenced by CreatePrologue(), createResumeEntryBlock(), llvm::VPBasicBlock::execute(), llvm::VPlan::execute(), getSignature(), performMaskedAtomicOp(), removeUndefIntroducingPredecessor(), and TryToMergeLandingPad().
|
inline |
Definition at line 1093 of file IRBuilder.h.
Referenced by llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), generateSignedRemainderCode(), llvm::InnerLoopVectorizer::getOrCreateVectorTripCount(), and llvm::UnrollRuntimeLoopRemainder().
|
inline |
Definition at line 2037 of file IRBuilder.h.
|
inline |
Return a vector value that contains.
NumElts
elements. Definition at line 2196 of file IRBuilder.h.
Referenced by llvm::InnerLoopVectorizer::fixReduction(), llvm::InnerLoopVectorizer::getBroadcastInstrs(), getScalarIntrinsicDeclaration(), llvm::InnerLoopVectorizer::getStepVector(), simplifyX86immShift(), upgradeX86ConcatShift(), upgradeX86Rotate(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
Definition at line 1200 of file IRBuilder.h.
Referenced by assertBranchOrSelectConditionHoisted(), canonicalizeICmpBool(), createMaskInstrs(), foldAndToXor(), foldOrToXor(), foldSelectICmpAnd(), foldSelectICmpAndOr(), foldXorToXor(), generateSignedDivisionCode(), generateSignedRemainderCode(), getMulHu(), hasZeroSignBit(), LowerAtomicRMWInst(), performAtomicOp(), RetagMask(), and TypeSizeToSizeIndex().
|
inline |
Definition at line 1205 of file IRBuilder.h.
|
inline |
Definition at line 1209 of file IRBuilder.h.
|
inline |
Definition at line 1659 of file IRBuilder.h.
Referenced by canTransformToMemCmp(), llvm::AArch64TargetLowering::emitLoadLinked(), llvm::ARMTargetLowering::emitLoadLinked(), llvm::HexagonTargetLowering::emitStoreConditional(), llvm::expandDivisionUpTo32Bits(), llvm::expandDivisionUpTo64Bits(), llvm::expandRemainderUpTo32Bits(), llvm::expandRemainderUpTo64Bits(), llvm::InnerLoopVectorizer::fixReduction(), foldAnyOrAllBitsSet(), foldUDivShl(), getMul64(), getMulHu(), getSqrtCall(), hasZeroSignBit(), insertSinCosCall(), isIndirectBrTarget(), isLoopInvariant(), moveUp(), operator<<(), performMaskedAtomicOp(), processUMulZExtIdiom(), promotedOpIsNUW(), RetagMask(), switchToSelect(), TypeSizeToSizeIndex(), and llvm::ObjectSizeOffsetEvaluator::visitCallSite().
|
inline |
Definition at line 1742 of file IRBuilder.h.
Referenced by llvm::AArch64TargetLowering::emitStoreConditional(), llvm::ARMTargetLowering::emitStoreConditional(), and llvm::log2().
|
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 1669 of file IRBuilder.h.
Referenced by canonicalizeSaturatedSubtract(), canTransformToMemCmp(), createFFSIntrinsic(), createMaskedBitTest(), foldSelectICmpAnd(), foldSelectICmpAndOr(), isIndirectBrTarget(), mapBinOpcode(), simplifyX86movmsk(), SwitchToLookupTable(), switchToSelect(), and llvm::InnerLoopVectorizer::truncateToMinimalBitwidths().
|
inline |
Get the constant folder being used.
Definition at line 790 of file IRBuilder.h.
|
inline |
Insert and return the specified instruction.
Definition at line 794 of file IRBuilder.h.
Referenced by llvm::LoopAccessInfo::addRuntimeChecks(), canonicalizeSaturatedSubtract(), INITIALIZE_PASS(), isReportingError(), llvm::InnerLoopVectorizer::scalarizeInstruction(), and llvm::InnerLoopVectorizer::widenInstruction().
|
inline |
No-op overload to handle constants.
Definition at line 801 of file IRBuilder.h.