class SwitchInst

Declaration

class SwitchInst : public Instruction { /* full declaration omitted */ };

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

Inherits from: Instruction

Member Variables

public static const unsigned int DefaultPseudoIndex = static_cast<unsigned int>(~0L - 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::SwitchInst * Create(llvm::Value * Value, llvm::BasicBlock * Default, unsigned int NumCases, llvm::Instruction * InsertBefore = nullptr)
  • public static llvm::SwitchInst * Create(llvm::Value * Value, llvm::BasicBlock * Default, unsigned int NumCases, llvm::BasicBlock * InsertAtEnd)
  • public void addCase(llvm::ConstantInt * OnVal, llvm::BasicBlock * Dest)
  • public llvm::SwitchInst::CaseIt case_begin()
  • public llvm::SwitchInst::ConstCaseIt case_begin() const
  • public llvm::SwitchInst::ConstCaseIt case_default() const
  • public llvm::SwitchInst::CaseIt case_default()
  • public llvm::SwitchInst::ConstCaseIt case_end() const
  • public llvm::SwitchInst::CaseIt case_end()
  • public iterator_range<llvm::SwitchInst::ConstCaseIt> cases() const
  • public iterator_range<llvm::SwitchInst::CaseIt> cases()
  • public static bool classof(const llvm::Instruction * I)
  • public static bool classof(const llvm::Value * V)
  • protected llvm::SwitchInst * cloneImpl() const
  • public llvm::ConstantInt * findCaseDest(llvm::BasicBlock * BB)
  • public llvm::SwitchInst::CaseIt findCaseValue(const llvm::ConstantInt * C)
  • public llvm::SwitchInst::ConstCaseIt findCaseValue(const llvm::ConstantInt * C) const
  • public llvm::Value * getCondition() const
  • public llvm::BasicBlock * getDefaultDest() const
  • public unsigned int getNumCases() const
  • public unsigned int getNumSuccessors() const
  • public llvm::BasicBlock * getSuccessor(unsigned int idx) const
  • public llvm::SwitchInst::CaseIt removeCase(llvm::SwitchInst::CaseIt I)
  • public void setCondition(llvm::Value * V)
  • public void setDefaultDest(llvm::BasicBlock * DefaultCase)
  • public void setSuccessor(unsigned int idx, llvm::BasicBlock * NewSucc)

Inherited from Instruction:

Inherited from User:

Inherited from Value:

Methods

static llvm::SwitchInst* Create(
    llvm::Value* Value,
    llvm::BasicBlock* Default,
    unsigned int NumCases,
    llvm::Instruction* InsertBefore = nullptr)

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

Parameters

llvm::Value* Value
llvm::BasicBlock* Default
unsigned int NumCases
llvm::Instruction* InsertBefore = nullptr

static llvm::SwitchInst* Create(
    llvm::Value* Value,
    llvm::BasicBlock* Default,
    unsigned int NumCases,
    llvm::BasicBlock* InsertAtEnd)

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

Parameters

llvm::Value* Value
llvm::BasicBlock* Default
unsigned int NumCases
llvm::BasicBlock* InsertAtEnd

void addCase(llvm::ConstantInt* OnVal,
             llvm::BasicBlock* Dest)

Description

Add an entry to the switch instruction. Note: This action invalidates case_end(). Old case_end() iterator will point to the added case.

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

Parameters

llvm::ConstantInt* OnVal
llvm::BasicBlock* Dest

llvm::SwitchInst::CaseIt case_begin()

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

llvm::SwitchInst::ConstCaseIt case_begin() const

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

llvm::SwitchInst::ConstCaseIt case_default() const

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

llvm::SwitchInst::CaseIt case_default()

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

llvm::SwitchInst::ConstCaseIt case_end() const

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

llvm::SwitchInst::CaseIt case_end()

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

iterator_range<llvm::SwitchInst::ConstCaseIt>
cases() const

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

iterator_range<llvm::SwitchInst::CaseIt> cases()

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

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

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

Parameters

const llvm::Instruction* I

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

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

Parameters

const llvm::Value* V

llvm::SwitchInst* cloneImpl() const

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

llvm::ConstantInt* findCaseDest(
    llvm::BasicBlock* BB)

Description

Finds the unique case value for a given successor. Returns null if the successor is not found, not unique, or is the default case.

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

Parameters

llvm::BasicBlock* BB

llvm::SwitchInst::CaseIt findCaseValue(
    const llvm::ConstantInt* C)

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

Parameters

const llvm::ConstantInt* C

llvm::SwitchInst::ConstCaseIt findCaseValue(
    const llvm::ConstantInt* C) const

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

Parameters

const llvm::ConstantInt* C

llvm::Value* getCondition() const

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

llvm::BasicBlock* getDefaultDest() const

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

unsigned int getNumCases() const

Description

Return the number of 'cases' in this switch instruction, excluding the default case.

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

unsigned int getNumSuccessors() const

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

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

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

Parameters

unsigned int idx

llvm::SwitchInst::CaseIt removeCase(
    llvm::SwitchInst::CaseIt I)

Description

This method removes the specified case and its successor from the switch instruction. Note that this operation may reorder the remaining cases at index idx and above. Note: This action invalidates iterators for all cases following the one removed, including the case_end() iterator. It returns an iterator for the next case.

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

Parameters

llvm::SwitchInst::CaseIt I

void setCondition(llvm::Value* V)

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

Parameters

llvm::Value* V

void setDefaultDest(llvm::BasicBlock* DefaultCase)

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

Parameters

llvm::BasicBlock* DefaultCase

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

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

Parameters

unsigned int idx
llvm::BasicBlock* NewSucc