LLVM 19.0.0git
Classes | Namespaces | Enumerations | Functions
CaptureTracking.h File Reference
#include "llvm/ADT/DenseMap.h"
#include "llvm/ADT/STLFunctionalExtras.h"

Go to the source code of this file.

Classes

struct  llvm::CaptureTracker
 This callback is used in conjunction with PointerMayBeCaptured. More...
 

Namespaces

namespace  llvm
 This is an optimization pass for GlobalISel generic memory operations.
 

Enumerations

enum class  llvm::UseCaptureKind { llvm::NO_CAPTURE , llvm::MAY_CAPTURE , llvm::PASSTHROUGH }
 Types of use capture kinds, see DetermineUseCaptureKind. More...
 

Functions

unsigned llvm::getDefaultMaxUsesToExploreForCaptureTracking ()
 getDefaultMaxUsesToExploreForCaptureTracking - Return default value of the maximal number of uses to explore before giving up.
 
bool llvm::PointerMayBeCaptured (const Value *V, bool ReturnCaptures, bool StoreCaptures, unsigned MaxUsesToExplore=0)
 PointerMayBeCaptured - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
 
bool llvm::PointerMayBeCapturedBefore (const Value *V, bool ReturnCaptures, bool StoreCaptures, const Instruction *I, const DominatorTree *DT, bool IncludeI=false, unsigned MaxUsesToExplore=0, const LoopInfo *LI=nullptr)
 PointerMayBeCapturedBefore - Return true if this pointer value may be captured by the enclosing function (which is required to exist).
 
Instructionllvm::FindEarliestCapture (const Value *V, Function &F, bool ReturnCaptures, bool StoreCaptures, const DominatorTree &DT, unsigned MaxUsesToExplore=0)
 
UseCaptureKind llvm::DetermineUseCaptureKind (const Use &U, llvm::function_ref< bool(Value *, const DataLayout &)> IsDereferenceableOrNull)
 Determine what kind of capture behaviour U may exhibit.
 
void llvm::PointerMayBeCaptured (const Value *V, CaptureTracker *Tracker, unsigned MaxUsesToExplore=0)
 PointerMayBeCaptured - Visit the value and the values derived from it and find values which appear to be capturing the pointer value.
 
bool llvm::isNonEscapingLocalObject (const Value *V, SmallDenseMap< const Value *, bool, 8 > *IsCapturedCache=nullptr)
 Returns true if the pointer is to a function-local object that never escapes from the function.