LLVM API Documentation

 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | List of all members
llvm::ObjectSizeOffsetVisitor Class Reference

Evaluate the size and offset of an object pointed to by a Value* statically. Fails if size or offset are not known at compile time. More...

#include <MemoryBuiltins.h>

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

Public Member Functions

 ObjectSizeOffsetVisitor (const DataLayout *DL, const TargetLibraryInfo *TLI, LLVMContext &Context, bool RoundToAlign=false)
 
SizeOffsetType compute (Value *V)
 
bool knownSize (SizeOffsetType &SizeOffset)
 
bool knownOffset (SizeOffsetType &SizeOffset)
 
bool bothKnown (SizeOffsetType &SizeOffset)
 
SizeOffsetType visitAllocaInst (AllocaInst &I)
 
SizeOffsetType visitArgument (Argument &A)
 
SizeOffsetType visitCallSite (CallSite CS)
 
SizeOffsetType visitConstantPointerNull (ConstantPointerNull &)
 
SizeOffsetType visitExtractElementInst (ExtractElementInst &I)
 
SizeOffsetType visitExtractValueInst (ExtractValueInst &I)
 
SizeOffsetType visitGEPOperator (GEPOperator &GEP)
 
SizeOffsetType visitGlobalAlias (GlobalAlias &GA)
 
SizeOffsetType visitGlobalVariable (GlobalVariable &GV)
 
SizeOffsetType visitIntToPtrInst (IntToPtrInst &)
 
SizeOffsetType visitLoadInst (LoadInst &I)
 
SizeOffsetType visitPHINode (PHINode &)
 
SizeOffsetType visitSelectInst (SelectInst &I)
 
SizeOffsetType visitUndefValue (UndefValue &)
 
SizeOffsetType visitInstruction (Instruction &I)
 
- Public Member Functions inherited from llvm::InstVisitor< ObjectSizeOffsetVisitor, SizeOffsetType >
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)
 
SizeOffsetType visit (Instruction *I)
 
SizeOffsetType visit (Instruction &I)
 
void visitModule (Module &M)
 
void visitFunction (Function &F)
 
void visitBasicBlock (BasicBlock &BB)
 
SizeOffsetType visitReturnInst (ReturnInst &I)
 
SizeOffsetType visitBranchInst (BranchInst &I)
 
SizeOffsetType visitSwitchInst (SwitchInst &I)
 
SizeOffsetType visitIndirectBrInst (IndirectBrInst &I)
 
SizeOffsetType visitResumeInst (ResumeInst &I)
 
SizeOffsetType visitUnreachableInst (UnreachableInst &I)
 
SizeOffsetType visitICmpInst (ICmpInst &I)
 
SizeOffsetType visitFCmpInst (FCmpInst &I)
 
SizeOffsetType visitAllocaInst (AllocaInst &I)
 
SizeOffsetType visitLoadInst (LoadInst &I)
 
SizeOffsetType visitStoreInst (StoreInst &I)
 
SizeOffsetType visitAtomicCmpXchgInst (AtomicCmpXchgInst &I)
 
SizeOffsetType visitAtomicRMWInst (AtomicRMWInst &I)
 
SizeOffsetType visitFenceInst (FenceInst &I)
 
SizeOffsetType visitGetElementPtrInst (GetElementPtrInst &I)
 
SizeOffsetType visitPHINode (PHINode &I)
 
SizeOffsetType visitTruncInst (TruncInst &I)
 
SizeOffsetType visitZExtInst (ZExtInst &I)
 
SizeOffsetType visitSExtInst (SExtInst &I)
 
SizeOffsetType visitFPTruncInst (FPTruncInst &I)
 
SizeOffsetType visitFPExtInst (FPExtInst &I)
 
SizeOffsetType visitFPToUIInst (FPToUIInst &I)
 
SizeOffsetType visitFPToSIInst (FPToSIInst &I)
 
SizeOffsetType visitUIToFPInst (UIToFPInst &I)
 
SizeOffsetType visitSIToFPInst (SIToFPInst &I)
 
SizeOffsetType visitPtrToIntInst (PtrToIntInst &I)
 
SizeOffsetType visitIntToPtrInst (IntToPtrInst &I)
 
SizeOffsetType visitBitCastInst (BitCastInst &I)
 
SizeOffsetType visitAddrSpaceCastInst (AddrSpaceCastInst &I)
 
SizeOffsetType visitSelectInst (SelectInst &I)
 
SizeOffsetType visitVAArgInst (VAArgInst &I)
 
SizeOffsetType visitExtractElementInst (ExtractElementInst &I)
 
SizeOffsetType visitInsertElementInst (InsertElementInst &I)
 
SizeOffsetType visitShuffleVectorInst (ShuffleVectorInst &I)
 
SizeOffsetType visitExtractValueInst (ExtractValueInst &I)
 
SizeOffsetType visitInsertValueInst (InsertValueInst &I)
 
SizeOffsetType visitLandingPadInst (LandingPadInst &I)
 
