LLVM API Documentation

llvm::SwitchInst Class Reference

#include <Instructions.h>

Inheritance diagram for llvm::SwitchInst:

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

Collaboration graph
[legend]

List of all members.

Public Member Functions

 ~SwitchInst ()
 DECLARE_TRANSPARENT_OPERAND_ACCESSORS (Value)
 Provide fast operand accessors.
ValuegetCondition () const
void setCondition (Value *V)
BasicBlockgetDefaultDest () const
unsigned getNumCases () const
ConstantIntgetCaseValue (unsigned i)
const ConstantIntgetCaseValue (unsigned i) const
unsigned findCaseValue (const ConstantInt *C) const
ConstantIntfindCaseDest (BasicBlock *BB)
void addCase (ConstantInt *OnVal, BasicBlock *Dest)
void removeCase (unsigned idx)
virtual SwitchInstclone () const
unsigned getNumSuccessors () const
BasicBlockgetSuccessor (unsigned idx) const
void setSuccessor (unsigned idx, BasicBlock *NewSucc)
ConstantIntgetSuccessorValue (unsigned idx) const

Static Public Member Functions

static SwitchInstCreate (Value *Value, BasicBlock *Default, unsigned NumCases, Instruction *InsertBefore=0)
static SwitchInstCreate (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 2212 of file Instructions.h.


Constructor & Destructor Documentation

SwitchInst::~SwitchInst (  ) 

Definition at line 2792 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 2244 of file Instructions.h.

llvm::SwitchInst::DECLARE_TRANSPARENT_OPERAND_ACCESSORS ( Value   ) 

Provide fast operand accessors.

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

Definition at line 2254 of file Instructions.h.

Referenced by AddReachableCodeToWorklist().

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

Definition at line 2255 of file Instructions.h.

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

Definition at line 2257 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 2263 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 2269 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 2276 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 2284 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 2293 of file Instructions.h.

References CI.

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

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

Definition at line 2799 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 2814 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 2952 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 2318 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 2319 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 2323 of file Instructions.h.

Referenced by FoldValueComparisonIntoPredecessors().

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

Definition at line 2330 of file Instructions.h.

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

Definition at line 2336 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 2337 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 2340 of file Instructions.h.


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



This web site is hosted by the Computer Science Department at the University of Illinois at Urbana-Champaign.