LLVM 20.0.0git
|
Context-sensitive CaptureAnalysis provider, which computes and caches the earliest common dominator closure of all captures. More...
#include "llvm/Analysis/AliasAnalysis.h"
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. | |
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.
|
inline |
Definition at line 188 of file AliasAnalysis.h.
|
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().
void EarliestEscapeAnalysis::removeInstruction | ( | Instruction * | I | ) |
Definition at line 246 of file BasicAliasAnalysis.cpp.
References I.
Referenced by llvm::MemoryDependenceResults::removeInstruction().