class InvokeInst

Declaration

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

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

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::InvokeInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::InvokeInst * II, ArrayRef<llvm::OperandBundleDef> Bundles, llvm::Instruction * InsertPt = nullptr)
  • public static llvm::InvokeInst * Create(llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::InvokeInst * Create(llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::InvokeInst * Create(llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::FunctionCallee Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::InvokeInst * Create(llvm::FunctionCallee Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::FunctionCallee Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::InvokeInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static llvm::InvokeInst * Create(llvm::FunctionType * Ty, llvm::Value * Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, ArrayRef<llvm::OperandBundleDef> Bundles = <null expr>, const llvm::Twine & NameStr = "", llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::InvokeInst * Create(llvm::FunctionCallee Func, llvm::BasicBlock * IfNormal, llvm::BasicBlock * IfException, ArrayRef<llvm::Value *> Args, const llvm::Twine & NameStr, llvm::BasicBlock * InsertAtEnd)
  • public static bool classof(const llvm::Value * V)
  • public static bool classof(const llvm::Instruction * I)
  • protected llvm::InvokeInst * cloneImpl() const
  • public bool doesNoCfCheck() const
  • public bool doesNotThrow() const
  • public llvm::LandingPadInst * getLandingPadInst() const
  • public llvm::BasicBlock * getNormalDest() const
  • public unsigned int getNumSuccessors() const
  • public llvm::BasicBlock * getSuccessor(unsigned int i) const
  • public llvm::BasicBlock * getUnwindDest() const
  • public void setDoesNotThrow()
  • public void setNormalDest(llvm::BasicBlock * B)
  • public void setSuccessor(unsigned int i, llvm::BasicBlock * NewSucc)
  • public void setUnwindDest(llvm::BasicBlock * B)

Inherited from CallBase:

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

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

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

Parameters

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

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

Description

Create a clone of \p II with a different set of operand bundles and insert it before \p InsertPt. The returned invoke instruction is identical to \p II 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:3833

Parameters

llvm::InvokeInst* II
ArrayRef<llvm::OperandBundleDef> Bundles
llvm::Instruction* InsertPt = nullptr

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

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

Parameters

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

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

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

Parameters

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

static llvm::InvokeInst* Create(
    llvm::Value* Func,
    llvm::BasicBlock* IfNormal,
    llvm::BasicBlock* IfException,
    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:3796

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

static llvm::InvokeInst* Create(
    llvm::FunctionCallee Func,
    llvm::BasicBlock* IfNormal,
    llvm::BasicBlock* IfException,
    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:3760

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

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

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

Parameters

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

static llvm::InvokeInst* Create(
    llvm::FunctionType* Ty,
    llvm::Value* Func,
    llvm::BasicBlock* IfNormal,
    llvm::BasicBlock* IfException,
    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:3716

Parameters

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

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

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

Parameters

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

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

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

Parameters

const llvm::Value* V

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

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

Parameters

const llvm::Instruction* I

llvm::InvokeInst* cloneImpl() const

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

bool doesNoCfCheck() const

Description

Determine if the call should not perform indirect branch tracking.

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

bool doesNotThrow() const

Description

Determine if the call cannot unwind.

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

llvm::LandingPadInst* getLandingPadInst() const

Description

Get the landingpad instruction from the landing pad block (the unwind destination).

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

llvm::BasicBlock* getNormalDest() const

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

unsigned int getNumSuccessors() const

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

llvm::BasicBlock* getSuccessor(
    unsigned int i) const

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

Parameters

unsigned int i

llvm::BasicBlock* getUnwindDest() const

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

void setDoesNotThrow()

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

void setNormalDest(llvm::BasicBlock* B)

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

Parameters

llvm::BasicBlock* B

void setSuccessor(unsigned int i,
                  llvm::BasicBlock* NewSucc)

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

Parameters

unsigned int i
llvm::BasicBlock* NewSucc

void setUnwindDest(llvm::BasicBlock* B)

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

Parameters

llvm::BasicBlock* B