LLVM 20.0.0git
Functions
ProvenanceAnalysis.cpp File Reference

This file defines a special form of Alias Analysis called Provenance Analysis''. More...

#include "ProvenanceAnalysis.h"
#include "llvm/ADT/SmallPtrSet.h"
#include "llvm/ADT/SmallVector.h"
#include "llvm/Analysis/AliasAnalysis.h"
#include "llvm/Analysis/ObjCARCAnalysisUtils.h"
#include "llvm/IR/Instructions.h"
#include "llvm/IR/Module.h"
#include "llvm/IR/Use.h"
#include "llvm/IR/User.h"
#include "llvm/IR/Value.h"
#include "llvm/Support/Casting.h"
#include <utility>

Go to the source code of this file.

Functions

static bool IsStoredObjCPointer (const Value *P)
 Test if the value of P, or any value covered by its provenance, is ever stored within the function (not counting callees).
 

Detailed Description

This file defines a special form of Alias Analysis called Provenance Analysis''.

The wordprovenance'' 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.

Definition in file ProvenanceAnalysis.cpp.

Function Documentation

◆ IsStoredObjCPointer()

static bool IsStoredObjCPointer ( const Value P)
static

Test if the value of P, or any value covered by its provenance, is ever stored within the function (not counting callees).

Definition at line 81 of file ProvenanceAnalysis.cpp.

References llvm::SmallVectorBase< Size_T >::empty(), llvm::SmallPtrSetImpl< PtrType >::insert(), P, llvm::SmallVectorImpl< T >::pop_back_val(), and llvm::SmallVectorTemplateBase< T, bool >::push_back().