class IRBuilderBase

Declaration

class IRBuilderBase { /* full declaration omitted */ };

Description

Common base class shared among various IRBuilders.

Declared at: llvm/include/llvm/IR/IRBuilder.h:93

Member Variables

private SmallVector<std::pair<unsigned int, MDNode*>, 2> MetadataToCopy
Pairs of (metadata kind, MDNode *) that should be added to all newly created instructions, like !dbg metadata.
protected llvm::BasicBlock* BB
protected BasicBlock::iterator InsertPt
protected llvm::LLVMContext& Context
protected const llvm::IRBuilderFolder& Folder
protected const llvm::IRBuilderDefaultInserter& Inserter
protected llvm::MDNode* DefaultFPMathTag
protected llvm::FastMathFlags FMF
protected bool IsFPConstrained = false
protected fp::ExceptionBehavior DefaultConstrainedExcept = fp::ebStrict
protected llvm::RoundingMode DefaultConstrainedRounding = RoundingMode::Dynamic
protected ArrayRef<llvm::OperandBundleDef> DefaultOperandBundles

Method Overview

  • public void AddMetadataToInst(llvm::Instruction * I) const
  • private void AddOrRemoveMetadataToCopy(unsigned int Kind, llvm::MDNode * MD)
  • public void ClearInsertionPoint()
  • public void CollectMetadataToCopy(llvm::Instruction * Src, ArrayRef<unsigned int> MetadataKinds)
  • public llvm::Value * CreateAShr(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateAShr(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateAShr(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateAdd(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::CallInst * CreateAddReduce(llvm::Value * Src)
  • public llvm::Value * CreateAddrSpaceCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::ReturnInst * CreateAggregateRet(llvm::Value *const * retVals, unsigned int N)
  • public llvm::LoadInst * CreateAlignedLoad(llvm::Type * Ty, llvm::Value * Ptr, llvm::MaybeAlign Align, const char * Name)
  • public llvm::LoadInst * CreateAlignedLoad(llvm::Type * Ty, llvm::Value * Ptr, llvm::MaybeAlign Align, bool isVolatile, const llvm::Twine & Name = "")
  • public llvm::LoadInst * CreateAlignedLoad(llvm::Type * Ty, llvm::Value * Ptr, llvm::MaybeAlign Align, const llvm::Twine & Name = "")
  • public llvm::StoreInst * CreateAlignedStore(llvm::Value * Val, llvm::Value * Ptr, llvm::MaybeAlign Align, bool isVolatile = false)
  • public llvm::CallInst * CreateAlignmentAssumption(const llvm::DataLayout & DL, llvm::Value * PtrValue, unsigned int Alignment, llvm::Value * OffsetValue = nullptr)
  • public llvm::CallInst * CreateAlignmentAssumption(const llvm::DataLayout & DL, llvm::Value * PtrValue, llvm::Value * Alignment, llvm::Value * OffsetValue = nullptr)
  • private llvm::CallInst * CreateAlignmentAssumptionHelper(const llvm::DataLayout & DL, llvm::Value * PtrValue, llvm::Value * AlignValue, llvm::Value * OffsetValue)
  • public llvm::AllocaInst * CreateAlloca(llvm::Type * Ty, llvm::Value * ArraySize = nullptr, const llvm::Twine & Name = "")
  • public llvm::AllocaInst * CreateAlloca(llvm::Type * Ty, unsigned int AddrSpace, llvm::Value * ArraySize = nullptr, const llvm::Twine & Name = "")
  • public llvm::Value * CreateAnd(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateAnd(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateAnd(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateAnd(ArrayRef<llvm::Value *> Ops)
  • public llvm::CallInst * CreateAndReduce(llvm::Value * Src)
  • public llvm::CallInst * CreateArithmeticFence(llvm::Value * Val, llvm::Type * DstType, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateAssumption(llvm::Value * Cond, ArrayRef<llvm::OperandBundleDef> OpBundles = llvm::None)
  • public llvm::AtomicCmpXchgInst * CreateAtomicCmpXchg(llvm::Value * Ptr, llvm::Value * Cmp, llvm::Value * New, llvm::MaybeAlign Align, llvm::AtomicOrdering SuccessOrdering, llvm::AtomicOrdering FailureOrdering, SyncScope::ID SSID = SyncScope::System)
  • public llvm::AtomicRMWInst * CreateAtomicRMW(AtomicRMWInst::BinOp Op, llvm::Value * Ptr, llvm::Value * Val, llvm::MaybeAlign Align, llvm::AtomicOrdering Ordering, SyncScope::ID SSID = SyncScope::System)
  • public llvm::Value * CreateBinOp(Instruction::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallInst * CreateBinaryIntrinsic(Intrinsic::ID ID, llvm::Value * LHS, llvm::Value * RHS, llvm::Instruction * FMFSource = nullptr, const llvm::Twine & Name = "")
  • public llvm::Value * CreateBitCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateBitOrPointerCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::BranchInst * CreateBr(llvm::BasicBlock * Dest)
  • public llvm::CallInst * CreateCall(llvm::FunctionCallee Callee, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallInst * CreateCall(llvm::FunctionCallee Callee, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallInst * CreateCall(llvm::FunctionType * FTy, llvm::Value * Callee, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallInst * CreateCall(llvm::FunctionType * FTy, llvm::Value * Callee, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallBrInst * CreateCallBr(llvm::FunctionType * Ty, llvm::Value * Callee, llvm::BasicBlock * DefaultDest, ArrayRef<llvm::BasicBlock *> IndirectDests, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "")
  • public llvm::CallBrInst * CreateCallBr(llvm::FunctionType * Ty, llvm::Value * Callee, llvm::BasicBlock * DefaultDest, ArrayRef<llvm::BasicBlock *> IndirectDests, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "")
  • public llvm::CallBrInst * CreateCallBr(llvm::FunctionCallee Callee, llvm::BasicBlock * DefaultDest, ArrayRef<llvm::BasicBlock *> IndirectDests, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "")
  • public llvm::CallBrInst * CreateCallBr(llvm::FunctionCallee Callee, llvm::BasicBlock * DefaultDest, ArrayRef<llvm::BasicBlock *> IndirectDests, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "")
  • public llvm::Value * CreateCast(Instruction::CastOps Op, llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::CatchPadInst * CreateCatchPad(llvm::Value * ParentPad, ArrayRef<llvm::Value *> Args, const llvm::Twine & Name = "")
  • public llvm::CatchReturnInst * CreateCatchRet(llvm::CatchPadInst * CatchPad, llvm::BasicBlock * BB)
  • public llvm::CatchSwitchInst * CreateCatchSwitch(llvm::Value * ParentPad, llvm::BasicBlock * UnwindBB, unsigned int NumHandlers, const llvm::Twine & Name = "")
  • public llvm::CleanupPadInst * CreateCleanupPad(llvm::Value * ParentPad, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "")
  • public llvm::CleanupReturnInst * CreateCleanupRet(llvm::CleanupPadInst * CleanupPad, llvm::BasicBlock * UnwindBB = nullptr)
  • public llvm::Value * CreateCmp(CmpInst::Predicate Pred, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::BranchInst * CreateCondBr(llvm::Value * Cond, llvm::BasicBlock * True, llvm::BasicBlock * False, llvm::MDNode * BranchWeights = nullptr, llvm::MDNode * Unpredictable = nullptr)
  • public llvm::BranchInst * CreateCondBr(llvm::Value * Cond, llvm::BasicBlock * True, llvm::BasicBlock * False, llvm::Instruction * MDSrc)
  • public llvm::Value * CreateConstGEP1_32(llvm::Type * Ty, llvm::Value * Ptr, unsigned int Idx0, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstGEP1_64(llvm::Type * Ty, llvm::Value * Ptr, uint64_t Idx0, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstGEP2_32(llvm::Type * Ty, llvm::Value * Ptr, unsigned int Idx0, unsigned int Idx1, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstGEP2_64(llvm::Type * Ty, llvm::Value * Ptr, uint64_t Idx0, uint64_t Idx1, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstInBoundsGEP1_32(llvm::Type * Ty, llvm::Value * Ptr, unsigned int Idx0, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstInBoundsGEP1_64(llvm::Type * Ty, llvm::Value * Ptr, uint64_t Idx0, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstInBoundsGEP2_32(llvm::Type * Ty, llvm::Value * Ptr, unsigned int Idx0, unsigned int Idx1, const llvm::Twine & Name = "")
  • public llvm::Value * CreateConstInBoundsGEP2_64(llvm::Type * Ty, llvm::Value * Ptr, uint64_t Idx0, uint64_t Idx1, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateConstrainedFPBinOp(Intrinsic::ID ID, llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource = nullptr, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr, Optional<llvm::RoundingMode> Rounding = None, Optional<fp::ExceptionBehavior> Except = None)
  • public llvm::CallInst * CreateConstrainedFPCall(llvm::Function * Callee, ArrayRef<llvm::Value *> Args, const llvm::Twine & Name = "", Optional<llvm::RoundingMode> Rounding = None, Optional<fp::ExceptionBehavior> Except = None)
  • public llvm::CallInst * CreateConstrainedFPCast(Intrinsic::ID ID, llvm::Value * V, llvm::Type * DestTy, llvm::Instruction * FMFSource = nullptr, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr, Optional<llvm::RoundingMode> Rounding = None, Optional<fp::ExceptionBehavior> Except = None)
  • public llvm::CallInst * CreateConstrainedFPCmp(Intrinsic::ID ID, CmpInst::Predicate P, llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", Optional<fp::ExceptionBehavior> Except = None)
  • public llvm::CallInst * CreateElementUnorderedAtomicMemCpy(llvm::Value * Dst, llvm::Align DstAlign, llvm::Value * Src, llvm::Align SrcAlign, llvm::Value * Size, uint32_t ElementSize, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateElementUnorderedAtomicMemMove(llvm::Value * Dst, llvm::Align DstAlign, llvm::Value * Src, llvm::Align SrcAlign, llvm::Value * Size, uint32_t ElementSize, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateElementUnorderedAtomicMemSet(llvm::Value * Ptr, llvm::Value * Val, uint64_t Size, llvm::Align Alignment, uint32_t ElementSize, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateElementUnorderedAtomicMemSet(llvm::Value * Ptr, llvm::Value * Val, llvm::Value * Size, llvm::Align Alignment, uint32_t ElementSize, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::Value * CreateExactSDiv(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateExactUDiv(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateExtractElement(llvm::Value * Vec, uint64_t Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateExtractElement(llvm::Value * Vec, llvm::Value * Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateExtractInteger(const llvm::DataLayout & DL, llvm::Value * From, llvm::IntegerType * ExtractedTy, uint64_t Offset, const llvm::Twine & Name)
  • public llvm::Value * CreateExtractValue(llvm::Value * Agg, ArrayRef<unsigned int> Idxs, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateExtractVector(llvm::Type * DstType, llvm::Value * SrcVec, llvm::Value * Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFAdd(llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", llvm::MDNode * FPMD = nullptr)
  • public llvm::Value * CreateFAddFMF(llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateFAddReduce(llvm::Value * Acc, llvm::Value * Src)
  • public llvm::Value * CreateFCmp(CmpInst::Predicate P, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • private llvm::Value * CreateFCmpHelper(CmpInst::Predicate P, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name, llvm::MDNode * FPMathTag, bool IsSignaling)
  • public llvm::Value * CreateFCmpOEQ(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpOGE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpOGT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpOLE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpOLT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpONE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpORD(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpS(CmpInst::Predicate P, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpUEQ(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpUGE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpUGT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpULE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpULT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpUNE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFCmpUNO(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFDiv(llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", llvm::MDNode * FPMD = nullptr)
  • public llvm::Value * CreateFDivFMF(llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFMul(llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", llvm::MDNode * FPMD = nullptr)
  • public llvm::Value * CreateFMulFMF(llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateFMulReduce(llvm::Value * Acc, llvm::Value * Src)
  • public llvm::Value * CreateFNeg(llvm::Value * V, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateFNegFMF(llvm::Value * V, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFPCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFPExt(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateFPMaxReduce(llvm::Value * Src)
  • public llvm::CallInst * CreateFPMinReduce(llvm::Value * Src)
  • public llvm::Value * CreateFPToSI(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFPToUI(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFPTrunc(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFRem(llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", llvm::MDNode * FPMD = nullptr)
  • public llvm::Value * CreateFRemFMF(llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFSub(llvm::Value * L, llvm::Value * R, const llvm::Twine & Name = "", llvm::MDNode * FPMD = nullptr)
  • public llvm::Value * CreateFSubFMF(llvm::Value * L, llvm::Value * R, llvm::Instruction * FMFSource, const llvm::Twine & Name = "")
  • public llvm::FenceInst * CreateFence(llvm::AtomicOrdering Ordering, SyncScope::ID SSID = SyncScope::System, const llvm::Twine & Name = "")
  • public llvm::Value * CreateFreeze(llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCGetPointerBase(llvm::Value * DerivedPtr, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCGetPointerOffset(llvm::Value * DerivedPtr, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCRelocate(llvm::Instruction * Statepoint, int BaseOffset, int DerivedOffset, llvm::Type * ResultType, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCResult(llvm::Instruction * Statepoint, llvm::Type * ResultType, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualCallee, ArrayRef<llvm::Value *> CallArgs, Optional<ArrayRef<llvm::Value *>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualCallee, uint32_t Flags, ArrayRef<llvm::Value *> CallArgs, Optional<ArrayRef<llvm::Use>> TransitionArgs, Optional<ArrayRef<llvm::Use>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateGCStatepointCall(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualCallee, ArrayRef<llvm::Use> CallArgs, Optional<ArrayRef<llvm::Value *>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateGCStatepointInvoke(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualInvokee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Value *> InvokeArgs, Optional<ArrayRef<llvm::Value *>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateGCStatepointInvoke(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualInvokee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Use> InvokeArgs, Optional<ArrayRef<llvm::Value *>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateGCStatepointInvoke(uint64_t ID, uint32_t NumPatchBytes, llvm::FunctionCallee ActualInvokee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, uint32_t Flags, ArrayRef<llvm::Value *> InvokeArgs, Optional<ArrayRef<llvm::Use>> TransitionArgs, Optional<ArrayRef<llvm::Use>> DeoptArgs, ArrayRef<llvm::Value *> GCArgs, const llvm::Twine & Name = "")
  • public llvm::Value * CreateGEP(llvm::Type * Ty, llvm::Value * Ptr, ArrayRef<llvm::Value *> IdxList, const llvm::Twine & Name = "", bool IsInBounds = false)
  • public llvm::GlobalVariable * CreateGlobalString(llvm::StringRef Str, const llvm::Twine & Name = "", unsigned int AddressSpace = 0, llvm::Module * M = nullptr)
  • public llvm::Constant * CreateGlobalStringPtr(llvm::StringRef Str, const llvm::Twine & Name = "", unsigned int AddressSpace = 0, llvm::Module * M = nullptr)
  • public llvm::Value * CreateICmp(CmpInst::Predicate P, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpEQ(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpNE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpSGE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpSGT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpSLE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpSLT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpUGE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpUGT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpULE(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateICmpULT(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateInBoundsGEP(llvm::Type * Ty, llvm::Value * Ptr, ArrayRef<llvm::Value *> IdxList, const llvm::Twine & Name = "")
  • public llvm::IndirectBrInst * CreateIndirectBr(llvm::Value * Addr, unsigned int NumDests = 10)
  • public llvm::Value * CreateInsertElement(llvm::Type * VecTy, llvm::Value * NewElt, llvm::Value * Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateInsertElement(llvm::Type * VecTy, llvm::Value * NewElt, uint64_t Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateInsertElement(llvm::Value * Vec, llvm::Value * NewElt, llvm::Value * Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateInsertElement(llvm::Value * Vec, llvm::Value * NewElt, uint64_t Idx, const llvm::Twine & Name = "")
  • private llvm::BinaryOperator * CreateInsertNUWNSWBinOp(BinaryOperator::BinaryOps Opc, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name, bool HasNUW, bool HasNSW)
  • public llvm::Value * CreateInsertValue(llvm::Value * Agg, llvm::Value * Val, ArrayRef<unsigned int> Idxs, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateInsertVector(llvm::Type * DstType, llvm::Value * SrcVec, llvm::Value * SubVec, llvm::Value * Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateIntCast(llvm::Value *, llvm::Type *, const char *)
  • public llvm::Value * CreateIntCast(llvm::Value * V, llvm::Type * DestTy, bool isSigned, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateIntMaxReduce(llvm::Value * Src, bool IsSigned = false)
  • public llvm::CallInst * CreateIntMinReduce(llvm::Value * Src, bool IsSigned = false)
  • public llvm::Value * CreateIntToPtr(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateIntrinsic(Intrinsic::ID ID, ArrayRef<llvm::Type *> Types, ArrayRef<llvm::Value *> Args, llvm::Instruction * FMFSource = nullptr, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateInvariantStart(llvm::Value * Ptr, llvm::ConstantInt * Size = nullptr)
  • public llvm::InvokeInst * CreateInvoke(llvm::FunctionCallee Callee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateInvoke(llvm::FunctionType * Ty, llvm::Value * Callee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateInvoke(llvm::FunctionCallee Callee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> OpBundles, const llvm::Twine & Name = "")
  • public llvm::InvokeInst * CreateInvoke(llvm::FunctionType * Ty, llvm::Value * Callee, llvm::BasicBlock * NormalDest, llvm::BasicBlock * UnwindDest, ArrayRef<llvm::Value *> Args = None, const llvm::Twine & Name = "")
  • public llvm::Value * CreateIsNeg(llvm::Value * Arg, const llvm::Twine & Name = "")
  • public llvm::Value * CreateIsNotNeg(llvm::Value * Arg, const llvm::Twine & Name = "")
  • public llvm::Value * CreateIsNotNull(llvm::Value * Arg, const llvm::Twine & Name = "")
  • public llvm::Value * CreateIsNull(llvm::Value * Arg, const llvm::Twine & Name = "")
  • public llvm::Value * CreateLShr(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateLShr(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateLShr(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::LandingPadInst * CreateLandingPad(llvm::Type * Ty, unsigned int NumClauses, const llvm::Twine & Name = "")
  • public llvm::Value * CreateLaunderInvariantGroup(llvm::Value * Ptr)
  • public llvm::CallInst * CreateLifetimeEnd(llvm::Value * Ptr, llvm::ConstantInt * Size = nullptr)
  • public llvm::CallInst * CreateLifetimeStart(llvm::Value * Ptr, llvm::ConstantInt * Size = nullptr)
  • public llvm::LoadInst * CreateLoad(llvm::Type * Ty, llvm::Value * Ptr, const llvm::Twine & Name = "")
  • public llvm::LoadInst * CreateLoad(llvm::Type * Ty, llvm::Value * Ptr, bool isVolatile, const llvm::Twine & Name = "")
  • public llvm::LoadInst * CreateLoad(llvm::Type * Ty, llvm::Value * Ptr, const char * Name)
  • public llvm::Value * CreateLogicalAnd(llvm::Value * Cond1, llvm::Value * Cond2, const llvm::Twine & Name = "")
  • public llvm::Value * CreateLogicalOr(ArrayRef<llvm::Value *> Ops)
  • public llvm::Value * CreateLogicalOr(llvm::Value * Cond1, llvm::Value * Cond2, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMaskedGather(llvm::Type * Ty, llvm::Value * Ptrs, llvm::Align Alignment, llvm::Value * Mask = nullptr, llvm::Value * PassThru = nullptr, const llvm::Twine & Name = "")
  • private llvm::CallInst * CreateMaskedIntrinsic(Intrinsic::ID Id, ArrayRef<llvm::Value *> Ops, ArrayRef<llvm::Type *> OverloadedTypes, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMaskedLoad(llvm::Type * Ty, llvm::Value * Ptr, llvm::Align Alignment, llvm::Value * Mask, llvm::Value * PassThru = nullptr, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMaskedScatter(llvm::Value * Val, llvm::Value * Ptrs, llvm::Align Alignment, llvm::Value * Mask = nullptr)
  • public llvm::CallInst * CreateMaskedStore(llvm::Value * Val, llvm::Value * Ptr, llvm::Align Alignment, llvm::Value * Mask)
  • public llvm::CallInst * CreateMaxNum(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMaximum(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMemCpy(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, llvm::Value * Size, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemCpy(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, uint64_t Size, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemCpyInline(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, llvm::Value * Size, bool IsVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemMove(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, llvm::Value * Size, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemMove(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, uint64_t Size, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemSet(llvm::Value * Ptr, llvm::Value * Val, uint64_t Size, llvm::MaybeAlign Align, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemSet(llvm::Value * Ptr, llvm::Value * Val, llvm::Value * Size, llvm::MaybeAlign Align, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemSetInline(llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Val, llvm::Value * Size, bool IsVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMemTransferInst(Intrinsic::ID IntrID, llvm::Value * Dst, llvm::MaybeAlign DstAlign, llvm::Value * Src, llvm::MaybeAlign SrcAlign, llvm::Value * Size, bool isVolatile = false, llvm::MDNode * TBAATag = nullptr, llvm::MDNode * TBAAStructTag = nullptr, llvm::MDNode * ScopeTag = nullptr, llvm::MDNode * NoAliasTag = nullptr)
  • public llvm::CallInst * CreateMinNum(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateMinimum(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateMul(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::CallInst * CreateMulReduce(llvm::Value * Src)
  • public llvm::Value * CreateNAryOp(unsigned int Opc, ArrayRef<llvm::Value *> Ops, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::Value * CreateNSWAdd(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNSWMul(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNSWNeg(llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNSWSub(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNUWAdd(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNUWMul(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNUWNeg(llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNUWSub(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateNeg(llvm::Value * V, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::Instruction * CreateNoAliasScopeDeclaration(llvm::MDNode * ScopeTag)
  • public llvm::Instruction * CreateNoAliasScopeDeclaration(llvm::Value * Scope)
  • public llvm::Value * CreateNot(llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateOr(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateOr(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateOr(ArrayRef<llvm::Value *> Ops)
  • public llvm::Value * CreateOr(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateOrReduce(llvm::Value * Src)
  • public llvm::PHINode * CreatePHI(llvm::Type * Ty, unsigned int NumReservedValues, const llvm::Twine & Name = "")
  • public llvm::Value * CreatePointerBitCastOrAddrSpaceCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreatePointerCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreatePreserveArrayAccessIndex(llvm::Type * ElTy, llvm::Value * Base, unsigned int Dimension, unsigned int LastIndex, llvm::MDNode * DbgInfo)
  • public llvm::Value * CreatePreserveStructAccessIndex(llvm::Type * ElTy, llvm::Value * Base, unsigned int Index, unsigned int FieldIndex, llvm::MDNode * DbgInfo)
  • public llvm::Value * CreatePreserveUnionAccessIndex(llvm::Value * Base, unsigned int FieldIndex, llvm::MDNode * DbgInfo)
  • public llvm::Value * CreatePtrDiff(llvm::Type * ElemTy, llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreatePtrToInt(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::ResumeInst * CreateResume(llvm::Value * Exn)
  • public llvm::ReturnInst * CreateRet(llvm::Value * V)
  • public llvm::ReturnInst * CreateRetVoid()
  • public llvm::Value * CreateSDiv(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateSExt(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSExtOrBitCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSExtOrTrunc(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSIToFP(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSRem(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSelect(llvm::Value * C, llvm::Value * True, llvm::Value * False, const llvm::Twine & Name = "", llvm::Instruction * MDFrom = nullptr)
  • public llvm::Value * CreateShl(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::Value * CreateShl(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::Value * CreateShl(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::Value * CreateShuffleVector(llvm::Value * V1, llvm::Value * V2, llvm::Value * Mask, const llvm::Twine & Name = "")
  • public llvm::Value * CreateShuffleVector(llvm::Value * V, ArrayRef<int> Mask, const llvm::Twine & Name = "")
  • public llvm::Value * CreateShuffleVector(llvm::Value * V1, llvm::Value * V2, ArrayRef<int> Mask, const llvm::Twine & Name = "")
  • public llvm::Value * CreateStepVector(llvm::Type * DstType, const llvm::Twine & Name = "")
  • public llvm::StoreInst * CreateStore(llvm::Value * Val, llvm::Value * Ptr, bool isVolatile = false)
  • public llvm::Value * CreateStripInvariantGroup(llvm::Value * Ptr)
  • public llvm::Value * CreateStructGEP(llvm::Type * Ty, llvm::Value * Ptr, unsigned int Idx, const llvm::Twine & Name = "")
  • public llvm::Value * CreateSub(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool HasNUW = false, bool HasNSW = false)
  • public llvm::SwitchInst * CreateSwitch(llvm::Value * V, llvm::BasicBlock * Dest, unsigned int NumCases = 10, llvm::MDNode * BranchWeights = nullptr, llvm::MDNode * Unpredictable = nullptr)
  • public llvm::Value * CreateTrunc(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateTruncOrBitCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateUDiv(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "", bool isExact = false)
  • public llvm::Value * CreateUIToFP(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateURem(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateUnOp(Instruction::UnaryOps Opc, llvm::Value * V, const llvm::Twine & Name = "", llvm::MDNode * FPMathTag = nullptr)
  • public llvm::CallInst * CreateUnaryIntrinsic(Intrinsic::ID ID, llvm::Value * V, llvm::Instruction * FMFSource = nullptr, const llvm::Twine & Name = "")
  • public llvm::UnreachableInst * CreateUnreachable()
  • public llvm::VAArgInst * CreateVAArg(llvm::Value * List, llvm::Type * Ty, const llvm::Twine & Name = "")
  • public llvm::Value * CreateVScale(llvm::Constant * Scaling, const llvm::Twine & Name = "")
  • public llvm::Value * CreateVectorReverse(llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateVectorSplat(llvm::ElementCount EC, llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateVectorSplat(unsigned int NumElts, llvm::Value * V, const llvm::Twine & Name = "")
  • public llvm::Value * CreateVectorSplice(llvm::Value * V1, llvm::Value * V2, int64_t Imm, const llvm::Twine & Name = "")
  • public llvm::Value * CreateXor(llvm::Value * LHS, const llvm::APInt & RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateXor(llvm::Value * LHS, uint64_t RHS, const llvm::Twine & Name = "")
  • public llvm::Value * CreateXor(llvm::Value * LHS, llvm::Value * RHS, const llvm::Twine & Name = "")
  • public llvm::CallInst * CreateXorReduce(llvm::Value * Src)
  • public llvm::Value * CreateZExt(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateZExtOrBitCast(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::Value * CreateZExtOrTrunc(llvm::Value * V, llvm::Type * DestTy, const llvm::Twine & Name = "")
  • public llvm::BasicBlock * GetInsertBlock() const
  • public BasicBlock::iterator GetInsertPoint() const
  • public IRBuilderBase(llvm::LLVMContext & context, const llvm::IRBuilderFolder & Folder, const llvm::IRBuilderDefaultInserter & Inserter, llvm::MDNode * FPMathTag, ArrayRef<llvm::OperandBundleDef> OpBundles)
  • public template <typename InstTy>InstTy * Insert(InstTy * I, const llvm::Twine & Name = "") const
  • public llvm::Constant * Insert(llvm::Constant * C, const llvm::Twine & = "") const
  • public llvm::Value * Insert(llvm::Value * V, const llvm::Twine & Name = "") const
  • public void SetCurrentDebugLocation(llvm::DebugLoc L)
  • public void SetInsertPoint(llvm::BasicBlock * TheBB)
  • public void SetInsertPoint(llvm::Instruction * I)
  • public void SetInsertPoint(llvm::BasicBlock * TheBB, BasicBlock::iterator IP)
  • public void SetInstDebugLocation(llvm::Instruction * I) const
  • private template <typename InstTy>InstTy * addBranchMetadata(InstTy * I, llvm::MDNode * Weights, llvm::MDNode * Unpredictable)
  • public void clearFastMathFlags()
  • public llvm::Type * getBFloatTy()
  • private llvm::Value * getCastedInt8PtrValue(llvm::Value * Ptr)
  • private llvm::Value * getConstrainedFPExcept(Optional<fp::ExceptionBehavior> Except)
  • private llvm::Value * getConstrainedFPPredicate(CmpInst::Predicate Predicate)
  • private llvm::Value * getConstrainedFPRounding(Optional<llvm::RoundingMode> Rounding)
  • public llvm::LLVMContext & getContext() const
  • public llvm::DebugLoc getCurrentDebugLocation() const
  • public llvm::Type * getCurrentFunctionReturnType() const
  • public fp::ExceptionBehavior getDefaultConstrainedExcept()
  • public llvm::RoundingMode getDefaultConstrainedRounding()
  • public llvm::MDNode * getDefaultFPMathTag() const
  • public llvm::Type * getDoubleTy()
  • public llvm::ConstantInt * getFalse()
  • public llvm::FastMathFlags getFastMathFlags() const
  • public llvm::FastMathFlags & getFastMathFlags()
  • public llvm::Type * getFloatTy()
  • public llvm::Type * getHalfTy()
  • public llvm::ConstantInt * getInt(const llvm::APInt & AI)
  • public llvm::ConstantInt * getInt1(bool V)
  • public llvm::IntegerType * getInt128Ty()
  • public llvm::ConstantInt * getInt16(uint16_t C)
  • public llvm::IntegerType * getInt16Ty()
  • public llvm::IntegerType * getInt1Ty()
  • public llvm::ConstantInt * getInt32(uint32_t C)
  • public llvm::IntegerType * getInt32Ty()
  • public llvm::ConstantInt * getInt64(uint64_t C)
  • public llvm::IntegerType * getInt64Ty()
  • public llvm::ConstantInt * getInt8(uint8_t C)
  • public llvm::PointerType * getInt8PtrTy(unsigned int AddrSpace = 0)
  • public llvm::IntegerType * getInt8Ty()
  • public llvm::ConstantInt * getIntN(unsigned int N, uint64_t C)
  • public llvm::IntegerType * getIntNTy(unsigned int N)
  • public llvm::IntegerType * getIntPtrTy(const llvm::DataLayout & DL, unsigned int AddrSpace = 0)
  • public bool getIsFPConstrained()
  • public llvm::PointerType * getPtrTy(unsigned int AddrSpace = 0)
  • public llvm::ConstantInt * getTrue()
  • public llvm::Type * getVoidTy()
  • public void restoreIP(llvm::IRBuilderBase::InsertPoint IP)
  • public llvm::IRBuilderBase::InsertPoint saveAndClearIP()
  • public llvm::IRBuilderBase::InsertPoint saveIP() const
  • public void setConstrainedFPCallAttr(llvm::CallBase * I)
  • public void setConstrainedFPFunctionAttr()
  • public void setDefaultConstrainedExcept(fp::ExceptionBehavior NewExcept)
  • public void setDefaultConstrainedRounding(llvm::RoundingMode NewRounding)
  • public void setDefaultFPMathTag(llvm::MDNode * FPMathTag)
  • public void setDefaultOperandBundles(ArrayRef<llvm::OperandBundleDef> OpBundles)
  • private llvm::Instruction * setFPAttrs(llvm::Instruction * I, llvm::MDNode * FPMD, llvm::FastMathFlags FMF) const
  • public void setFastMathFlags(llvm::FastMathFlags NewFMF)
  • public void setIsFPConstrained(bool IsCon)

Methods

void AddMetadataToInst(llvm::Instruction* I) const

Description

Add all entries in MetadataToCopy to \p I.

Declared at: llvm/include/llvm/IR/IRBuilder.h:224

Parameters

llvm::Instruction* I

void AddOrRemoveMetadataToCopy(unsigned int Kind,
                               llvm::MDNode* MD)

Description

Add or update the an entry (Kind, MD) to MetadataToCopy, if \p MD is not null. If \p MD is null, remove the entry with \p Kind.

Declared at: llvm/include/llvm/IR/IRBuilder.h:100

Parameters

unsigned int Kind
llvm::MDNode* MD

void ClearInsertionPoint()

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:168

void CollectMetadataToCopy(
    llvm::Instruction* Src,
    ArrayRef<unsigned int> MetadataKinds)

Description

Collect metadata with IDs \p MetadataKinds from \p Src which should be added to all created instructions. Entries present in MedataDataToCopy but not on \p Src will be dropped from MetadataToCopy.

Declared at: llvm/include/llvm/IR/IRBuilder.h:210

Parameters

llvm::Instruction* Src
ArrayRef<unsigned int> MetadataKinds

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1343

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1338

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1329

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1200

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

llvm::CallInst* CreateAddReduce(llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:707

Parameters

llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1957

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

llvm::ReturnInst* CreateAggregateRet(
    llvm::Value* const* retVals,
    unsigned int N)

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:976

Parameters

llvm::Value* const* retVals
unsigned int N

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1666

Parameters

llvm::Type* Ty
llvm::Value* Ptr
llvm::MaybeAlign Align
const char* Name

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1676

Parameters

llvm::Type* Ty
llvm::Value* Ptr
llvm::MaybeAlign Align
bool isVolatile
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1671

Parameters

llvm::Type* Ty
llvm::Value* Ptr
llvm::MaybeAlign Align
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1685

Parameters

llvm::Value* Val
llvm::Value* Ptr
llvm::MaybeAlign Align
bool isVolatile = false

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2451

Parameters

const llvm::DataLayout& DL
llvm::Value* PtrValue
unsigned int Alignment
llvm::Value* OffsetValue = nullptr

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2464

Parameters

const llvm::DataLayout& DL
llvm::Value* PtrValue
llvm::Value* Alignment
llvm::Value* OffsetValue = nullptr

llvm::CallInst* CreateAlignmentAssumptionHelper(
    const llvm::DataLayout& DL,
    llvm::Value* PtrValue,
    llvm::Value* AlignValue,
    llvm::Value* OffsetValue)

Description

Helper function that creates an assume intrinsic call that represents an alignment assumption on the provided pointer \p PtrValue with offset \p OffsetValue and alignment value \p AlignValue.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2440

Parameters

const llvm::DataLayout& DL
llvm::Value* PtrValue
llvm::Value* AlignValue
llvm::Value* OffsetValue

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1639

Parameters

llvm::Type* Ty
llvm::Value* ArraySize = nullptr
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1632

Parameters

llvm::Type* Ty
unsigned int AddrSpace
llvm::Value* ArraySize = nullptr
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1358

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1348

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1354

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1362

Parameters

ArrayRef<llvm::Value*> Ops

llvm::CallInst* CreateAndReduce(llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:713

Parameters

llvm::Value* Src

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

Description

Create a call to the arithmetic_fence intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:911

Parameters

llvm::Value* Val
llvm::Type* DstType
const llvm::Twine& Name = ""

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

Description

Create an assume intrinsic call that allows the optimizer to assume that the provided condition will be true. The optional argument \p OpBundles specifies operand bundles that are added to the call instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:774

Parameters

llvm::Value* Cond
ArrayRef<llvm::OperandBundleDef> OpBundles = llvm::None

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1700

Parameters

llvm::Value* Ptr
llvm::Value* Cmp
llvm::Value* New
llvm::MaybeAlign Align
llvm::AtomicOrdering SuccessOrdering
llvm::AtomicOrdering FailureOrdering
SyncScope::ID SSID = SyncScope::System

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1713

Parameters

AtomicRMWInst::BinOp Op
llvm::Value* Ptr
llvm::Value* Val
llvm::MaybeAlign Align
llvm::AtomicOrdering Ordering
SyncScope::ID SSID = SyncScope::System

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1538

Parameters

Instruction::BinaryOps Opc
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:878

Parameters

Intrinsic::ID ID
llvm::Value* LHS
llvm::Value* RHS
llvm::Instruction* FMFSource = nullptr
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1952

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2030

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Description

Create an unconditional 'br label X' instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:984

Parameters

llvm::BasicBlock* Dest

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2257

Parameters

llvm::FunctionCallee Callee
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2251

Parameters

llvm::FunctionCallee Callee
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2240

Parameters

llvm::FunctionType* FTy
llvm::Value* Callee
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2229

Parameters

llvm::FunctionType* FTy
llvm::Value* Callee
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Description

Create a callbr instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1067

Parameters

llvm::FunctionType* Ty
llvm::Value* Callee
llvm::BasicBlock* DefaultDest
ArrayRef<llvm::BasicBlock*> IndirectDests
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1075

Parameters

llvm::FunctionType* Ty
llvm::Value* Callee
llvm::BasicBlock* DefaultDest
ArrayRef<llvm::BasicBlock*> IndirectDests
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1086

Parameters

llvm::FunctionCallee Callee
llvm::BasicBlock* DefaultDest
ArrayRef<llvm::BasicBlock*> IndirectDests
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1093

Parameters

llvm::FunctionCallee Callee
llvm::BasicBlock* DefaultDest
ArrayRef<llvm::BasicBlock*> IndirectDests
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1989

Parameters

Instruction::CastOps Op
llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1118

Parameters

llvm::Value* ParentPad
ArrayRef<llvm::Value*> Args
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1129

Parameters

llvm::CatchPadInst* CatchPad
llvm::BasicBlock* BB

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1111

Parameters

llvm::Value* ParentPad
llvm::BasicBlock* UnwindBB
unsigned int NumHandlers
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1123

Parameters

llvm::Value* ParentPad
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1106

Parameters

llvm::CleanupPadInst* CleanupPad
llvm::BasicBlock* UnwindBB = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2191

Parameters

CmpInst::Predicate Pred
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:990

Parameters

llvm::Value* Cond
llvm::BasicBlock* True
llvm::BasicBlock* False
llvm::MDNode* BranchWeights = nullptr
llvm::MDNode* Unpredictable = nullptr

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

Description

Create a conditional 'br Cond, TrueDest, FalseDest' instruction. Copy branch meta data if available.

Declared at: llvm/include/llvm/IR/IRBuilder.h:999

Parameters

llvm::Value* Cond
llvm::BasicBlock* True
llvm::BasicBlock* False
llvm::Instruction* MDSrc

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1740

Parameters

llvm::Type* Ty
llvm::Value* Ptr
unsigned int Idx0
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1786

Parameters

llvm::Type* Ty
llvm::Value* Ptr
uint64_t Idx0
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1760

Parameters

llvm::Type* Ty
llvm::Value* Ptr
unsigned int Idx0
unsigned int Idx1
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1806

Parameters

llvm::Type* Ty
llvm::Value* Ptr
uint64_t Idx0
uint64_t Idx1
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1750

Parameters

llvm::Type* Ty
llvm::Value* Ptr
unsigned int Idx0
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1796

Parameters

llvm::Type* Ty
llvm::Value* Ptr
uint64_t Idx0
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1773

Parameters

llvm::Type* Ty
llvm::Value* Ptr
unsigned int Idx0
unsigned int Idx1
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1819

Parameters

llvm::Type* Ty
llvm::Value* Ptr
uint64_t Idx0
uint64_t Idx1
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1569

Parameters

Intrinsic::ID ID
llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource = nullptr
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr
Optional<llvm::RoundingMode> Rounding = None
Optional<fp::ExceptionBehavior> Except = None

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2264

Parameters

llvm::Function* Callee
ArrayRef<llvm::Value*> Args
const llvm::Twine& Name = ""
Optional<llvm::RoundingMode> Rounding = None
Optional<fp::ExceptionBehavior> Except = None

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2050

Parameters

Intrinsic::ID ID
llvm::Value* V
llvm::Type* DestTy
llvm::Instruction* FMFSource = nullptr
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr
Optional<llvm::RoundingMode> Rounding = None
Optional<fp::ExceptionBehavior> Except = None

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2213

Parameters

Intrinsic::ID ID
CmpInst::Predicate P
llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
Optional<fp::ExceptionBehavior> Except = None

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:658

Parameters

llvm::Value* Dst
llvm::Align DstAlign
llvm::Value* Src
llvm::Align SrcAlign
llvm::Value* Size
uint32_t ElementSize
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:688

Parameters

llvm::Value* Dst
llvm::Align DstAlign
llvm::Value* Src
llvm::Align SrcAlign
llvm::Value* Size
uint32_t ElementSize
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:593

Parameters

llvm::Value* Ptr
llvm::Value* Val
uint64_t Size
llvm::Align Alignment
uint32_t ElementSize
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:604

Parameters

llvm::Value* Ptr
llvm::Value* Val
llvm::Value* Size
llvm::Align Alignment
uint32_t ElementSize
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1273

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1260

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2283

Parameters

llvm::Value* Vec
uint64_t Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2276

Parameters

llvm::Value* Vec
llvm::Value* Idx
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2421

Parameters

const llvm::DataLayout& DL
llvm::Value* From
llvm::IntegerType* ExtractedTy
uint64_t Offset
const llvm::Twine& Name

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2332

Parameters

llvm::Value* Agg
ArrayRef<unsigned int> Idxs
const llvm::Twine& Name = ""

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

Description

Create a call to the vector.extract intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:918

Parameters

llvm::Type* DstType
llvm::Value* SrcVec
llvm::Value* Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1406

Parameters

llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
llvm::MDNode* FPMD = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1420

Parameters

llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:698

Parameters

llvm::Value* Acc
llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2186

Parameters

CmpInst::Predicate P
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

llvm::Value* CreateFCmpHelper(
    CmpInst::Predicate P,
    llvm::Value* LHS,
    llvm::Value* RHS,
    const llvm::Twine& Name,
    llvm::MDNode* FPMathTag,
    bool IsSignaling)

Declared at: llvm/include/llvm/IR/IRBuilder.h:2208

Parameters

CmpInst::Predicate P
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name
llvm::MDNode* FPMathTag
bool IsSignaling

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2106

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2116

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2111

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2126

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2121

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2131

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2136

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2201

Parameters

CmpInst::Predicate P
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2146

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2156

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2151

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2166

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2161

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2171

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2141

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1487

Parameters

llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
llvm::MDNode* FPMD = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1501

Parameters

llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1460

Parameters

llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
llvm::MDNode* FPMD = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1474

Parameters

llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:704

Parameters

llvm::Value* Acc
llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1589

Parameters

llvm::Value* V
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1599

Parameters

llvm::Value* V
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2042

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1935

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

llvm::CallInst* CreateFPMaxReduce(
    llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:731

Parameters

llvm::Value* Src

llvm::CallInst* CreateFPMinReduce(
    llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:735

Parameters

llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1905

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1898

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1926

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1513

Parameters

llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
llvm::MDNode* FPMD = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1526

Parameters

llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1433

Parameters

llvm::Value* L
llvm::Value* R
const llvm::Twine& Name = ""
llvm::MDNode* FPMD = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1447

Parameters

llvm::Value* L
llvm::Value* R
llvm::Instruction* FMFSource
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1693

Parameters

llvm::AtomicOrdering Ordering
SyncScope::ID SSID = SyncScope::System
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2351

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:857

Parameters

llvm::Value* DerivedPtr
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:861

Parameters

llvm::Value* DerivedPtr
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:849

Parameters

llvm::Instruction* Statepoint
int BaseOffset
int DerivedOffset
llvm::Type* ResultType
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:843

Parameters

llvm::Instruction* Statepoint
llvm::Type* ResultType
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:786

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualCallee
ArrayRef<llvm::Value*> CallArgs
Optional<ArrayRef<llvm::Value*>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:795

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualCallee
uint32_t Flags
ArrayRef<llvm::Value*> CallArgs
Optional<ArrayRef<llvm::Use>> TransitionArgs
Optional<ArrayRef<llvm::Use>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:806

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualCallee
ArrayRef<llvm::Use> CallArgs
Optional<ArrayRef<llvm::Value*>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:816

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualInvokee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Value*> InvokeArgs
Optional<ArrayRef<llvm::Value*>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:835

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualInvokee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Use> InvokeArgs
Optional<ArrayRef<llvm::Value*>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:824

Parameters

uint64_t ID
uint32_t NumPatchBytes
llvm::FunctionCallee ActualInvokee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
uint32_t Flags
ArrayRef<llvm::Value*> InvokeArgs
Optional<ArrayRef<llvm::Use>> TransitionArgs
Optional<ArrayRef<llvm::Use>> DeoptArgs
ArrayRef<llvm::Value*> GCArgs
const llvm::Twine& Name = ""

llvm::Value* CreateGEP(
    llvm::Type* Ty,
    llvm::Value* Ptr,
    ArrayRef<llvm::Value*> IdxList,
    const llvm::Twine& Name = "",
    bool IsInBounds = false)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1725

Parameters

llvm::Type* Ty
llvm::Value* Ptr
ArrayRef<llvm::Value*> IdxList
const llvm::Twine& Name = ""
bool IsInBounds = false

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

Description

Make a new global variable with initializer type i8* 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 \p M, it is take from the insertion point basic block.

Declared at: llvm/include/llvm/IR/IRBuilder.h:431

Parameters

llvm::StringRef Str
const llvm::Twine& Name = ""
unsigned int AddressSpace = 0
llvm::Module* M = nullptr

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

Description

Same as CreateGlobalString, but return a pointer with "i8*" type instead of a pointer to array of i8. If no module is given via \p M, it is take from the insertion point basic block.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1842

Parameters

llvm::StringRef Str
const llvm::Twine& Name = ""
unsigned int AddressSpace = 0
llvm::Module* M = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2176

Parameters

CmpInst::Predicate P
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2066

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2070

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2094

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2090

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2102

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2098

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2078

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2074

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2086

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2082

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1735

Parameters

llvm::Type* Ty
llvm::Value* Ptr
ArrayRef<llvm::Value*> IdxList
const llvm::Twine& Name = ""

llvm::IndirectBrInst* CreateIndirectBr(
    llvm::Value* Addr,
    unsigned int NumDests = 10)

Description

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).

Declared at: llvm/include/llvm/IR/IRBuilder.h:1023

Parameters

llvm::Value* Addr
unsigned int NumDests = 10

llvm::Value* CreateInsertElement(
    llvm::Type* VecTy,
    llvm::Value* NewElt,
    llvm::Value* Idx,
    const llvm::Twine& Name = "")

Declared at: llvm/include/llvm/IR/IRBuilder.h:2288

Parameters

llvm::Type* VecTy
llvm::Value* NewElt
llvm::Value* Idx
const llvm::Twine& Name = ""

llvm::Value* CreateInsertElement(
    llvm::Type* VecTy,
    llvm::Value* NewElt,
    uint64_t Idx,
    const llvm::Twine& Name = "")

Declared at: llvm/include/llvm/IR/IRBuilder.h:2293

Parameters

llvm::Type* VecTy
llvm::Value* NewElt
uint64_t Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2298

Parameters

llvm::Value* Vec
llvm::Value* NewElt
llvm::Value* Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2305

Parameters

llvm::Value* Vec
llvm::Value* NewElt
uint64_t Idx
const llvm::Twine& Name = ""

llvm::BinaryOperator* CreateInsertNUWNSWBinOp(
    BinaryOperator::BinaryOps Opc,
    llvm::Value* LHS,
    llvm::Value* RHS,
    const llvm::Twine& Name,
    bool HasNUW,
    bool HasNSW)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1141

Parameters

BinaryOperator::BinaryOps Opc
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name
bool HasNUW
bool HasNSW

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2339

Parameters

llvm::Value* Agg
llvm::Value* Val
ArrayRef<unsigned int> Idxs
const llvm::Twine& Name = ""

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

Description

Create a call to the vector.insert intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:926

Parameters

llvm::Type* DstType
llvm::Value* SrcVec
llvm::Value* SubVec
llvm::Value* Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2060

Parameters

llvm::Value*
llvm::Type*
const char*

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2021

Parameters

llvm::Value* V
llvm::Type* DestTy
bool isSigned
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:723

Parameters

llvm::Value* Src
bool IsSigned = false

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:727

Parameters

llvm::Value* Src
bool IsSigned = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1947

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Description

Create a call to intrinsic \p ID with \p args, mangled using \p Types. If\p FMFSource is provided, copy fast-math-flags from that instruction to the intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:885

Parameters

Intrinsic::ID ID
ArrayRef<llvm::Type*> Types
ArrayRef<llvm::Value*> Args
llvm::Instruction* FMFSource = nullptr
const llvm::Twine& Name = ""

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

Description

Create a call to invariant.start intrinsic. If the pointer isn't i8* it will be converted.

Declared at: llvm/include/llvm/IR/IRBuilder.h:750

Parameters

llvm::Value* Ptr
llvm::ConstantInt* Size = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1058

Parameters

llvm::FunctionCallee Callee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""

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

Description

Create an invoke instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1028

Parameters

llvm::FunctionType* Ty
llvm::Value* Callee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1050

Parameters

llvm::FunctionCallee Callee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> OpBundles
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1039

Parameters

llvm::FunctionType* Ty
llvm::Value* Callee
llvm::BasicBlock* NormalDest
llvm::BasicBlock* UnwindDest
ArrayRef<llvm::Value*> Args = None
const llvm::Twine& Name = ""

llvm::Value* CreateIsNeg(
    llvm::Value* Arg,
    const llvm::Twine& Name = "")

Description

Return a boolean value testing if \p Arg < 0.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2370

Parameters

llvm::Value* Arg
const llvm::Twine& Name = ""

llvm::Value* CreateIsNotNeg(
    llvm::Value* Arg,
    const llvm::Twine& Name = "")

Description

Return a boolean value testing if \p Arg > -1.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2375

Parameters

llvm::Value* Arg
const llvm::Twine& Name = ""

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

Description

Return a boolean value testing if \p Arg != 0.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2365

Parameters

llvm::Value* Arg
const llvm::Twine& Name = ""

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

Description

Return a boolean value testing if \p Arg == 0.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2360

Parameters

llvm::Value* Arg
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1310

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1319

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1324

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2346

Parameters

llvm::Type* Ty
unsigned int NumClauses
const llvm::Twine& Name = ""

llvm::Value* CreateLaunderInvariantGroup(
    llvm::Value* Ptr)

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2392

Parameters

llvm::Value* Ptr

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

Description

Create a lifetime.end intrinsic. If the pointer isn't i8* it will be converted.

Declared at: llvm/include/llvm/IR/IRBuilder.h:745

Parameters

llvm::Value* Ptr
llvm::ConstantInt* Size = nullptr

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

Description

Create a lifetime.start intrinsic. If the pointer isn't i8* it will be converted.

Declared at: llvm/include/llvm/IR/IRBuilder.h:740

Parameters

llvm::Value* Ptr
llvm::ConstantInt* Size = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1653

Parameters

llvm::Type* Ty
llvm::Value* Ptr
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1657

Parameters

llvm::Type* Ty
llvm::Value* Ptr
bool isVolatile
const llvm::Twine& Name = ""

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1649

Parameters

llvm::Type* Ty
llvm::Value* Ptr
const char* Name

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1548

Parameters

llvm::Value* Cond1
llvm::Value* Cond2
const llvm::Twine& Name = ""

llvm::Value* CreateLogicalOr(
    ArrayRef<llvm::Value*> Ops)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1561

Parameters

ArrayRef<llvm::Value*> Ops

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1554

Parameters

llvm::Value* Cond1
llvm::Value* Cond2
const llvm::Twine& Name = ""

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

Description

Create a call to Masked Gather intrinsic

Declared at: llvm/include/llvm/IR/IRBuilder.h:761

Parameters

llvm::Type* Ty
llvm::Value* Ptrs
llvm::Align Alignment
llvm::Value* Mask = nullptr
llvm::Value* PassThru = nullptr
const llvm::Twine& Name = ""

llvm::CallInst* CreateMaskedIntrinsic(
    Intrinsic::ID Id,
    ArrayRef<llvm::Value*> Ops,
    ArrayRef<llvm::Type*> OverloadedTypes,
    const llvm::Twine& Name = "")

Description

Create a call to a masked intrinsic with given Id.

Declared at: llvm/include/llvm/IR/IRBuilder.h:935

Parameters

Intrinsic::ID Id
ArrayRef<llvm::Value*> Ops
ArrayRef<llvm::Type*> OverloadedTypes
const llvm::Twine& Name = ""

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

Description

Create a call to Masked Load intrinsic

Declared at: llvm/include/llvm/IR/IRBuilder.h:753

Parameters

llvm::Type* Ty
llvm::Value* Ptr
llvm::Align Alignment
llvm::Value* Mask
llvm::Value* PassThru = nullptr
const llvm::Twine& Name = ""

llvm::CallInst* CreateMaskedScatter(
    llvm::Value* Val,
    llvm::Value* Ptrs,
    llvm::Align Alignment,
    llvm::Value* Mask = nullptr)

Description

Create a call to Masked Scatter intrinsic

Declared at: llvm/include/llvm/IR/IRBuilder.h:766

Parameters

llvm::Value* Val
llvm::Value* Ptrs
llvm::Align Alignment
llvm::Value* Mask = nullptr

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

Description

Create a call to Masked Store intrinsic

Declared at: llvm/include/llvm/IR/IRBuilder.h:757

Parameters

llvm::Value* Val
llvm::Value* Ptr
llvm::Align Alignment
llvm::Value* Mask

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

Description

Create call to the maxnum intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:896

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Description

Create call to the maximum intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:906

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:633

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
llvm::Value* Size
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:616

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
uint64_t Size
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:645

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
llvm::Value* Size
bool IsVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:673

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
llvm::Value* Size
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:664

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
uint64_t Size
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:568

Parameters

llvm::Value* Ptr
llvm::Value* Val
uint64_t Size
llvm::MaybeAlign Align
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:576

Parameters

llvm::Value* Ptr
llvm::Value* Val
llvm::Value* Size
llvm::MaybeAlign Align
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

llvm::CallInst* CreateMemSetInline(
    llvm::Value* Dst,
    llvm::MaybeAlign DstAlign,
    llvm::Value* Val,
    llvm::Value* Size,
    bool IsVolatile = false,
    llvm::MDNode* TBAATag = nullptr,
    llvm::MDNode* ScopeTag = nullptr,
    llvm::MDNode* NoAliasTag = nullptr)

Declared at: llvm/include/llvm/IR/IRBuilder.h:581

Parameters

llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Val
llvm::Value* Size
bool IsVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:627

Parameters

Intrinsic::ID IntrID
llvm::Value* Dst
llvm::MaybeAlign DstAlign
llvm::Value* Src
llvm::MaybeAlign SrcAlign
llvm::Value* Size
bool isVolatile = false
llvm::MDNode* TBAATag = nullptr
llvm::MDNode* TBAAStructTag = nullptr
llvm::MDNode* ScopeTag = nullptr
llvm::MDNode* NoAliasTag = nullptr

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

Description

Create call to the minnum intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:891

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Description

Create call to the minimum intrinsic.

Declared at: llvm/include/llvm/IR/IRBuilder.h:901

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1234

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

llvm::CallInst* CreateMulReduce(llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:710

Parameters

llvm::Value* Src

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

Description

Create either a UnaryOperator or BinaryOperator depending on \p Opc. Correct number of operands must be passed accordingly.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1625

Parameters

unsigned int Opc
ArrayRef<llvm::Value*> Ops
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1209

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1243

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1581

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1226

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1213

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1247

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1585

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1230

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1575

Parameters

llvm::Value* V
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:779

Parameters

llvm::MDNode* ScopeTag

llvm::Instruction* CreateNoAliasScopeDeclaration(
    llvm::Value* Scope)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:778

Parameters

llvm::Value* Scope

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1608

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1370

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1376

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1384

Parameters

ArrayRef<llvm::Value*> Ops

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1380

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""

llvm::CallInst* CreateOrReduce(llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:716

Parameters

llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2221

Parameters

llvm::Type* Ty
unsigned int NumReservedValues
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2007

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1998

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2425

Parameters

llvm::Type* ElTy
llvm::Value* Base
unsigned int Dimension
unsigned int LastIndex
llvm::MDNode* DbgInfo

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2432

Parameters

llvm::Type* ElTy
llvm::Value* Base
unsigned int Index
unsigned int FieldIndex
llvm::MDNode* DbgInfo

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2429

Parameters

llvm::Value* Base
unsigned int FieldIndex
llvm::MDNode* DbgInfo

llvm::Value* CreatePtrDiff(
    llvm::Type* ElemTy,
    llvm::Value* LHS,
    llvm::Value* RHS,
    const llvm::Twine& Name = "")

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2386

Parameters

llvm::Type* ElemTy
llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1942

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1102

Parameters

llvm::Value* Exn

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

Description

Create a 'ret <val >' instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:965

Parameters

llvm::Value* V

llvm::ReturnInst* CreateRetVoid()

Description

Create a 'ret void' instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:960

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1264

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1864

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1971

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

llvm::Value* CreateSExtOrTrunc(
    llvm::Value* V,
    llvm::Type* DestTy,
    const llvm::Twine& Name = "")

Description

Create a SExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1885

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1919

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1283

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2269

Parameters

llvm::Value* C
llvm::Value* True
llvm::Value* False
const llvm::Twine& Name = ""
llvm::Instruction* MDFrom = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1304

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1298

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1289

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2310

Parameters

llvm::Value* V1
llvm::Value* V2
llvm::Value* Mask
const llvm::Twine& Name = ""

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

Description

Create a unary shuffle. The second vector operand of the IR instruction is poison.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2327

Parameters

llvm::Value* V
ArrayRef<int> Mask
const llvm::Twine& Name = ""

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

Description

See class ShuffleVectorInst for a description of the mask representation.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2318

Parameters

llvm::Value* V1
llvm::Value* V2
ArrayRef<int> Mask
const llvm::Twine& Name = ""

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

Description

Creates a vector of type \p DstType with the linear sequence < 0, 1, ...>

Declared at: llvm/include/llvm/IR/IRBuilder.h:868

Parameters

llvm::Type* DstType
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1662

Parameters

llvm::Value* Val
llvm::Value* Ptr
bool isVolatile = false

llvm::Value* CreateStripInvariantGroup(
    llvm::Value* Ptr)

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:2397

Parameters

llvm::Value* Ptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1832

Parameters

llvm::Type* Ty
llvm::Value* Ptr
unsigned int Idx
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1217

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool HasNUW = false
bool HasNSW = false

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

Description

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).

Declared at: llvm/include/llvm/IR/IRBuilder.h:1013

Parameters

llvm::Value* V
llvm::BasicBlock* Dest
unsigned int NumCases = 10
llvm::MDNode* BranchWeights = nullptr
llvm::MDNode* Unpredictable = nullptr

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1856

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1980

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1251

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""
bool isExact = false

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1912

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1277

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1612

Parameters

Instruction::UnaryOps Opc
llvm::Value* V
const llvm::Twine& Name = ""
llvm::MDNode* FPMathTag = nullptr

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:872

Parameters

Intrinsic::ID ID
llvm::Value* V
llvm::Instruction* FMFSource = nullptr
const llvm::Twine& Name = ""

llvm::UnreachableInst* CreateUnreachable()

Declared at: llvm/include/llvm/IR/IRBuilder.h:1133

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:2272

Parameters

llvm::Value* List
llvm::Type* Ty
const llvm::Twine& Name = ""

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

Description

Create a call to llvm.vscale, multiplied by \p Scaling. The type of VScale will be the same type as that of \p Scaling.

Declared at: llvm/include/llvm/IR/IRBuilder.h:865

Parameters

llvm::Constant* Scaling
const llvm::Twine& Name = ""

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

Description

Return a vector value that contains the vector V reversed

Declared at: llvm/include/llvm/IR/IRBuilder.h:2400

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

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

Description

Return a vector value that contains

Declared at: llvm/include/llvm/IR/IRBuilder.h:2418

Parameters

llvm::ElementCount EC
llvm::Value* V
const llvm::Twine& Name = ""

llvm::Value* CreateVectorSplat(
    unsigned int NumElts,
    llvm::Value* V,
    const llvm::Twine& Name = "")

Description

Return a vector value that contains

Declared at: llvm/include/llvm/IR/IRBuilder.h:2414

Parameters

unsigned int NumElts
llvm::Value* V
const llvm::Twine& Name = ""

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

Description

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)

Declared at: llvm/include/llvm/IR/IRBuilder.h:2409

Parameters

llvm::Value* V1
llvm::Value* V2
int64_t Imm
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1398

Parameters

llvm::Value* LHS
const llvm::APInt& RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1402

Parameters

llvm::Value* LHS
uint64_t RHS
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1392

Parameters

llvm::Value* LHS
llvm::Value* RHS
const llvm::Twine& Name = ""

llvm::CallInst* CreateXorReduce(llvm::Value* Src)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:719

Parameters

llvm::Value* Src

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1860

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:1962

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

llvm::Value* CreateZExtOrTrunc(
    llvm::Value* V,
    llvm::Type* DestTy,
    const llvm::Twine& Name = "")

Description

Create a ZExt or Trunc from the integer value V to DestTy. Return the value untouched if the type of V is already DestTy.

Declared at: llvm/include/llvm/IR/IRBuilder.h:1870

Parameters

llvm::Value* V
llvm::Type* DestTy
const llvm::Twine& Name = ""

llvm::BasicBlock* GetInsertBlock() const

Declared at: llvm/include/llvm/IR/IRBuilder.h:173

BasicBlock::iterator GetInsertPoint() const

Declared at: llvm/include/llvm/IR/IRBuilder.h:174

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:134

Parameters

llvm::LLVMContext& context
const llvm::IRBuilderFolder& Folder
const llvm::IRBuilderDefaultInserter& Inserter
llvm::MDNode* FPMathTag
ArrayRef<llvm::OperandBundleDef> OpBundles

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

Description

Insert and return the specified instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:144

Templates

InstTy

Parameters

InstTy* I
const llvm::Twine& Name = ""

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

Description

No-op overload to handle constants.

Declared at: llvm/include/llvm/IR/IRBuilder.h:151

Parameters

llvm::Constant* C
const llvm::Twine& = ""

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:155

Parameters

llvm::Value* V
const llvm::Twine& Name = ""

void SetCurrentDebugLocation(llvm::DebugLoc L)

Description

Set location information used by debugging information.

Declared at: llvm/include/llvm/IR/IRBuilder.h:203

Parameters

llvm::DebugLoc L

void SetInsertPoint(llvm::BasicBlock* TheBB)

Description

This specifies that created instructions should be appended to the end of the specified block.

Declared at: llvm/include/llvm/IR/IRBuilder.h:179

Parameters

llvm::BasicBlock* TheBB

void SetInsertPoint(llvm::Instruction* I)

Description

This specifies that created instructions should be inserted before the specified instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:186

Parameters

llvm::Instruction* I

void SetInsertPoint(llvm::BasicBlock* TheBB,
                    BasicBlock::iterator IP)

Description

This specifies that created instructions should be inserted at the specified point.

Declared at: llvm/include/llvm/IR/IRBuilder.h:195

Parameters

llvm::BasicBlock* TheBB
BasicBlock::iterator IP

void SetInstDebugLocation(
    llvm::Instruction* I) const

Description

If this builder has a current debug location, set it on the specified instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:221

Parameters

llvm::Instruction* I

template <typename InstTy>
InstTy* addBranchMetadata(
    InstTy* I,
    llvm::MDNode* Weights,
    llvm::MDNode* Unpredictable)

Description

Helper to add branch weight and unpredictable metadata onto an instruction.

Declared at: llvm/include/llvm/IR/IRBuilder.h:950

Templates

InstTy

Parameters

InstTy* I
llvm::MDNode* Weights
llvm::MDNode* Unpredictable

Returns

The annotated instruction.

void clearFastMathFlags()

Description

Clear the fast-math flags.

Declared at: llvm/include/llvm/IR/IRBuilder.h:282

llvm::Type* getBFloatTy()

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:524

llvm::Value* getCastedInt8PtrValue(
    llvm::Value* Ptr)

Declared at: llvm/include/llvm/IR/IRBuilder.h:939

Parameters

llvm::Value* Ptr

llvm::Value* getConstrainedFPExcept(
    Optional<fp::ExceptionBehavior> Except)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1174

Parameters

Optional<fp::ExceptionBehavior> Except

llvm::Value* getConstrainedFPPredicate(
    CmpInst::Predicate Predicate)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1187

Parameters

CmpInst::Predicate Predicate

llvm::Value* getConstrainedFPRounding(
    Optional<llvm::RoundingMode> Rounding)

Declared at: llvm/include/llvm/IR/IRBuilder.h:1161

Parameters

Optional<llvm::RoundingMode> Rounding

llvm::LLVMContext& getContext() const

Declared at: llvm/include/llvm/IR/IRBuilder.h:175

llvm::DebugLoc getCurrentDebugLocation() const

Description

Get location information used by debugging information.

Declared at: llvm/include/llvm/IR/IRBuilder.h:217

llvm::Type* getCurrentFunctionReturnType() const

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:231

fp::ExceptionBehavior
getDefaultConstrainedExcept()

Description

Get the exception handling used with constrained floating point

Declared at: llvm/include/llvm/IR/IRBuilder.h:318

llvm::RoundingMode getDefaultConstrainedRounding()

Description

Get the rounding mode handling used with constrained floating point

Declared at: llvm/include/llvm/IR/IRBuilder.h:323

llvm::MDNode* getDefaultFPMathTag() const

Description

Get the floating point math metadata being used.

Declared at: llvm/include/llvm/IR/IRBuilder.h:274

llvm::Type* getDoubleTy()

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:534

llvm::ConstantInt* getFalse()

Description

Get the constant value for i1 false.

Declared at: llvm/include/llvm/IR/IRBuilder.h:446

llvm::FastMathFlags getFastMathFlags() const

Description

Get the flags to be applied to created floating point ops

Declared at: llvm/include/llvm/IR/IRBuilder.h:277

llvm::FastMathFlags& getFastMathFlags()

Declared at: llvm/include/llvm/IR/IRBuilder.h:279

llvm::Type* getFloatTy()

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:529

llvm::Type* getHalfTy()

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:519

llvm::ConstantInt* getInt(const llvm::APInt& AI)

Description

Get a constant integer value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:477

Parameters

const llvm::APInt& AI

llvm::ConstantInt* getInt1(bool V)

Description

Get a constant value representing either true or false.

Declared at: llvm/include/llvm/IR/IRBuilder.h:436

Parameters

bool V

llvm::IntegerType* getInt128Ty()

Description

Fetch the type representing a 128-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:511

llvm::ConstantInt* getInt16(uint16_t C)

Description

Get a constant 16-bit value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:456

Parameters

uint16_t C

llvm::IntegerType* getInt16Ty()

Description

Fetch the type representing a 16-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:496

llvm::IntegerType* getInt1Ty()

Description

Fetch the type representing a single bit

Declared at: llvm/include/llvm/IR/IRBuilder.h:486

llvm::ConstantInt* getInt32(uint32_t C)

Description

Get a constant 32-bit value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:461

Parameters

uint32_t C

llvm::IntegerType* getInt32Ty()

Description

Fetch the type representing a 32-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:501

llvm::ConstantInt* getInt64(uint64_t C)

Description

Get a constant 64-bit value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:466

Parameters

uint64_t C

llvm::IntegerType* getInt64Ty()

Description

Fetch the type representing a 64-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:506

llvm::ConstantInt* getInt8(uint8_t C)

Description

Get a constant 8-bit value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:451

Parameters

uint8_t C

llvm::PointerType* getInt8PtrTy(
    unsigned int AddrSpace = 0)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:549

Parameters

unsigned int AddrSpace = 0

llvm::IntegerType* getInt8Ty()

Description

Fetch the type representing an 8-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:491

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

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:472

Parameters

unsigned int N
uint64_t C

llvm::IntegerType* getIntNTy(unsigned int N)

Description

Fetch the type representing an N-bit integer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:514

Parameters

unsigned int N

llvm::IntegerType* getIntPtrTy(
    const llvm::DataLayout& DL,
    unsigned int AddrSpace = 0)

Description

Fetch the type representing a pointer to an integer value.

Declared at: llvm/include/llvm/IR/IRBuilder.h:554

Parameters

const llvm::DataLayout& DL
unsigned int AddrSpace = 0

bool getIsFPConstrained()

Description

Query for the use of constrained floating point math

Declared at: llvm/include/llvm/IR/IRBuilder.h:297

llvm::PointerType* getPtrTy(
    unsigned int AddrSpace = 0)

Description

Fetch the type representing a pointer.

Declared at: llvm/include/llvm/IR/IRBuilder.h:544

Parameters

unsigned int AddrSpace = 0

llvm::ConstantInt* getTrue()

Description

Get the constant value for i1 true.

Declared at: llvm/include/llvm/IR/IRBuilder.h:441

llvm::Type* getVoidTy()

Description

Fetch the type representing void.

Declared at: llvm/include/llvm/IR/IRBuilder.h:539

void restoreIP(
    llvm::IRBuilderBase::InsertPoint IP)

Description

Sets the current insert point to a previously-saved location.

Declared at: llvm/include/llvm/IR/IRBuilder.h:266

Parameters

llvm::IRBuilderBase::InsertPoint IP

llvm::IRBuilderBase::InsertPoint saveAndClearIP()

Description

Returns the current insert point, clearing it in the process.

Declared at: llvm/include/llvm/IR/IRBuilder.h:259

llvm::IRBuilderBase::InsertPoint saveIP() const

Description

Returns the current insert point.

Declared at: llvm/include/llvm/IR/IRBuilder.h:254

void setConstrainedFPCallAttr(llvm::CallBase* I)

Declared at: llvm/include/llvm/IR/IRBuilder.h:336

Parameters

llvm::CallBase* I

void setConstrainedFPFunctionAttr()

Declared at: llvm/include/llvm/IR/IRBuilder.h:327

void setDefaultConstrainedExcept(
    fp::ExceptionBehavior NewExcept)

Description

Set the exception handling to be used with constrained floating point

Declared at: llvm/include/llvm/IR/IRBuilder.h:300

Parameters

fp::ExceptionBehavior NewExcept

void setDefaultConstrainedRounding(
    llvm::RoundingMode NewRounding)

Description

Set the rounding mode handling to be used with constrained floating point

Declared at: llvm/include/llvm/IR/IRBuilder.h:309

Parameters

llvm::RoundingMode NewRounding

void setDefaultFPMathTag(llvm::MDNode* FPMathTag)

Description

Set the floating point math metadata to be used.

Declared at: llvm/include/llvm/IR/IRBuilder.h:285

Parameters

llvm::MDNode* FPMathTag

void setDefaultOperandBundles(
    ArrayRef<llvm::OperandBundleDef> OpBundles)

Declared at: llvm/include/llvm/IR/IRBuilder.h:340

Parameters

ArrayRef<llvm::OperandBundleDef> OpBundles

llvm::Instruction* setFPAttrs(
    llvm::Instruction* I,
    llvm::MDNode* FPMD,
    llvm::FastMathFlags FMF) const

Declared at: llvm/include/llvm/IR/IRBuilder.h:1151

Parameters

llvm::Instruction* I
llvm::MDNode* FPMD
llvm::FastMathFlags FMF

void setFastMathFlags(llvm::FastMathFlags NewFMF)

Description

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

Declared at: llvm/include/llvm/IR/IRBuilder.h:288

Parameters

llvm::FastMathFlags NewFMF

void setIsFPConstrained(bool IsCon)

Description

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.

Declared at: llvm/include/llvm/IR/IRBuilder.h:294

Parameters

bool IsCon