LLVM API Documentation
#include <Instructions.h>
Inheritance diagram for llvm::SwitchInst:
Public Member Functions | |
SwitchInst (Value *Value, BasicBlock *Default, unsigned NumCases, Instruction *InsertBefore=0) | |
SwitchInst (Value *Value, BasicBlock *Default, unsigned NumCases, BasicBlock *InsertAtEnd) | |
~SwitchInst () | |
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 |
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 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) |
Definition at line 1202 of file Instructions.h.
llvm::SwitchInst::SwitchInst | ( | Value * | Value, | |
BasicBlock * | Default, | |||
unsigned | NumCases, | |||
Instruction * | InsertBefore = 0 | |||
) | [inline] |
SwitchInst ctor - Create a new switch instruction, specifying a value to switch on and a default destination. The number of additional cases can be specified here to make memory allocation more efficient. This constructor can also autoinsert before another instruction.
Definition at line 1216 of file Instructions.h.
References llvm::Reloc::Default, and llvm::cl::init().
llvm::SwitchInst::SwitchInst | ( | Value * | Value, | |
BasicBlock * | Default, | |||
unsigned | NumCases, | |||
BasicBlock * | InsertAtEnd | |||
) | [inline] |
SwitchInst ctor - Create a new switch instruction, specifying a value to switch on and a default destination. The number of additional cases can be specified here to make memory allocation more efficient. This constructor also autoinserts at the end of the specified BasicBlock.
Definition at line 1226 of file Instructions.h.
References llvm::Reloc::Default, and llvm::cl::init().
SwitchInst::~SwitchInst | ( | ) |
void SwitchInst::addCase | ( | ConstantInt * | OnVal, | |
BasicBlock * | Dest | |||
) |
addCase - Add an entry to the switch instruction...
Definition at line 1179 of file Instructions.cpp.
References Dest, llvm::Use::init(), llvm::User::NumOperands, and llvm::User::OperandList.
Referenced by FoldValueComparisonIntoPredecessors(), llvm::BytecodeReader::ParseInstruction(), and llvm::SimplifyCFG().
static bool llvm::SwitchInst::classof | ( | const Value * | V | ) | [inline, static] |
Reimplemented from llvm::TerminatorInst.
Definition at line 1306 of file Instructions.h.
References llvm::CastInst::classof(), and V.
static bool llvm::SwitchInst::classof | ( | const Instruction * | I | ) | [inline, static] |
Methods for support type inquiry through isa, cast, and dyn_cast:.
Reimplemented from llvm::TerminatorInst.
Definition at line 1303 of file Instructions.h.
References llvm::Instruction::getOpcode().
static bool llvm::SwitchInst::classof | ( | const SwitchInst * | ) | [inline, static] |
Definition at line 1302 of file Instructions.h.
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 1292 of file Instructions.cpp.
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 1265 of file Instructions.h.
References llvm::CallingConv::C.
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 1257 of file Instructions.h.
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 1250 of file Instructions.h.
Referenced by SimplifyEqualityComparisonWithOnlyPredecessor().
Value* llvm::SwitchInst::getCondition | ( | ) | const [inline] |
BasicBlock* llvm::SwitchInst::getDefaultDest | ( | ) | const [inline] |
Definition at line 1238 of file Instructions.h.
References llvm::UnaryInstruction::getOperand().
Referenced by llvm::SelectionDAGLowering::visitSwitch(), and 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 1244 of file Instructions.h.
References llvm::UnaryInstruction::getNumOperands().
Referenced by SimplifyEqualityComparisonWithOnlyPredecessor().
unsigned llvm::SwitchInst::getNumSuccessors | ( | ) | const [inline] |
getNumSuccessors - Return the number of successors that this terminator has.
Reimplemented from llvm::TerminatorInst.
Definition at line 1284 of file Instructions.h.
References llvm::UnaryInstruction::getNumOperands().
Referenced by FoldValueComparisonIntoPredecessors(), and llvm::SelectionDAGLowering::visitSwitch().
BasicBlock* llvm::SwitchInst::getSuccessor | ( | unsigned | idx | ) | const [inline] |
getSuccessor - Return the specified successor.
Reimplemented from llvm::TerminatorInst.
Definition at line 1285 of file Instructions.h.
References llvm::UnaryInstruction::getOperand().
Referenced by FoldValueComparisonIntoPredecessors(), SimplifyEqualityComparisonWithOnlyPredecessor(), and llvm::SelectionDAGLowering::visitSwitch().
ConstantInt* llvm::SwitchInst::getSuccessorValue | ( | unsigned | idx | ) | const [inline] |
Definition at line 1296 of file Instructions.h.
References llvm::UnaryInstruction::getOperand().
Referenced by llvm::SelectionDAGLowering::visitSwitch().
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).
Definition at line 1194 of file Instructions.cpp.
References llvm::User::getNumOperands(), llvm::User::NumOperands, llvm::User::OperandList, and llvm::Use::set().
Referenced by SimplifyEqualityComparisonWithOnlyPredecessor().
void llvm::SwitchInst::setCondition | ( | Value * | V | ) | [inline] |
Definition at line 1236 of file Instructions.h.
References llvm::UnaryInstruction::setOperand(), and V.
void llvm::SwitchInst::setSuccessor | ( | unsigned | idx, | |
BasicBlock * | NewSucc | |||
) | [inline] |
setSuccessor - Update the specified successor to point at the provided block.
Reimplemented from llvm::TerminatorInst.
Definition at line 1289 of file Instructions.h.
References llvm::UnaryInstruction::setOperand().
Referenced by FoldValueComparisonIntoPredecessors().