class EarliestEscapeInfo

Declaration

class EarliestEscapeInfo : public CaptureInfo { /* full declaration omitted */ };

Description

Context-sensitive CaptureInfo provider, which computes and caches the earliest common dominator closure of all captures. It provides a good approximation to a precise "captures before" analysis.

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:402

Inherits from: CaptureInfo

Member Variables

private llvm::DominatorTree& DT
private const llvm::LoopInfo& LI
private DenseMap<const llvm::Value*, llvm::Instruction*> EarliestEscapes
Map from identified local object to an instruction before which it does not escape, or nullptr if it never escapes. The "earliest" instruction may be a conservative approximation, e.g. the first instruction in the function is always a legal choice.
private DenseMap<llvm::Instruction*, TinyPtrVector<const llvm::Value*>> Inst2Obj
Reverse map from instruction to the objects it is the earliest escape for. This is used for cache invalidation purposes.
private const SmallPtrSetImpl<const llvm::Value*>& EphValues

Method Overview

Inherited from CaptureInfo:

Methods

EarliestEscapeInfo(
    llvm::DominatorTree& DT,
    const llvm::LoopInfo& LI,
    const SmallPtrSetImpl<const llvm::Value*>&
        EphValues)

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:419

Parameters

llvm::DominatorTree& DT
const llvm::LoopInfo& LI
const SmallPtrSetImpl<const llvm::Value*>& EphValues

bool isNotCapturedBeforeOrAt(
    const llvm::Value* Object,
    const llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:423

Parameters

const llvm::Value* Object
const llvm::Instruction* I

void removeInstruction(llvm::Instruction* I)

Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:426

Parameters

llvm::Instruction* I