class CallInst

Declaration

class CallInst : public CallBase { /* full declaration omitted */ };

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

Inherits from: CallBase

Member Variables

Inherited from CallBase:

protected Attrs
protected FTy
protected static CalledOperandOpEndIdx = -1

Inherited from Value:

protected SubclassOptionalData
protected NumUserOperands
protected IsUsedByMD
protected HasName
protected HasHungOffUses
protected HasDescriptor
public static MaxAlignmentExponent = 29
public static MaximumAlignment = 1U << MaxAlignmentExponent

Method Overview

  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * F, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::CallInst * CI, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::Instruction * InsertPt = nullptr)
  • public static llvm::CallInst * Create(llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::Value * Func, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::Value * Func, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * F, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::CallInst * Create(llvm::FunctionCallee Func, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::Instruction * CreateFree(llvm::Value * Source, llvm::Instruction * InsertBefore)
  • public static llvm::Instruction * CreateFree(llvm::Value * Source, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::Instruction * CreateFree(llvm::Value * Source, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::Instruction * InsertBefore)
  • public static llvm::Instruction * CreateFree(llvm::Value * Source, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::Instruction * CreateMalloc(llvm::BasicBlock * InsertAtEnd, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
  • public static llvm::Instruction * CreateMalloc(llvm::Instruction * InsertBefore, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
  • public static llvm::Instruction * CreateMalloc(llvm::BasicBlock * InsertAtEnd, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
  • public static llvm::Instruction * CreateMalloc(llvm::Instruction * InsertBefore, llvm::Type * IntPtrTy, llvm::Type * AllocTy, llvm::Value * AllocSize, llvm::Value * ArraySize = nullptr, llvm::Function * MallocF = nullptr, const llvm::Twine & Name = "")
  • public bool canReturnTwice() const
  • public static bool classof(const llvm::Instruction * I)
  • public static bool classof(const llvm::Value * V)
  • protected llvm::CallInst * cloneImpl() const
  • public llvm::CallInst::TailCallKind getTailCallKind() const
  • public bool isMustTailCall() const
  • public bool isNoTailCall() const
  • public bool isTailCall() const
  • public void setCanReturnTwice()
  • public void setTailCall(bool isTC = true)
  • public void setTailCallKind(llvm::CallInst::TailCallKind TCK)
  • public void updateProfWeight(uint64_t S, uint64_t T)

Inherited from CallBase:

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* F,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1449

Parameters

llvm::FunctionType* Ty
llvm::Value* F
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::CallInst* CI,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    llvm::Instruction* InsertPt = nullptr)

Description

Create a clone of \p CI with a different set of operand bundles and insert it before \p InsertPt. The returned call instruction is identical \p CI in every way except that the operand bundles for the new instruction are set to the operand bundles in \p Bundles.

Declared at: llvm/include/llvm/IR/Instructions.h:1593

Parameters

llvm::CallInst* CI
ArrayRef<llvm::OperandBundleDef> Bundles
llvm::Instruction* InsertPt = nullptr

static llvm::CallInst* Create(
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1579

Parameters

llvm::Value* Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1571

Parameters

llvm::Value* Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::Value* Func,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1563

Parameters

llvm::Value* Func
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles =
        <null expr>,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1553

Parameters

llvm::Value* Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1544

Parameters

llvm::Value* Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::Value* Func,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1536

Parameters

llvm::Value* Func
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1528

Parameters

llvm::FunctionCallee Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1522

Parameters

llvm::FunctionCallee Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1509

Parameters

llvm::FunctionCallee Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles =
        <null expr>,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

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

Parameters

llvm::FunctionCallee Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1495

Parameters

llvm::FunctionCallee Func
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1484

Parameters

llvm::FunctionType* Ty
llvm::Value* Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1478

Parameters

llvm::FunctionType* Ty
llvm::Value* Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* F,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1473

Parameters

llvm::FunctionType* Ty
llvm::Value* F
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    ArrayRef<llvm::OperandBundleDef> Bundles =
        <null expr>,
    const llvm::Twine& NameStr = "",
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1461

Parameters

llvm::FunctionType* Ty
llvm::Value* Func
ArrayRef<llvm::Value*> Args
ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>
const llvm::Twine& NameStr = ""
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* Func,
    ArrayRef<llvm::Value*> Args,
    const llvm::Twine& NameStr,
    llvm::Instruction* InsertBefore = nullptr)

Declared at: llvm/include/llvm/IR/Instructions.h:1454

Parameters

llvm::FunctionType* Ty
llvm::Value* Func
ArrayRef<llvm::Value*> Args
const llvm::Twine& NameStr
llvm::Instruction* InsertBefore = nullptr

static llvm::CallInst* Create(
    llvm::FunctionCallee Func,
    const llvm::Twine& NameStr,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1516

Parameters

llvm::FunctionCallee Func
const llvm::Twine& NameStr
llvm::BasicBlock* InsertAtEnd

static llvm::Instruction* CreateFree(
    llvm::Value* Source,
    llvm::Instruction* InsertBefore)

Description

Generate the IR for a call to the builtin free function.

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

Parameters

llvm::Value* Source
llvm::Instruction* InsertBefore

static llvm::Instruction* CreateFree(
    llvm::Value* Source,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1630

Parameters

llvm::Value* Source
ArrayRef<llvm::OperandBundleDef> Bundles
llvm::BasicBlock* InsertAtEnd

static llvm::Instruction* CreateFree(
    llvm::Value* Source,
    ArrayRef<llvm::OperandBundleDef> Bundles,
    llvm::Instruction* InsertBefore)

Declared at: llvm/include/llvm/IR/Instructions.h:1627

Parameters

llvm::Value* Source
ArrayRef<llvm::OperandBundleDef> Bundles
llvm::Instruction* InsertBefore

static llvm::Instruction* CreateFree(
    llvm::Value* Source,
    llvm::BasicBlock* InsertAtEnd)

Declared at: llvm/include/llvm/IR/Instructions.h:1626

Parameters

llvm::Value* Source
llvm::BasicBlock* InsertAtEnd

static llvm::Instruction* CreateMalloc(
    llvm::BasicBlock* InsertAtEnd,
    llvm::Type* IntPtrTy,
    llvm::Type* AllocTy,
    llvm::Value* AllocSize,
    llvm::Value* ArraySize = nullptr,
    ArrayRef<llvm::OperandBundleDef> Bundles =
        <null expr>,
    llvm::Function* MallocF = nullptr,
    const llvm::Twine& Name = "")

Declared at: llvm/include/llvm/IR/Instructions.h:1618

Parameters

llvm::BasicBlock* InsertAtEnd
llvm::Type* IntPtrTy
llvm::Type* AllocTy
llvm::Value* AllocSize
llvm::Value* ArraySize = nullptr
ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>
llvm::Function* MallocF = nullptr
const llvm::Twine& Name = ""

static llvm::Instruction* CreateMalloc(
    llvm::Instruction* InsertBefore,
    llvm::Type* IntPtrTy,
    llvm::Type* AllocTy,
    llvm::Value* AllocSize,
    llvm::Value* ArraySize = nullptr,
    ArrayRef<llvm::OperandBundleDef> Bundles =
        <null expr>,
    llvm::Function* MallocF = nullptr,
    const llvm::Twine& Name = "")

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

Parameters

llvm::Instruction* InsertBefore
llvm::Type* IntPtrTy
llvm::Type* AllocTy
llvm::Value* AllocSize
llvm::Value* ArraySize = nullptr
ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>
llvm::Function* MallocF = nullptr
const llvm::Twine& Name = ""

static llvm::Instruction* CreateMalloc(
    llvm::BasicBlock* InsertAtEnd,
    llvm::Type* IntPtrTy,
    llvm::Type* AllocTy,
    llvm::Value* AllocSize,
    llvm::Value* ArraySize = nullptr,
    llvm::Function* MallocF = nullptr,
    const llvm::Twine& Name = "")

Declared at: llvm/include/llvm/IR/Instructions.h:1607

Parameters

llvm::BasicBlock* InsertAtEnd
llvm::Type* IntPtrTy
llvm::Type* AllocTy
llvm::Value* AllocSize
llvm::Value* ArraySize = nullptr
llvm::Function* MallocF = nullptr
const llvm::Twine& Name = ""

static llvm::Instruction* CreateMalloc(
    llvm::Instruction* InsertBefore,
    llvm::Type* IntPtrTy,
    llvm::Type* AllocTy,
    llvm::Value* AllocSize,
    llvm::Value* ArraySize = nullptr,
    llvm::Function* MallocF = nullptr,
    const llvm::Twine& Name = "")

Description

Generate the IR for a call to malloc: 1. Compute the malloc call's argument as the specified type's size, possibly multiplied by the array size if the array size is not constant 1. 2. Call malloc with that argument. 3. Bitcast the result of the malloc call to the specified type.

Declared at: llvm/include/llvm/IR/Instructions.h:1602

Parameters

llvm::Instruction* InsertBefore
llvm::Type* IntPtrTy
llvm::Type* AllocTy
llvm::Value* AllocSize
llvm::Value* ArraySize = nullptr
llvm::Function* MallocF = nullptr
const llvm::Twine& Name = ""

bool canReturnTwice() const

Description

Return true if the call can return twice

Declared at: llvm/include/llvm/IR/Instructions.h:1669

static bool classof(const llvm::Instruction* I)

Declared at: llvm/include/llvm/IR/Instructions.h:1675

Parameters

const llvm::Instruction* I

static bool classof(const llvm::Value* V)

Declared at: llvm/include/llvm/IR/Instructions.h:1678

Parameters

const llvm::Value* V

llvm::CallInst* cloneImpl() const

Declared at: llvm/include/llvm/IR/Instructions.h:1446

llvm::CallInst::TailCallKind getTailCallKind()
    const

Declared at: llvm/include/llvm/IR/Instructions.h:1641

bool isMustTailCall() const

Declared at: llvm/include/llvm/IR/Instructions.h:1650

bool isNoTailCall() const

Declared at: llvm/include/llvm/IR/Instructions.h:1654

bool isTailCall() const

Declared at: llvm/include/llvm/IR/Instructions.h:1645

void setCanReturnTwice()

Declared at: llvm/include/llvm/IR/Instructions.h:1670

void setTailCall(bool isTC = true)

Declared at: llvm/include/llvm/IR/Instructions.h:1658

Parameters

bool isTC = true

void setTailCallKind(
    llvm::CallInst::TailCallKind TCK)

Declared at: llvm/include/llvm/IR/Instructions.h:1663

Parameters

llvm::CallInst::TailCallKind TCK

void updateProfWeight(uint64_t S, uint64_t T)

Description

Updates profile metadata by scaling it by \p S / \p T.

Declared at: llvm/include/llvm/IR/Instructions.h:1683

Parameters

uint64_t S
uint64_t T