SizeOffsetType visitDbgDeclareInst (DbgDeclareInst &I)
 
SizeOffsetType visitDbgValueInst (DbgValueInst &I)
 
SizeOffsetType visitDbgInfoIntrinsic (DbgInfoIntrinsic &I)
 
SizeOffsetType visitMemSetInst (MemSetInst &I)
 
SizeOffsetType visitMemCpyInst (MemCpyInst &I)
 
SizeOffsetType visitMemMoveInst (MemMoveInst &I)
 
SizeOffsetType visitMemTransferInst (MemTransferInst &I)
 
SizeOffsetType visitMemIntrinsic (MemIntrinsic &I)
 
SizeOffsetType visitVAStartInst (VAStartInst &I)
 
SizeOffsetType visitVAEndInst (VAEndInst &I)
 
SizeOffsetType visitVACopyInst (VACopyInst &I)
 
SizeOffsetType visitIntrinsicInst (IntrinsicInst &I)
 
SizeOffsetType visitCallInst (CallInst &I)
 
SizeOffsetType visitInvokeInst (InvokeInst &I)
 
SizeOffsetType visitCastInst (CastInst &I)
 
SizeOffsetType visitBinaryOperator (BinaryOperator &I)
 
SizeOffsetType visitCmpInst (CmpInst &I)
 
SizeOffsetType visitTerminatorInst (TerminatorInst &I)
 
SizeOffsetType visitUnaryInstruction (UnaryInstruction &I)
 
SizeOffsetType visitCallSite (CallSite CS)
 
void visitInstruction (Instruction &I)
 

Detailed Description

Evaluate the size and offset of an object pointed to by a Value* statically. Fails if size or offset are not known at compile time.

Definition at line 159 of file MemoryBuiltins.h.

Constructor & Destructor Documentation

ObjectSizeOffsetVisitor::ObjectSizeOffsetVisitor ( const DataLayout DL,
const TargetLibraryInfo TLI,
LLVMContext Context,
bool  RoundToAlign = false 
)

Member Function Documentation

bool llvm::ObjectSizeOffsetVisitor::bothKnown ( SizeOffsetType SizeOffset)
inline

Definition at line 189 of file MemoryBuiltins.h.

References knownOffset(), and knownSize().

Referenced by visitGEPOperator(), and visitSelectInst().

SizeOffsetType ObjectSizeOffsetVisitor::compute ( Value V)
bool llvm::ObjectSizeOffsetVisitor::knownOffset ( SizeOffsetType SizeOffset)
inline

Definition at line 185 of file MemoryBuiltins.h.

Referenced by bothKnown().

bool llvm::ObjectSizeOffsetVisitor::knownSize ( SizeOffsetType SizeOffset)
inline

Definition at line 181 of file MemoryBuiltins.h.

Referenced by bothKnown().

SizeOffsetType ObjectSizeOffsetVisitor::visitAllocaInst ( AllocaInst I)
SizeOffsetType ObjectSizeOffsetVisitor::visitArgument ( Argument A)
SizeOffsetType ObjectSizeOffsetVisitor::visitCallSite ( CallSite  CS)
SizeOffsetType ObjectSizeOffsetVisitor::visitConstantPointerNull ( ConstantPointerNull )

Definition at line 519 of file MemoryBuiltins.cpp.

Referenced by compute().

SizeOffsetType ObjectSizeOffsetVisitor::visitExtractElementInst ( ExtractElementInst I)

Definition at line 524 of file MemoryBuiltins.cpp.

SizeOffsetType ObjectSizeOffsetVisitor::visitExtractValueInst ( ExtractValueInst I)

Definition at line 529 of file MemoryBuiltins.cpp.

SizeOffsetType ObjectSizeOffsetVisitor::visitGEPOperator ( GEPOperator GEP)
SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalAlias ( GlobalAlias GA)
SizeOffsetType ObjectSizeOffsetVisitor::visitGlobalVariable ( GlobalVariable GV)
SizeOffsetType ObjectSizeOffsetVisitor::visitInstruction ( Instruction I)

Definition at line 584 of file MemoryBuiltins.cpp.

References llvm::dbgs(), and DEBUG.

SizeOffsetType ObjectSizeOffsetVisitor::visitIntToPtrInst ( IntToPtrInst )

Definition at line 557 of file MemoryBuiltins.cpp.

SizeOffsetType ObjectSizeOffsetVisitor::visitLoadInst ( LoadInst I)

Definition at line 562 of file MemoryBuiltins.cpp.

SizeOffsetType ObjectSizeOffsetVisitor::visitPHINode ( PHINode )

Definition at line 567 of file MemoryBuiltins.cpp.

SizeOffsetType ObjectSizeOffsetVisitor::visitSelectInst ( SelectInst I)
SizeOffsetType ObjectSizeOffsetVisitor::visitUndefValue ( UndefValue )

Definition at line 580 of file MemoryBuiltins.cpp.

Referenced by compute().


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