klee
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
klee::LowerSwitchPass Class Reference

#include <Passes.h>

Inherits FunctionPass.

Classes

struct  SwitchCase
 

Public Types

typedef std::vector< SwitchCaseCaseVector
 
typedef std::vector
< SwitchCase >::iterator 
CaseItr
 

Public Member Functions

 LowerSwitchPass ()
 
virtual bool runOnFunction (llvm::Function &F)
 

Static Public Attributes

static char ID = 0
 

Private Member Functions

void processSwitchInst (llvm::SwitchInst *SI)
 
void switchConvert (CaseItr begin, CaseItr end, llvm::Value *value, llvm::BasicBlock *origBlock, llvm::BasicBlock *defaultBlock)
 

Detailed Description

LowerSwitchPass - Replace all SwitchInst instructions with chained branch instructions. Note that this cannot be a BasicBlock pass because it modifies the CFG!

Definition at line 152 of file Passes.h.

Member Typedef Documentation

typedef std::vector<SwitchCase>::iterator klee::LowerSwitchPass::CaseItr

Definition at line 169 of file Passes.h.

Definition at line 168 of file Passes.h.

Constructor & Destructor Documentation

klee::LowerSwitchPass::LowerSwitchPass ( )
inline

Definition at line 155 of file Passes.h.

Member Function Documentation

void klee::LowerSwitchPass::processSwitchInst ( llvm::SwitchInst *  SI)
private

Definition at line 97 of file LowerSwitch.cpp.

bool klee::LowerSwitchPass::runOnFunction ( llvm::Function &  F)
virtual

Definition at line 43 of file LowerSwitch.cpp.

void klee::LowerSwitchPass::switchConvert ( CaseItr  begin,
CaseItr  end,
llvm::Value *  value,
llvm::BasicBlock *  origBlock,
llvm::BasicBlock *  defaultBlock 
)
private

Definition at line 60 of file LowerSwitch.cpp.

Member Data Documentation

char klee::LowerSwitchPass::ID = 0
static

Definition at line 154 of file Passes.h.


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