LLVM API Documentation

llvm::SwitchInst Class Reference

#include <Instructions.h>

Inheritance diagram for llvm::SwitchInst:
[legend]
Collaboration diagram for llvm::SwitchInst:
[legend]

List of all members.

Public Member Functions

 ~SwitchInst ()
 DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value)
 Provide fast operand accessors.
Value * getCondition () const
void setCondition (Value *V)
BasicBlock * getDefaultDest () const
unsigned getNumCases () const
ConstantInt * getCaseValue (unsigned i)
const ConstantInt * getCaseValue (unsigned i) const
unsigned findCaseValue (const ConstantInt *C) const
ConstantInt * findCaseDest (BasicBlock *BB)
void addCase (ConstantInt *OnVal, BasicBlock *Dest)
void removeCase (unsigned idx)
virtual SwitchInst * clone () const
unsigned getNumSuccessors () const
BasicBlock * getSuccessor (unsigned idx) const
void setSuccessor (unsigned idx, BasicBlock *NewSucc)
ConstantInt * getSuccessorValue (unsigned idx) const

Static Public Member Functions

static SwitchInst * Create (Value *Value, BasicBlock *Default, unsigned NumCases, Instruction *InsertBefore=0)
static SwitchInst * Create (Value *Value, BasicBlock *Default, unsigned NumCases, BasicBlock *InsertAtEnd)
static bool classof (const SwitchInst *)
static bool classof (const Instruction *I)
 Methods for support type inquiry through isa, cast, and dyn_cast:.
static bool classof (const Value *V)


Detailed Description

SwitchInst - Multiway switch

Definition at line 2227 of file Instructions.h.


Constructor & Destructor Documentation

SwitchInst::~SwitchInst (  ) 

Definition at line 2766 of file Instructions.cpp.

References llvm::User::dropHungoffUses().


Member Function Documentation

static SwitchInst* llvm::SwitchInst::Create ( Value *  Value,
BasicBlock *  Default,
unsigned  NumCases,
Instruction *  InsertBefore = 0 
) [inline, static]

static SwitchInst* llvm::SwitchInst::Create ( Value *  Value,
BasicBlock *  Default,
unsigned  NumCases,
BasicBlock *  InsertAtEnd 
) [inline, static]

Definition at line 2259 of file Instructions.h.

llvm::SwitchInst::DECLARE_TRANSPARENT_OPERAND_ACCESSORS ( Value   ) 

Provide fast operand accessors.

Value* llvm::SwitchInst::getCondition (  )  const [inline]

Definition at line 2269 of file Instructions.h.

Referenced by AddReachableCodeToWorklist().

void llvm::SwitchInst::setCondition ( Value *  V  )  [inline]

Definition at line 2270 of file Instructions.h.

BasicBlock* llvm::SwitchInst::getDefaultDest (  )  const [inline]

Definition at line 2272 of file Instructions.h.

Referenced by llvm::Interpreter::visitSwitchInst().

unsigned llvm::SwitchInst::getNumCases (  )  const [inline]

getNumCases - return the number of 'cases' in this switch instruction. Note that case #0 is always the default case.

Definition at line 2278 of file Instructions.h.

Referenced by SimplifyEqualityComparisonWithOnlyPredecessor().

ConstantInt* llvm::SwitchInst::getCaseValue ( unsigned  i  )  [inline]

getCaseValue - Return the specified case value. Note that case #0, the default destination, does not have a case value.

Definition at line 2284 of file Instructions.h.

Referenced by AddReachableCodeToWorklist(), and SimplifyEqualityComparisonWithOnlyPredecessor().

const ConstantInt* llvm::SwitchInst::getCaseValue ( unsigned  i  )  const [inline]

getCaseValue - Return the specified case value. Note that case #0, the default destination, does not have a case value.

Definition at line 2291 of file Instructions.h.

unsigned llvm::SwitchInst::findCaseValue ( const ConstantInt *  C  )  const [inline]

findCaseValue - Search all of the case values for the specified constant. If it is explicitly handled, return the case number of it, otherwise return 0 to indicate that it is handled by the default handler.

Definition at line 2299 of file Instructions.h.

ConstantInt* llvm::SwitchInst::findCaseDest ( BasicBlock *  BB  )  [inline]

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

Definition at line 2308 of file Instructions.h.

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

addCase - Add an entry to the switch instruction...

Definition at line 2773 of file Instructions.cpp.

References llvm::User::NumOperands.

Referenced by FoldValueComparisonIntoPredecessors(), and llvm::SimplifyCFG().

void SwitchInst::removeCase ( unsigned  idx  ) 

removeCase - This method removes the specified successor from the switch instruction. Note that this cannot be used to remove the default destination (successor #0).

removeCase - This method removes the specified successor from the switch instruction. Note that this cannot be used to remove the default destination (successor #0).

Definition at line 2788 of file Instructions.cpp.

References llvm::User::getNumOperands(), llvm::User::NumOperands, and llvm::Use::set().

Referenced by SimplifyEqualityComparisonWithOnlyPredecessor().

SwitchInst * SwitchInst::clone (  )  const [virtual]

clone() - Create a copy of 'this' instruction that is identical in all ways except the following: The instruction has no parent The instruction has no name

Implements llvm::TerminatorInst.

Definition at line 2926 of file Instructions.cpp.

unsigned llvm::SwitchInst::getNumSuccessors (  )  const [inline]

getNumSuccessors - Return the number of successors that this terminator has.

Reimplemented from llvm::TerminatorInst.

Definition at line 2333 of file Instructions.h.

Referenced by AddReachableCodeToWorklist(), and FoldValueComparisonIntoPredecessors().

BasicBlock* llvm::SwitchInst::getSuccessor ( unsigned  idx  )  const [inline]

getSuccessor - Return the specified successor.

Reimplemented from llvm::TerminatorInst.

Definition at line 2334 of file Instructions.h.

Referenced by AddReachableCodeToWorklist(), FoldValueComparisonIntoPredecessors(), and SimplifyEqualityComparisonWithOnlyPredecessor().

void llvm::SwitchInst::setSuccessor ( unsigned  idx,
BasicBlock *  B 
) [inline]

setSuccessor - Update the specified successor to point at the provided block.

Reimplemented from llvm::TerminatorInst.

Definition at line 2338 of file Instructions.h.

Referenced by FoldValueComparisonIntoPredecessors().

ConstantInt* llvm::SwitchInst::getSuccessorValue ( unsigned  idx  )  const [inline]

Definition at line 2345 of file Instructions.h.

static bool llvm::SwitchInst::classof ( const SwitchInst *   )  [inline, static]

Definition at line 2351 of file Instructions.h.

static bool llvm::SwitchInst::classof ( const Instruction *   )  [inline, static]

Methods for support type inquiry through isa, cast, and dyn_cast:.

Reimplemented from llvm::TerminatorInst.

Definition at line 2352 of file Instructions.h.

References llvm::Instruction::getOpcode().

static bool llvm::SwitchInst::classof ( const Value *  V  )  [inline, static]

Reimplemented from llvm::TerminatorInst.

Definition at line 2355 of file Instructions.h.


The documentation for this class was generated from the following files: