LLVM: lib/Transforms/ObjCARC/DependencyAnalysis.h Source File (original) (raw)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22#ifndef LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H
23#define LLVM_LIB_TRANSFORMS_OBJCARC_DEPENDENCYANALYSIS_H
24
26
27namespace llvm {
31}
32
33namespace llvm {
35
36class ProvenanceAnalysis;
37
38
39
40
41
42
50
51
52
57
58bool
61
62
63
66
67
68
71
72
73
76
82
83}
84}
85
86#endif
LLVM Basic Block Representation.
LLVM Value Representation.
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...
DependenceKind
Defines different dependence kinds among various ARC constructs.
Definition DependencyAnalysis.h:43
@ CanChangeRetainCount
Definition DependencyAnalysis.h:46
@ RetainAutoreleaseDep
Blocks objc_retainAutorelease.
Definition DependencyAnalysis.h:47
@ AutoreleasePoolBoundary
Definition DependencyAnalysis.h:45
@ NeedsPositiveRetainCount
Definition DependencyAnalysis.h:44
@ RetainAutoreleaseRVDep
Blocks objc_retainAutoreleaseReturnValue.
Definition DependencyAnalysis.h:48
ARCInstKind
Equivalence classes of instructions in the ARC Model.
llvm::Instruction * findSingleDependency(DependenceKind Flavor, const Value *Arg, BasicBlock *StartBB, Instruction *StartInst, ProvenanceAnalysis &PA)
Find dependent instructions.
ARCInstKind GetARCInstKind(const Value *V)
Map V to its ARCInstKind equivalence class.
bool Depends(DependenceKind Flavor, Instruction *Inst, const Value *Arg, ProvenanceAnalysis &PA)
Test if there can be dependencies on Inst through Arg.
bool CanDecrementRefCount(ARCInstKind Kind)
Returns false if conservatively we can prove that any instruction mapped to this kind can not decreme...
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.