class ObjectSizeOffsetEvaluator
Declaration
class ObjectSizeOffsetEvaluator : public InstVisitor { /* full declaration omitted */ };
Description
Evaluate the size and offset of an object pointed to by a Value*. May create code to compute the result at run-time.
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:248
Inherits from: InstVisitor
Member Variables
- private const llvm::DataLayout& DL
- private const llvm::TargetLibraryInfo* TLI
- private llvm::LLVMContext& Context
- private llvm::ObjectSizeOffsetEvaluator::BuilderTy Builder
- private llvm::IntegerType* IntTy
- private llvm::Value* Zero
- private llvm::ObjectSizeOffsetEvaluator::CacheMapTy CacheMap
- private llvm::ObjectSizeOffsetEvaluator::PtrSetTy SeenVals
- private llvm::ObjectSizeOpts EvalOpts
- private SmallPtrSet<llvm::Instruction*, 8> InsertedInstructions
Method Overview
- public ObjectSizeOffsetEvaluator(const llvm::DataLayout & DL, const llvm::TargetLibraryInfo * TLI, llvm::LLVMContext & Context, llvm::ObjectSizeOpts EvalOpts = {})
- public bool anyKnown(llvm::SizeOffsetEvalType SizeOffset)
- public bool bothKnown(llvm::SizeOffsetEvalType SizeOffset)
- public llvm::SizeOffsetEvalType compute(llvm::Value * V)
- private llvm::SizeOffsetEvalType compute_(llvm::Value * V)
- public bool knownOffset(llvm::SizeOffsetEvalType SizeOffset)
- public bool knownSize(llvm::SizeOffsetEvalType SizeOffset)
- public static llvm::SizeOffsetEvalType unknown()
- public llvm::SizeOffsetEvalType visitAllocaInst(llvm::AllocaInst & I)
- public llvm::SizeOffsetEvalType visitCallBase(llvm::CallBase & CB)
- public llvm::SizeOffsetEvalType visitExtractElementInst(llvm::ExtractElementInst & I)
- public llvm::SizeOffsetEvalType visitExtractValueInst(llvm::ExtractValueInst & I)
- public llvm::SizeOffsetEvalType visitGEPOperator(llvm::GEPOperator & GEP)
- public llvm::SizeOffsetEvalType visitInstruction(llvm::Instruction & I)
- public llvm::SizeOffsetEvalType visitIntToPtrInst(llvm::IntToPtrInst &)
- public llvm::SizeOffsetEvalType visitLoadInst(llvm::LoadInst & I)
- public llvm::SizeOffsetEvalType visitPHINode(llvm::PHINode & PHI)
- public llvm::SizeOffsetEvalType visitSelectInst(llvm::SelectInst & I)
Methods
¶ObjectSizeOffsetEvaluator(
const llvm::DataLayout& DL,
const llvm::TargetLibraryInfo* TLI,
llvm::LLVMContext& Context,
llvm::ObjectSizeOpts EvalOpts = {})
ObjectSizeOffsetEvaluator(
const llvm::DataLayout& DL,
const llvm::TargetLibraryInfo* TLI,
llvm::LLVMContext& Context,
llvm::ObjectSizeOpts EvalOpts = {})
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:273
Parameters
- const llvm::DataLayout& DL
- const llvm::TargetLibraryInfo* TLI
- llvm::LLVMContext& Context
- llvm::ObjectSizeOpts EvalOpts = {}
¶bool anyKnown(llvm::SizeOffsetEvalType SizeOffset)
bool anyKnown(llvm::SizeOffsetEvalType SizeOffset)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:286
Parameters
- llvm::SizeOffsetEvalType SizeOffset
¶bool bothKnown(
llvm::SizeOffsetEvalType SizeOffset)
bool bothKnown(
llvm::SizeOffsetEvalType SizeOffset)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:290
Parameters
- llvm::SizeOffsetEvalType SizeOffset
¶llvm::SizeOffsetEvalType compute(llvm::Value* V)
llvm::SizeOffsetEvalType compute(llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:276
Parameters
- llvm::Value* V
¶llvm::SizeOffsetEvalType compute_(llvm::Value* V)
llvm::SizeOffsetEvalType compute_(llvm::Value* V)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:266
Parameters
- llvm::Value* V
¶bool knownOffset(
llvm::SizeOffsetEvalType SizeOffset)
bool knownOffset(
llvm::SizeOffsetEvalType SizeOffset)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:282
Parameters
- llvm::SizeOffsetEvalType SizeOffset
¶bool knownSize(
llvm::SizeOffsetEvalType SizeOffset)
bool knownSize(
llvm::SizeOffsetEvalType SizeOffset)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:278
Parameters
- llvm::SizeOffsetEvalType SizeOffset
¶static llvm::SizeOffsetEvalType unknown()
static llvm::SizeOffsetEvalType unknown()
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:269
¶llvm::SizeOffsetEvalType visitAllocaInst(
llvm::AllocaInst& I)
llvm::SizeOffsetEvalType visitAllocaInst(
llvm::AllocaInst& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:295
Parameters
¶llvm::SizeOffsetEvalType visitCallBase(
llvm::CallBase& CB)
llvm::SizeOffsetEvalType visitCallBase(
llvm::CallBase& CB)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:296
Parameters
- llvm::CallBase& CB
¶llvm::SizeOffsetEvalType visitExtractElementInst(
llvm::ExtractElementInst& I)
llvm::SizeOffsetEvalType visitExtractElementInst(
llvm::ExtractElementInst& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:297
Parameters
¶llvm::SizeOffsetEvalType visitExtractValueInst(
llvm::ExtractValueInst& I)
llvm::SizeOffsetEvalType visitExtractValueInst(
llvm::ExtractValueInst& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:298
Parameters
¶llvm::SizeOffsetEvalType visitGEPOperator(
llvm::GEPOperator& GEP)
llvm::SizeOffsetEvalType visitGEPOperator(
llvm::GEPOperator& GEP)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:299
Parameters
- llvm::GEPOperator& GEP
¶llvm::SizeOffsetEvalType visitInstruction(
llvm::Instruction& I)
llvm::SizeOffsetEvalType visitInstruction(
llvm::Instruction& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:304
Parameters
¶llvm::SizeOffsetEvalType visitIntToPtrInst(
llvm::IntToPtrInst&)
llvm::SizeOffsetEvalType visitIntToPtrInst(
llvm::IntToPtrInst&)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:300
Parameters
¶llvm::SizeOffsetEvalType visitLoadInst(
llvm::LoadInst& I)
llvm::SizeOffsetEvalType visitLoadInst(
llvm::LoadInst& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:301
Parameters
¶llvm::SizeOffsetEvalType visitPHINode(
llvm::PHINode& PHI)
llvm::SizeOffsetEvalType visitPHINode(
llvm::PHINode& PHI)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:302
Parameters
- llvm::PHINode& PHI
¶llvm::SizeOffsetEvalType visitSelectInst(
llvm::SelectInst& I)
llvm::SizeOffsetEvalType visitSelectInst(
llvm::SelectInst& I)
Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:303