LLVM API Documentation

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

Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time. More...

#include <MemoryBuiltins.h>

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

Public Member Functions

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

Detailed Description

Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time.

Definition at line 215 of file MemoryBuiltins.h.

Constructor & Destructor Documentation

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

Member Function Documentation

bool llvm::ObjectSizeOffsetEvaluator::anyKnown ( SizeOffsetEvalType  SizeOffset)
inline

Definition at line 251 of file MemoryBuiltins.h.

References knownOffset(), and knownSize().

Referenced by compute().

bool llvm::ObjectSizeOffsetEvaluator::bothKnown ( SizeOffsetEvalType  SizeOffset)
inline

Definition at line 255 of file MemoryBuiltins.h.

References knownOffset(), and knownSize().

Referenced by compute(), visitGEPOperator(), visitPHINode(), and visitSelectInst().

SizeOffsetEvalType ObjectSizeOffsetEvaluator::compute ( Value V)
bool llvm::ObjectSizeOffsetEvaluator::knownOffset ( SizeOffsetEvalType  SizeOffset)
inline

Definition at line 247 of file MemoryBuiltins.h.

Referenced by anyKnown(), and bothKnown().

bool llvm::ObjectSizeOffsetEvaluator::knownSize ( SizeOffsetEvalType  SizeOffset)
inline

Definition at line 243 of file MemoryBuiltins.h.

Referenced by anyKnown(), and bothKnown().

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitAllocaInst ( AllocaInst I)
SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitCallSite ( CallSite  CS)
SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitExtractElementInst ( ExtractElementInst I)

Definition at line 716 of file MemoryBuiltins.cpp.

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitExtractValueInst ( ExtractValueInst I)

Definition at line 721 of file MemoryBuiltins.cpp.

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitGEPOperator ( GEPOperator GEP)
SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitInstruction ( Instruction I)

Definition at line 799 of file MemoryBuiltins.cpp.

References llvm::dbgs(), and DEBUG.

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitIntToPtrInst ( IntToPtrInst )

Definition at line 736 of file MemoryBuiltins.cpp.

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitLoadInst ( LoadInst I)

Definition at line 741 of file MemoryBuiltins.cpp.

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode ( PHINode PHI)
SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitSelectInst ( SelectInst I)

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