LLVM 19.0.0git
Public Member Functions | List of all members
llvm::EarliestEscapeInfo Class Referencefinal

Context-sensitive CaptureInfo provider, which computes and caches the earliest common dominator closure of all captures. More...

#include "llvm/Analysis/AliasAnalysis.h"

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

Public Member Functions

 EarliestEscapeInfo (DominatorTree &DT, const LoopInfo *LI=nullptr)
 
bool isNotCapturedBefore (const Value *Object, const Instruction *I, bool OrAt) override
 Check whether Object is not captured before instruction I.
 
void removeInstruction (Instruction *I)
 
- Public Member Functions inherited from llvm::CaptureInfo
virtual ~CaptureInfo ()=0
 
virtual bool isNotCapturedBefore (const Value *Object, const Instruction *I, bool OrAt)=0
 Check whether Object is not captured before instruction I.
 

Detailed 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.

Definition at line 177 of file AliasAnalysis.h.

Constructor & Destructor Documentation

◆ EarliestEscapeInfo()

llvm::EarliestEscapeInfo::EarliestEscapeInfo ( DominatorTree DT,
const LoopInfo LI = nullptr 
)
inline

Definition at line 192 of file AliasAnalysis.h.

Member Function Documentation

◆ isNotCapturedBefore()

bool EarliestEscapeInfo::isNotCapturedBefore ( const Value Object,
const Instruction I,
bool  OrAt 
)
overridevirtual

Check whether Object is not captured before instruction I.

If OrAt is true, captures by instruction I itself are also considered.

If I is nullptr, then captures at any point will be considered.

Implements llvm::CaptureInfo.

Definition at line 216 of file BasicAliasAnalysis.cpp.

References llvm::FindEarliestCapture(), llvm::BasicBlock::getParent(), llvm::DominatorTreeBase< NodeT, IsPostDom >::getRoot(), I, llvm::isIdentifiedFunctionLocal(), isNotInCycle(), and llvm::isPotentiallyReachable().

◆ removeInstruction()

void EarliestEscapeInfo::removeInstruction ( Instruction I)

Definition at line 250 of file BasicAliasAnalysis.cpp.

References I.

Referenced by llvm::MemoryDependenceResults::removeInstruction().


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