LLVM 22.0.0git
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:
[legend]

Public Member Functions

 EarliestEscapeAnalysis (DominatorTree &DT, const LoopInfo *LI=nullptr)
CaptureComponents getCapturesBefore (const Value *Object, const Instruction *I, bool OrAt) override
 Return how Object may be captured before instruction I, considering only provenance captures.
void removeInstruction (Instruction *I)
Public Member Functions inherited from llvm::CaptureAnalysis
virtual ~CaptureAnalysis ()=0

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 175 of file AliasAnalysis.h.

Constructor & Destructor Documentation

◆ EarliestEscapeAnalysis()

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

Definition at line 192 of file AliasAnalysis.h.

Member Function Documentation

◆ getCapturesBefore()

CaptureComponents EarliestEscapeAnalysis::getCapturesBefore ( const Value * Object,
const Instruction * I,
bool OrAt )
overridevirtual

Return how Object may be captured before instruction I, considering only provenance captures.

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 225 of file BasicAliasAnalysis.cpp.

References llvm::FindEarliestCapture(), I, llvm::isIdentifiedFunctionLocal(), isNotInCycle(), llvm::isPotentiallyReachable(), llvm::None, and llvm::Provenance.

◆ removeInstruction()

void EarliestEscapeAnalysis::removeInstruction ( Instruction * I)

Definition at line 264 of file BasicAliasAnalysis.cpp.

References I.


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