LLVM 20.0.0git
Public Member Functions | List of all members
llvm::EarliestEscapeAnalysis Class Referencefinal

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

#include "llvm/Analysis/AliasAnalysis.h"

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

Public Member Functions

 EarliestEscapeAnalysis (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::CaptureAnalysis
virtual ~CaptureAnalysis ()=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 CaptureAnalysis 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 173 of file AliasAnalysis.h.

Constructor & Destructor Documentation

◆ EarliestEscapeAnalysis()

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

Definition at line 188 of file AliasAnalysis.h.

Member Function Documentation

◆ isNotCapturedBefore()

bool EarliestEscapeAnalysis::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::CaptureAnalysis.

Definition at line 213 of file BasicAliasAnalysis.cpp.

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

◆ removeInstruction()

void EarliestEscapeAnalysis::removeInstruction ( Instruction I)

Definition at line 246 of file BasicAliasAnalysis.cpp.

References I.

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


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