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 = {})

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:286

Parameters

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:276

Parameters

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:282

Parameters

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()

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:269

llvm::SizeOffsetEvalType visitAllocaInst(
    llvm::AllocaInst& I)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:295

Parameters

llvm::AllocaInst& I

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:297

Parameters

llvm::ExtractElementInst& I

llvm::SizeOffsetEvalType visitExtractValueInst(
    llvm::ExtractValueInst& I)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:298

Parameters

llvm::ExtractValueInst& I

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:304

Parameters

llvm::Instruction& I

llvm::SizeOffsetEvalType visitIntToPtrInst(
    llvm::IntToPtrInst&)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:300

Parameters

llvm::IntToPtrInst&

llvm::SizeOffsetEvalType visitLoadInst(
    llvm::LoadInst& I)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:301

Parameters

llvm::LoadInst& I

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)

Declared at: llvm/include/llvm/Analysis/MemoryBuiltins.h:303

Parameters

llvm::SelectInst& I