LLVM 18.0.0git
Public Member Functions | Static Public Member Functions | List of all members
llvm::ObjectSizeOffsetEvaluator Class Reference

Evaluate the size and offset of an object pointed to by a Value*. More...

#include "llvm/Analysis/MemoryBuiltins.h"

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

Public Member Functions

 ObjectSizeOffsetEvaluator (const DataLayout &DL, const TargetLibraryInfo *TLI, LLVMContext &Context, ObjectSizeOpts EvalOpts={})
 
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 visitCallBase (CallBase &CB)
 
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 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 visitFuncletPadInst (FuncletPadInst &I)
 
SizeOffsetEvalType visitCleanupPadInst (CleanupPadInst &I)
 
SizeOffsetEvalType visitCatchPadInst (CatchPadInst &I)
 
SizeOffsetEvalType visitFreezeInst (FreezeInst &I)
 
SizeOffsetEvalType visitDbgDeclareInst (DbgDeclareInst &I)
 
SizeOffsetEvalType visitDbgValueInst (DbgValueInst &I)
 
SizeOffsetEvalType visitDbgVariableIntrinsic (DbgVariableIntrinsic &I)
 
SizeOffsetEvalType visitDbgLabelInst (DbgLabelInst &I)
 
SizeOffsetEvalType visitDbgInfoIntrinsic (DbgInfoIntrinsic &I)
 
SizeOffsetEvalType visitMemSetInst (MemSetInst &I)
 
SizeOffsetEvalType visitMemSetInlineInst (MemSetInlineInst &I)
 
SizeOffsetEvalType visitMemCpyInst (MemCpyInst &I)
 
SizeOffsetEvalType visitMemCpyInlineInst (MemCpyInlineInst &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 visitCallBrInst (CallBrInst &I)
 
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 visitCleanupReturnInst (CleanupReturnInst &I)
 
SizeOffsetEvalType visitCatchReturnInst (CatchReturnInst &I)
 
SizeOffsetEvalType visitCatchSwitchInst (CatchSwitchInst &I)
 
SizeOffsetEvalType visitTerminator (Instruction &I)
 
SizeOffsetEvalType visitCastInst (CastInst &I)
 
SizeOffsetEvalType visitUnaryOperator (UnaryOperator &I)
 
SizeOffsetEvalType visitBinaryOperator (BinaryOperator &I)
 
SizeOffsetEvalType visitCmpInst (CmpInst &I)
 
SizeOffsetEvalType visitUnaryInstruction (UnaryInstruction &I)
 
SizeOffsetEvalType visitCallBase (CallBase &I)
 
void visitInstruction (Instruction &I)
 

Static Public Member Functions

static SizeOffsetEvalType unknown ()
 

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 260 of file MemoryBuiltins.h.

Constructor & Destructor Documentation

◆ ObjectSizeOffsetEvaluator()

ObjectSizeOffsetEvaluator::ObjectSizeOffsetEvaluator ( const DataLayout DL,
const TargetLibraryInfo TLI,
LLVMContext Context,
ObjectSizeOpts  EvalOpts = {} 
)

Definition at line 1035 of file MemoryBuiltins.cpp.

References Context, and I.

Member Function Documentation

◆ anyKnown()

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

Definition at line 298 of file MemoryBuiltins.h.

References knownOffset(), and knownSize().

Referenced by compute().

◆ bothKnown()

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

◆ compute()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::compute ( Value V)

◆ knownOffset()

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

Definition at line 294 of file MemoryBuiltins.h.

Referenced by anyKnown(), and bothKnown().

◆ knownSize()

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

Definition at line 290 of file MemoryBuiltins.h.

Referenced by anyKnown(), and bothKnown().

◆ unknown()

static SizeOffsetEvalType llvm::ObjectSizeOffsetEvaluator::unknown ( )
inlinestatic

◆ visitAllocaInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitAllocaInst ( AllocaInst I)

◆ visitCallBase()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitCallBase ( CallBase CB)

◆ visitExtractElementInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitExtractElementInst ( ExtractElementInst I)

Definition at line 1172 of file MemoryBuiltins.cpp.

References unknown().

◆ visitExtractValueInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitExtractValueInst ( ExtractValueInst I)

Definition at line 1177 of file MemoryBuiltins.cpp.

References unknown().

◆ visitGEPOperator()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitGEPOperator ( GEPOperator GEP)

◆ visitInstruction()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitInstruction ( Instruction I)

Definition at line 1260 of file MemoryBuiltins.cpp.

References llvm::dbgs(), I, LLVM_DEBUG, and unknown().

◆ visitIntToPtrInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitIntToPtrInst ( IntToPtrInst )

Definition at line 1192 of file MemoryBuiltins.cpp.

References unknown().

◆ visitLoadInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitLoadInst ( LoadInst I)

Definition at line 1197 of file MemoryBuiltins.cpp.

References unknown().

◆ visitPHINode()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitPHINode ( PHINode PHI)

◆ visitSelectInst()

SizeOffsetEvalType ObjectSizeOffsetEvaluator::visitSelectInst ( SelectInst I)

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