Go to the documentation of this file.
22 #ifndef LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H
23 #define LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H
37 class ProvenanceAnalysis;
57 ProvenanceAnalysis &PA);
61 ProvenanceAnalysis &PA);
bool 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 re...
This is an optimization pass for GlobalISel generic memory operations.
@ NeedsPositiveRetainCount
@ RetainAutoreleaseDep
Blocks objc_retainAutorelease.
This is similar to BasicAliasAnalysis, and it uses many of the same techniques, except it uses specia...
ARCInstKind GetARCInstKind(const Value *V)
Map V to its ARCInstKind equivalence class.
LLVM Basic Block Representation.
amdgpu Simplify well known AMD library false FunctionCallee Value * Arg
bool Depends(DependenceKind Flavor, Instruction *Inst, const Value *Arg, ProvenanceAnalysis &PA)
Test if there can be dependencies on Inst through Arg.
@ BasicBlock
Various leaf nodes.
@ RetainAutoreleaseRVDep
Blocks objc_retainAutoreleaseReturnValue.
llvm::Instruction * findSingleDependency(DependenceKind Flavor, const Value *Arg, BasicBlock *StartBB, Instruction *StartInst, ProvenanceAnalysis &PA)
Find dependent instructions.
bool CanDecrementRefCount(ARCInstKind Kind)
Returns false if conservatively we can prove that any instruction mapped to this kind can not decreme...
bool 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...
LLVM Value Representation.
@ AutoreleasePoolBoundary