LLVM 22.0.0git
ProvenanceAnalysis.h File Reference

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

Detailed Description

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.