LLVM: lib/Transforms/ObjCARC/ProvenanceAnalysis.h Source File (original) (raw)
Go to the documentation of this file.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25#ifndef LLVM_LIB_TRANSFORMS_OBJCARC_PROVENANCEANALYSIS_H
26#define LLVM_LIB_TRANSFORMS_OBJCARC_PROVENANCEANALYSIS_H
27
31#include
32
33namespace llvm {
34
39
41
42
43
44
45
46
47
48
49
50
52 AAResults *AA;
53
54 using ValuePairTy = std::pair<const Value *, const Value *>;
55 using CachedResultsTy = DenseMap<ValuePairTy, bool>;
56
57 CachedResultsTy CachedResults;
58
59 DenseMap<const Value *, std::pair<WeakVH, WeakTrackingVH>>
60 UnderlyingObjCPtrCache;
61
62 bool relatedCheck(const Value *A, const Value *B);
63 bool relatedSelect(const SelectInst *A, const Value *B);
64 bool relatedPHI(const PHINode *A, const Value *B);
65
66public:
70
72
73 AAResults *getAA() const { return AA; }
74
75 bool related(const Value *A, const Value *B);
76
78 CachedResults.clear();
79 UnderlyingObjCPtrCache.clear();
80 }
81};
82
83}
84
85}
86
87#endif
static GCRegistry::Add< ErlangGC > A("erlang", "erlang-compatible garbage collector")
static GCRegistry::Add< OcamlGC > B("ocaml", "ocaml 3.10-compatible GC")
This file defines the DenseMap class.
This header defines various interfaces for pass management in LLVM.
void clear()
Definition ProvenanceAnalysis.h:77
void setAA(AAResults *aa)
Definition ProvenanceAnalysis.h:71
ProvenanceAnalysis(const ProvenanceAnalysis &)=delete
ProvenanceAnalysis & operator=(const ProvenanceAnalysis &)=delete
AAResults * getAA() const
Definition ProvenanceAnalysis.h:73
ProvenanceAnalysis()=default
This class represents the LLVM 'select' instruction.
LLVM Value Representation.
This is an optimization pass for GlobalISel generic memory operations.