LLVM 19.0.0git
Namespaces | Enumerations | Functions
DependencyAnalysis.h File Reference

This file declares special dependency analysis routines used in Objective C ARC Optimizations. More...

#include "llvm/Analysis/ObjCARCInstKind.h"

Go to the source code of this file.

Namespaces

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

Enumerations

enum  llvm::objcarc::DependenceKind {
  llvm::objcarc::NeedsPositiveRetainCount , llvm::objcarc::AutoreleasePoolBoundary , llvm::objcarc::CanChangeRetainCount , llvm::objcarc::RetainAutoreleaseDep ,
  llvm::objcarc::RetainAutoreleaseRVDep
}
 Defines different dependence kinds among various ARC constructs. More...
 

Functions

llvm::Instructionllvm::objcarc::findSingleDependency (DependenceKind Flavor, const Value *Arg, BasicBlock *StartBB, Instruction *StartInst, ProvenanceAnalysis &PA)
 Find dependent instructions.
 
bool llvm::objcarc::Depends (DependenceKind Flavor, Instruction *Inst, const Value *Arg, ProvenanceAnalysis &PA)
 Test if there can be dependencies on Inst through Arg.
 
bool llvm::objcarc::CanUse (const Instruction *Inst, const Value *Ptr, ProvenanceAnalysis &PA, ARCInstKind Class)
 Test whether the given instruction can "use" the given pointer's object in a way that requires the reference count to be positive.
 
bool llvm::objcarc::CanAlterRefCount (const Instruction *Inst, const Value *Ptr, ProvenanceAnalysis &PA, ARCInstKind Class)
 Test whether the given instruction can result in a reference count modification (positive or negative) for the pointer's object.
 
bool llvm::objcarc::CanDecrementRefCount (const Instruction *Inst, const Value *Ptr, ProvenanceAnalysis &PA, ARCInstKind Class)
 Returns true if we can not conservatively prove that Inst can not decrement the reference count of Ptr.
 
static bool llvm::objcarc::CanDecrementRefCount (const Instruction *Inst, const Value *Ptr, ProvenanceAnalysis &PA)
 

Detailed Description

This file declares special dependency analysis routines used in Objective C ARC Optimizations.

WARNING: This file knows about certain library functions. It recognizes them by name, and hardwires knowledge of their semantics.

WARNING: This file knows about how certain Objective-C library functions are used. Naive LLVM IR transformations which would otherwise be behavior-preserving may break these assumptions.

Definition in file DependencyAnalysis.h.