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:51

Method Overview

  • public ProvenanceAnalysis()
  • public ProvenanceAnalysis(const llvm::objcarc::ProvenanceAnalysis &)
  • public void clear()
  • public llvm::AliasAnalysis * getAA() const
  • public bool related(const llvm::Value * A, const llvm::Value * B, const llvm::DataLayout & DL)
  • public void setAA(llvm::AliasAnalysis * aa)

Methods

ProvenanceAnalysis()

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:66

ProvenanceAnalysis(
    const llvm::objcarc::ProvenanceAnalysis&)

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:67

Parameters

const llvm::objcarc::ProvenanceAnalysis&

void clear()

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:76

llvm::AliasAnalysis* getAA() const

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:72

bool related(const llvm::Value* A,
             const llvm::Value* B,
             const llvm::DataLayout& DL)

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:74

Parameters

const llvm::Value* A
const llvm::Value* B
const llvm::DataLayout& DL

void setAA(llvm::AliasAnalysis* aa)

Declared at: llvm/lib/Transforms/ObjCARC/ProvenanceAnalysis.h:70

Parameters

llvm::AliasAnalysis* aa