LLVM API Documentation

Public Member Functions | Public Attributes
llvm::InstVisitor< SubClass, RetTy > Class Template Reference

Base class for instruction visitors. More...

#include <InstVisitor.h>

Inheritance diagram for llvm::InstVisitor< SubClass, RetTy >:
Inheritance graph
[legend]
Collaboration diagram for llvm::InstVisitor< SubClass, RetTy >:
Collaboration graph
[legend]

List of all members.

Public Member Functions

template<class Iterator >
void visit (Iterator Start, Iterator End)
void visit (Module &M)
void visit (Function &F)
void visit (BasicBlock &BB)
void visit (Module *M)
void visit (Function *F)
void visit (BasicBlock *BB)
RetTy visit (Instruction *I)
RetTy visit (Instruction &I)
void visitModule (Module &M)
void visitFunction (Function &F)
void visitBasicBlock (BasicBlock &BB)
 HANDLE_BINARY_INST (20, Shl, BinaryOperator) HANDLE_BINARY_INST(21
BinaryOperator HANDLE_BINARY_INST (22, AShr, BinaryOperator) HANDLE_MEMORY_INST(26
BinaryOperator AllocaInst HANDLE_MEMORY_INST (27, Load, LoadInst) HANDLE_CAST_INST(33
BinaryOperator AllocaInst TruncInst HANDLE_CAST_INST (34, ZExt, ZExtInst) HANDLE_CAST_INST(35
BinaryOperator AllocaInst
TruncInst SExtInst 
HANDLE_CAST_INST (36, FPToUI, FPToUIInst) HANDLE_CAST_INST(37
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst 
HANDLE_CAST_INST (38, UIToFP, UIToFPInst) HANDLE_CAST_INST(39
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst 
HANDLE_CAST_INST (40, FPTrunc, FPTruncInst) HANDLE_CAST_INST(41
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst 
HANDLE_CAST_INST (42, PtrToInt, PtrToIntInst) HANDLE_CAST_INST(43
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst 
HANDLE_CAST_INST (44, BitCast, BitCastInst) HANDLE_CAST_INST(45
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst 
HANDLE_OTHER_INST (46, ICmp, ICmpInst) HANDLE_OTHER_INST(47
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst 
HANDLE_OTHER_INST (48, PHI, PHINode) HANDLE_OTHER_INST(49
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst 
HANDLE_OTHER_INST (50, Select, SelectInst) HANDLE_OTHER_INST(51
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction 
HANDLE_OTHER_INST (52, UserOp2, Instruction) HANDLE_OTHER_INST(53
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst 
HANDLE_OTHER_INST (54, ExtractElement, ExtractElementInst) HANDLE_OTHER_INST(55
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst InsertElementInst 
HANDLE_OTHER_INST (56, ShuffleVector, ShuffleVectorInst) HANDLE_OTHER_INST(57
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst InsertElementInst
ExtractValueInst 
HANDLE_OTHER_INST (58, InsertValue, InsertValueInst) HANDLE_OTHER_INST(59
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst InsertElementInst
ExtractValueInst
LandingPadInst RetTy 
visitReturnInst (ReturnInst &I)
RetTy visitBranchInst (BranchInst &I)
RetTy visitSwitchInst (SwitchInst &I)
RetTy visitIndirectBrInst (IndirectBrInst &I)
RetTy visitResumeInst (ResumeInst &I)
RetTy visitUnreachableInst (UnreachableInst &I)
RetTy visitICmpInst (ICmpInst &I)
RetTy visitFCmpInst (FCmpInst &I)
RetTy visitAllocaInst (AllocaInst &I)
RetTy visitLoadInst (LoadInst &I)
RetTy visitStoreInst (StoreInst &I)
RetTy visitAtomicCmpXchgInst (AtomicCmpXchgInst &I)
RetTy visitAtomicRMWInst (AtomicRMWInst &I)
RetTy visitFenceInst (FenceInst &I)
RetTy visitGetElementPtrInst (GetElementPtrInst &I)
RetTy visitPHINode (PHINode &I)
RetTy visitTruncInst (TruncInst &I)
RetTy visitZExtInst (ZExtInst &I)
RetTy visitSExtInst (SExtInst &I)
RetTy visitFPTruncInst (FPTruncInst &I)
RetTy visitFPExtInst (FPExtInst &I)
RetTy visitFPToUIInst (FPToUIInst &I)
RetTy visitFPToSIInst (FPToSIInst &I)
RetTy visitUIToFPInst (UIToFPInst &I)
RetTy visitSIToFPInst (SIToFPInst &I)
RetTy visitPtrToIntInst (PtrToIntInst &I)
RetTy visitIntToPtrInst (IntToPtrInst &I)
RetTy visitBitCastInst (BitCastInst &I)
RetTy visitAddrSpaceCastInst (AddrSpaceCastInst &I)
RetTy visitSelectInst (SelectInst &I)
RetTy visitVAArgInst (VAArgInst &I)
RetTy visitExtractElementInst (ExtractElementInst &I)
RetTy visitInsertElementInst (InsertElementInst &I)
RetTy visitShuffleVectorInst (ShuffleVectorInst &I)
RetTy visitExtractValueInst (ExtractValueInst &I)
RetTy visitInsertValueInst (InsertValueInst &I)
RetTy visitLandingPadInst (LandingPadInst &I)
RetTy visitDbgDeclareInst (DbgDeclareInst &I)
RetTy visitDbgValueInst (DbgValueInst &I)
RetTy visitDbgInfoIntrinsic (DbgInfoIntrinsic &I)
RetTy visitMemSetInst (MemSetInst &I)
RetTy visitMemCpyInst (MemCpyInst &I)
RetTy visitMemMoveInst (MemMoveInst &I)
RetTy visitMemTransferInst (MemTransferInst &I)
RetTy visitMemIntrinsic (MemIntrinsic &I)
RetTy visitVAStartInst (VAStartInst &I)
RetTy visitVAEndInst (VAEndInst &I)
RetTy visitVACopyInst (VACopyInst &I)
RetTy visitIntrinsicInst (IntrinsicInst &I)
RetTy visitCallInst (CallInst &I)
RetTy visitInvokeInst (InvokeInst &I)
RetTy visitCastInst (CastInst &I)
RetTy visitBinaryOperator (BinaryOperator &I)
RetTy visitCmpInst (CmpInst &I)
RetTy visitTerminatorInst (TerminatorInst &I)
RetTy visitUnaryInstruction (UnaryInstruction &I)
RetTy visitCallSite (CallSite CS)
void visitInstruction (Instruction &I)

Public Attributes

 LShr
BinaryOperator Alloca
BinaryOperator AllocaInst Trunc
BinaryOperator AllocaInst TruncInst SExt
BinaryOperator AllocaInst
TruncInst SExtInst 
FPToSI
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst 
SIToFP
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst 
FPExt
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst 
IntToPtr
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst 
AddrSpaceCast
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst 
FCmp
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst 
Call
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst 
UserOp1
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction 
VAArg
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst 
InsertElement
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst InsertElementInst 
ExtractValue
BinaryOperator AllocaInst
TruncInst SExtInst FPToSIInst
SIToFPInst FPExtInst
IntToPtrInst AddrSpaceCastInst
FCmpInst CallInst Instruction
VAArgInst InsertElementInst
ExtractValueInst 
LandingPad

Detailed Description

template<typename SubClass, typename RetTy = void>
class llvm::InstVisitor< SubClass, RetTy >

Base class for instruction visitors.

Instruction visitors are used when you want to perform different actions for different kinds of instructions without having to use lots of casts and a big switch statement (in your code, that is).

To define your own visitor, inherit from this class, specifying your new type for the 'SubClass' template parameter, and "override" visitXXX functions in your class. I say "override" because this class is defined in terms of statically resolved overloading, not virtual functions.

For example, here is a visitor that counts the number of malloc instructions processed:

/ Declare the class. Note that we derive from InstVisitor instantiated / with _our new subclasses_ type. / struct CountAllocaVisitor : public InstVisitor<CountAllocaVisitor> { unsigned Count; CountAllocaVisitor() : Count(0) {}

void visitAllocaInst(AllocaInst &AI) { ++Count; } };

And this class would be used like this: CountAllocaVisitor CAV; CAV.visit(function); NumAllocas = CAV.Count;

The defined has 'visit' methods for Instruction, and also for BasicBlock, Function, and Module, which recursively process all contained instructions.

Note that if you don't implement visitXXX for some instruction type, the visitXXX method for instruction superclass will be invoked. So if instructions are added in the future, they will be automatically supported, if you handle one of their superclasses.

The optional second template argument specifies the type that instruction visitation functions should return. If you specify this, you *MUST* provide an implementation of visitInstruction though!.

Note that this class is specifically designed as a template to avoid virtual function call overhead. Defining and using an InstVisitor is just as efficient as having your own switch statement over the instruction opcode.

Definition at line 81 of file InstVisitor.h.


Member Function Documentation

template<typename SubClass, typename RetTy = void>
llvm::InstVisitor< SubClass, RetTy >::HANDLE_BINARY_INST ( 20  ,
Shl  ,
BinaryOperator   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator llvm::InstVisitor< SubClass, RetTy >::HANDLE_BINARY_INST ( 22  ,
AShr  ,
BinaryOperator   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 34  ,
ZExt  ,
ZExtInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 36  ,
FPToUI  ,
FPToUIInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 38  ,
UIToFP  ,
UIToFPInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 40  ,
FPTrunc  ,
FPTruncInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 42  ,
PtrToInt  ,
PtrToIntInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_CAST_INST ( 44  ,
BitCast  ,
BitCastInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_MEMORY_INST ( 27  ,
Load  ,
LoadInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst AddrSpaceCastInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_OTHER_INST ( 46  ,
ICmp  ,
ICmpInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst AddrSpaceCastInst FCmpInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_OTHER_INST ( 48  ,
PHI  ,
PHINode   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst AddrSpaceCastInst FCmpInst CallInst llvm::InstVisitor< SubClass, RetTy >::HANDLE_OTHER_INST ( 50  ,
Select  ,
SelectInst   
)
template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst AddrSpaceCastInst FCmpInst CallInst Instruction llvm::InstVisitor< SubClass, RetTy >::HANDLE_OTHER_INST ( 52  ,
UserOp2  ,
Instruction   
)
template<typename SubClass, typename RetTy = void>
template<class Iterator >
void llvm::InstVisitor< SubClass, RetTy >::visit ( Iterator  Start,
Iterator  End 
) [inline]
template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( Module M) [inline]

Definition at line 97 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( Function F) [inline]

Definition at line 101 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( BasicBlock BB) [inline]

Definition at line 105 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( Module M) [inline]
template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( Function F) [inline]
template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visit ( BasicBlock BB) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visit ( Instruction I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visit ( Instruction I) [inline]

Definition at line 118 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitAddrSpaceCastInst ( AddrSpaceCastInst I) [inline]

Definition at line 194 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitAllocaInst ( AllocaInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitAtomicCmpXchgInst ( AtomicCmpXchgInst I) [inline]

Definition at line 177 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitAtomicRMWInst ( AtomicRMWInst I) [inline]

Definition at line 178 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visitBasicBlock ( BasicBlock BB) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitBinaryOperator ( BinaryOperator I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 232 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitBitCastInst ( BitCastInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitBranchInst ( BranchInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 167 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitCallInst ( CallInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 220 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitCallSite ( CallSite  CS) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitCastInst ( CastInst I) [inline]

Definition at line 231 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitCmpInst ( CmpInst I) [inline]

Definition at line 233 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitDbgDeclareInst ( DbgDeclareInst I) [inline]

Definition at line 205 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitDbgInfoIntrinsic ( DbgInfoIntrinsic I) [inline]

Reimplemented in llvm::PtrUseVisitor< DerivedT >, and llvm::PtrUseVisitor< SliceBuilder >.

Definition at line 207 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitDbgValueInst ( DbgValueInst I) [inline]

Definition at line 206 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitExtractElementInst ( ExtractElementInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitExtractValueInst ( ExtractValueInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFCmpInst ( FCmpInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 173 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFenceInst ( FenceInst I) [inline]

Definition at line 179 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFPExtInst ( FPExtInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 186 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFPToSIInst ( FPToSIInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 188 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFPToUIInst ( FPToUIInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 187 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitFPTruncInst ( FPTruncInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 185 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visitFunction ( Function F) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitGetElementPtrInst ( GetElementPtrInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitICmpInst ( ICmpInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 172 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitIndirectBrInst ( IndirectBrInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 169 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitInsertElementInst ( InsertElementInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 198 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitInsertValueInst ( InsertValueInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 201 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visitInstruction ( Instruction I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitIntrinsicInst ( IntrinsicInst I) [inline]

Reimplemented in llvm::PtrUseVisitor< DerivedT >, and llvm::PtrUseVisitor< SliceBuilder >.

Definition at line 216 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitIntToPtrInst ( IntToPtrInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitInvokeInst ( InvokeInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 223 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitLandingPadInst ( LandingPadInst I) [inline]

Reimplemented in llvm::InstCombiner.

Definition at line 202 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitLoadInst ( LoadInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitMemCpyInst ( MemCpyInst I) [inline]

Definition at line 209 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitMemIntrinsic ( MemIntrinsic I) [inline]

Reimplemented in llvm::PtrUseVisitor< DerivedT >, and llvm::PtrUseVisitor< SliceBuilder >.

Definition at line 212 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitMemMoveInst ( MemMoveInst I) [inline]

Definition at line 210 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitMemSetInst ( MemSetInst I) [inline]

Definition at line 208 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitMemTransferInst ( MemTransferInst I) [inline]

Definition at line 211 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
void llvm::InstVisitor< SubClass, RetTy >::visitModule ( Module M) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitPHINode ( PHINode I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitPtrToIntInst ( PtrToIntInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitResumeInst ( ResumeInst I) [inline]

Definition at line 170 of file InstVisitor.h.

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 166 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitSelectInst ( SelectInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitSExtInst ( SExtInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 184 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitShuffleVectorInst ( ShuffleVectorInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 199 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitSIToFPInst ( SIToFPInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 190 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitStoreInst ( StoreInst I) [inline]
template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitSwitchInst ( SwitchInst I) [inline]

Reimplemented in llvm::InstCombiner, and llvm::Interpreter.

Definition at line 168 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitTerminatorInst ( TerminatorInst I) [inline]

Definition at line 234 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitTruncInst ( TruncInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 182 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitUIToFPInst ( UIToFPInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 189 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitUnaryInstruction ( UnaryInstruction I) [inline]

Definition at line 235 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitUnreachableInst ( UnreachableInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 171 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitVAArgInst ( VAArgInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 196 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitVACopyInst ( VACopyInst I) [inline]

Definition at line 215 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitVAEndInst ( VAEndInst I) [inline]

Definition at line 214 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitVAStartInst ( VAStartInst I) [inline]

Definition at line 213 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
RetTy llvm::InstVisitor< SubClass, RetTy >::visitZExtInst ( ZExtInst I) [inline]

Reimplemented in llvm::Interpreter.

Definition at line 183 of file InstVisitor.h.


Member Data Documentation

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst llvm::InstVisitor< SubClass, RetTy >::AddrSpaceCast

Definition at line 158 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator llvm::InstVisitor< SubClass, RetTy >::Alloca

Definition at line 133 of file InstVisitor.h.

Definition at line 166 of file InstVisitor.h.

Definition at line 174 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst IntToPtrInst AddrSpaceCastInst llvm::InstVisitor< SubClass, RetTy >::FCmp

Definition at line 164 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst llvm::InstVisitor< SubClass, RetTy >::FPExt

Definition at line 154 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst llvm::InstVisitor< SubClass, RetTy >::FPToSI

Definition at line 150 of file InstVisitor.h.

Definition at line 172 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst SIToFPInst FPExtInst llvm::InstVisitor< SubClass, RetTy >::IntToPtr

Definition at line 156 of file InstVisitor.h.

Definition at line 176 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
llvm::InstVisitor< SubClass, RetTy >::LShr

Definition at line 124 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst llvm::InstVisitor< SubClass, RetTy >::SExt

Definition at line 148 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst TruncInst SExtInst FPToSIInst llvm::InstVisitor< SubClass, RetTy >::SIToFP

Definition at line 152 of file InstVisitor.h.

template<typename SubClass, typename RetTy = void>
BinaryOperator AllocaInst llvm::InstVisitor< SubClass, RetTy >::Trunc

Definition at line 146 of file InstVisitor.h.

Definition at line 168 of file InstVisitor.h.

Definition at line 170 of file InstVisitor.h.


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