class ProvenanceAnalysis
Declaration
class ProvenanceAnalysis { /* full declaration omitted */ };
Description
This is similar to BasicAliasAnalysis, and it uses many of the same techniques, except it uses special ObjC-specific reasoning about pointer relationships. In this context ``Provenance'' is defined as the history of an object's ownership. Thus ``Provenance Analysis'' is defined by using the notion of an ``independent provenance source'' of a pointer to determine whether or not two pointers have the same provenance source and thus could potentially be related.
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:50
Member Variables
- private llvm::AAResults* AA
- private llvm::objcarc::ProvenanceAnalysis::CachedResultsTy CachedResults
- private DenseMap<const llvm::Value*, std::pair<WeakVH, WeakTrackingVH>> UnderlyingObjCPtrCache
Method Overview
- public ProvenanceAnalysis()
- public ProvenanceAnalysis(const llvm::objcarc::ProvenanceAnalysis &)
- public void clear()
- public llvm::AAResults * getAA() const
- public bool related(const llvm::Value * A, const llvm::Value * B)
- private bool relatedCheck(const llvm::Value * A, const llvm::Value * B)
- private bool relatedPHI(const llvm::PHINode * A, const llvm::Value * B)
- private bool relatedSelect(const llvm::SelectInst * A, const llvm::Value * B)
- public void setAA(llvm::AAResults * aa)
Methods
¶ProvenanceAnalysis()
ProvenanceAnalysis()
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:66
¶ProvenanceAnalysis(
const llvm::objcarc::ProvenanceAnalysis&)
ProvenanceAnalysis(
const llvm::objcarc::ProvenanceAnalysis&)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:67
Parameters
¶void clear()
void clear()
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:76
¶llvm::AAResults* getAA() const
llvm::AAResults* getAA() const
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:72
¶bool related(const llvm::Value* A,
const llvm::Value* B)
bool related(const llvm::Value* A,
const llvm::Value* B)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:74
Parameters
- const llvm::Value* A
- const llvm::Value* B
¶bool relatedCheck(const llvm::Value* A,
const llvm::Value* B)
bool relatedCheck(const llvm::Value* A,
const llvm::Value* B)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:61
Parameters
- const llvm::Value* A
- const llvm::Value* B
¶bool relatedPHI(const llvm::PHINode* A,
const llvm::Value* B)
bool relatedPHI(const llvm::PHINode* A,
const llvm::Value* B)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:63
Parameters
- const llvm::PHINode* A
- const llvm::Value* B
¶bool relatedSelect(const llvm::SelectInst* A,
const llvm::Value* B)
bool relatedSelect(const llvm::SelectInst* A,
const llvm::Value* B)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:62
Parameters
- const llvm::SelectInst* A
- const llvm::Value* B
¶void setAA(llvm::AAResults* aa)
void setAA(llvm::AAResults* aa)
Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:70
Parameters
- llvm::AAResults* aa