LLVM: llvm::ObjectSizeOffsetEvaluator Class Reference (original) (raw)

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

#include "[llvm/Analysis/MemoryBuiltins.h](MemoryBuiltins%5F8h%5Fsource.html)"

Inheritance diagram for llvm::ObjectSizeOffsetEvaluator:

Public Member Functions
LLVM_ABI ObjectSizeOffsetEvaluator (const DataLayout &DL, const TargetLibraryInfo *TLI, LLVMContext &Context, ObjectSizeOpts EvalOpts={})
LLVM_ABI SizeOffsetValue compute (Value *V)
LLVM_ABI SizeOffsetValue visitAllocaInst (AllocaInst &I)
LLVM_ABI SizeOffsetValue visitCallBase (CallBase &CB)
LLVM_ABI SizeOffsetValue visitExtractElementInst (ExtractElementInst &I)
LLVM_ABI SizeOffsetValue visitExtractValueInst (ExtractValueInst &I)
LLVM_ABI SizeOffsetValue visitGEPOperator (GEPOperator &GEP)
LLVM_ABI SizeOffsetValue visitIntToPtrInst (IntToPtrInst &)
LLVM_ABI SizeOffsetValue visitLoadInst (LoadInst &I)
LLVM_ABI SizeOffsetValue visitPHINode (PHINode &PHI)
LLVM_ABI SizeOffsetValue visitSelectInst (SelectInst &I)
LLVM_ABI SizeOffsetValue visitInstruction (Instruction &I)
Public Member Functions inherited from llvm::InstVisitor< ObjectSizeOffsetEvaluator, SizeOffsetValue >
void visit (Iterator Start, Iterator End)
void visitModule (Module &M)
void visitFunction (Function &F)
void visitBasicBlock (BasicBlock &BB)
SizeOffsetValue visitICmpInst (ICmpInst &I)
SizeOffsetValue visitFCmpInst (FCmpInst &I)
SizeOffsetValue visitAllocaInst (AllocaInst &I)
SizeOffsetValue visitLoadInst (LoadInst &I)
SizeOffsetValue visitStoreInst (StoreInst &I)
SizeOffsetValue visitAtomicCmpXchgInst (AtomicCmpXchgInst &I)
SizeOffsetValue visitAtomicRMWInst (AtomicRMWInst &I)
SizeOffsetValue visitFenceInst (FenceInst &I)
SizeOffsetValue visitGetElementPtrInst (GetElementPtrInst &I)
SizeOffsetValue visitPHINode (PHINode &I)
SizeOffsetValue visitTruncInst (TruncInst &I)
SizeOffsetValue visitZExtInst (ZExtInst &I)
SizeOffsetValue visitSExtInst (SExtInst &I)
SizeOffsetValue visitFPTruncInst (FPTruncInst &I)
SizeOffsetValue visitFPExtInst (FPExtInst &I)
SizeOffsetValue visitFPToUIInst (FPToUIInst &I)
SizeOffsetValue visitFPToSIInst (FPToSIInst &I)
SizeOffsetValue visitUIToFPInst (UIToFPInst &I)
SizeOffsetValue visitSIToFPInst (SIToFPInst &I)
SizeOffsetValue visitPtrToIntInst (PtrToIntInst &I)
SizeOffsetValue visitPtrToAddrInst (PtrToAddrInst &I)
SizeOffsetValue visitIntToPtrInst (IntToPtrInst &I)
SizeOffsetValue visitBitCastInst (BitCastInst &I)
SizeOffsetValue visitAddrSpaceCastInst (AddrSpaceCastInst &I)
SizeOffsetValue visitSelectInst (SelectInst &I)
SizeOffsetValue visitVAArgInst (VAArgInst &I)
SizeOffsetValue visitExtractElementInst (ExtractElementInst &I)
SizeOffsetValue visitInsertElementInst (InsertElementInst &I)
SizeOffsetValue visitShuffleVectorInst (ShuffleVectorInst &I)
SizeOffsetValue visitExtractValueInst (ExtractValueInst &I)
SizeOffsetValue visitInsertValueInst (InsertValueInst &I)
SizeOffsetValue visitLandingPadInst (LandingPadInst &I)
SizeOffsetValue visitFuncletPadInst (FuncletPadInst &I)
SizeOffsetValue visitCleanupPadInst (CleanupPadInst &I)
SizeOffsetValue visitCatchPadInst (CatchPadInst &I)
SizeOffsetValue visitFreezeInst (FreezeInst &I)
SizeOffsetValue visitMemSetInst (MemSetInst &I)
SizeOffsetValue visitMemSetPatternInst (MemSetPatternInst &I)
SizeOffsetValue visitMemCpyInst (MemCpyInst &I)
SizeOffsetValue visitMemMoveInst (MemMoveInst &I)
SizeOffsetValue visitMemTransferInst (MemTransferInst &I)
SizeOffsetValue visitMemIntrinsic (MemIntrinsic &I)
SizeOffsetValue visitVAStartInst (VAStartInst &I)
SizeOffsetValue visitVAEndInst (VAEndInst &I)
SizeOffsetValue visitVACopyInst (VACopyInst &I)
SizeOffsetValue visitIntrinsicInst (IntrinsicInst &I)
SizeOffsetValue visitCallInst (CallInst &I)
SizeOffsetValue visitInvokeInst (InvokeInst &I)
SizeOffsetValue visitCallBrInst (CallBrInst &I)
SizeOffsetValue visitReturnInst (ReturnInst &I)
SizeOffsetValue visitBranchInst (BranchInst &I)
SizeOffsetValue visitSwitchInst (SwitchInst &I)
SizeOffsetValue visitIndirectBrInst (IndirectBrInst &I)
SizeOffsetValue visitResumeInst (ResumeInst &I)
SizeOffsetValue visitUnreachableInst (UnreachableInst &I)
SizeOffsetValue visitCleanupReturnInst (CleanupReturnInst &I)
SizeOffsetValue visitCatchReturnInst (CatchReturnInst &I)
SizeOffsetValue visitCatchSwitchInst (CatchSwitchInst &I)
SizeOffsetValue visitTerminator (Instruction &I)
SizeOffsetValue visitCastInst (CastInst &I)
SizeOffsetValue visitUnaryOperator (UnaryOperator &I)
SizeOffsetValue visitBinaryOperator (BinaryOperator &I)
SizeOffsetValue visitCmpInst (CmpInst &I)
SizeOffsetValue visitUnaryInstruction (UnaryInstruction &I)
SizeOffsetValue visitCallBase (CallBase &I)
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 345 of file MemoryBuiltins.h.

Constructor & Destructor Documentation

Member Function Documentation

compute()

unknown()

Definition at line 371 of file MemoryBuiltins.h.

Referenced by llvm::lowerObjectSizeCall(), visitAllocaInst(), visitCallBase(), visitExtractElementInst(), visitExtractValueInst(), visitGEPOperator(), visitInstruction(), visitIntToPtrInst(), visitLoadInst(), visitPHINode(), and visitSelectInst().

visitAllocaInst()

visitCallBase()

visitExtractElementInst()

visitExtractValueInst()

visitGEPOperator()

visitInstruction()

visitIntToPtrInst()

visitLoadInst()

visitPHINode()

Definition at line 1412 of file MemoryBuiltins.cpp.

References llvm::PHINode::addIncoming(), llvm::SizeOffsetType< T, C >::bothKnown(), llvm::Instruction::eraseFromParent(), llvm::PoisonValue::get(), llvm::BasicBlock::getFirstInsertionPt(), llvm::PHINode::hasConstantValue(), llvm::Offset, llvm::SizeOffsetType< T, C >::Offset, PHI, llvm::Value::replaceAllUsesWith(), Size, llvm::SizeOffsetType< T, C >::Size, and unknown().

visitSelectInst()


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