LLVM 22.0.0git
|
This file declares a special form of Alias Analysis called Provenance / Analysis''. More...
#include "llvm/ADT/DenseMap.h"
#include "llvm/IR/PassManager.h"
#include "llvm/IR/ValueHandle.h"
#include <utility>
Go to the source code of this file.
Classes | |
class | ProvenanceAnalysis |
This file declares a special form of Alias Analysis called Provenance / Analysis''.
The word provenance'' refers to the history of the ownership / of an object. Thus `‘Provenance Analysis’' is an analysis which attempts to / use various techniques to determine if locally / / 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.
===-------------------------------------------------------------------—===//
namespace llvm {
class AAResults; class PHINode; class SelectInst; class Value;
namespace objcarc {
/ 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.
Definition in file ProvenanceAnalysis.h.