21 using namespace llvm::objcarc;
57 for (
auto &Arg : F.
args())
63 for (
auto &Op :
I->operands())
68 PA.
setAA(&getAnalysis<AliasAnalysis>());
71 for (
Value *V1 : Values) {
77 errs() << NameV1 <<
" and " << NameV2;
79 errs() <<
" are related.\n";
81 errs() <<
" are not related.\n";
91 "Evaluate ProvenanceAnalysis on all pairs",
false,
true)
A parsed version of the target data layout string in and methods for querying it. ...
raw_ostream & errs()
This returns a reference to a raw_ostream for standard error.
StringRef substr(size_t Start, size_t N=npos) const
Return a reference to the substring from [Start, Start + N).
StringRef getName() const
Return a constant reference to the value's name.
AnalysisUsage & addRequired()
inst_iterator inst_begin(Function *F)
#define INITIALIZE_PASS_END(passName, arg, name, cfg, analysis)
static StringRef getName(Value *V)
bool insert(const value_type &X)
Insert a new element into the SetVector.
Represent the analysis usage information of a pass.
void setAA(AliasAnalysis *aa)
FunctionPass class - This class is used to implement most global optimizations.
#define INITIALIZE_AG_DEPENDENCY(depName)
bool startswith(StringRef Prefix) const
Check if this string starts with the given Prefix.
This file declares a special form of Alias Analysis called ``Provenance Analysis''.
Module.h This file contains the declarations for the Module class.
static void insertIfNamed(SetVector< Value * > &Values, Value *V)
FunctionPass * createPAEvalPass()
bool related(const Value *A, const Value *B, const DataLayout &DL)
const DataLayout & getDataLayout() const
Get the data layout for the module's target platform.
pa Evaluate ProvenanceAnalysis on all pairs
pa Evaluate ProvenanceAnalysis on all false
Module * getParent()
Get the module that this global value is contained inside of...
LLVM Value Representation.
A vector that has set insertion semantics.
This is similar to BasicAliasAnalysis, and it uses many of the same techniques, except it uses specia...
StringRef - Represent a constant reference to a string, i.e.
inst_iterator inst_end(Function *F)
INITIALIZE_PASS_BEGIN(PAEval,"pa-eval","Evaluate ProvenanceAnalysis on all pairs", false, true) INITIALIZE_PASS_END(PAEval
iterator_range< arg_iterator > args()