38 std::set<const Value*> Vals;
46 bool runOnModule(
Module &M)
override {
53 OE =
I->op_end(); OI != OE; ++OI)
58 E = M.
end();
I != E; ++
I){
60 if(!
I->isDeclaration()) {
70 OE = BI->op_end(); OI != OE; ++OI)
88 void *getAdjustedAnalysisPointer(
AnalysisID PI)
override {
99 assert(Vals.find(LocA.
Ptr) != Vals.end() &&
100 "Never seen value in AA before");
101 assert(Vals.find(LocB.
Ptr) != Vals.end() &&
102 "Never seen value in AA before");
108 assert(Vals.find(Loc.
Ptr) != Vals.end() &&
"Never seen value in AA before");
118 bool OrLocal)
override {
119 assert(Vals.find(Loc.
Ptr) != Vals.end() &&
"Never seen value in AA before");
123 void deleteValue(
Value *V)
override {
124 assert(Vals.find(V) != Vals.end() &&
"Never seen value in AA before");
133 "AA use debugger",
false,
true,
false)
Pass interface - Implemented by all 'passes'.
static PassRegistry * getPassRegistry()
getPassRegistry - Access the global registry object, which is automatically initialized at applicatio...
A Module instance is used to store all the information related to an LLVM module. ...
virtual bool pointsToConstantMemory(const MemoryLocation &Loc, bool OrLocal=false)
pointsToConstantMemory - If the specified memory location is known to be constant, return true.
A Use represents the edge between a Value definition and its users.
INITIALIZE_AG_PASS(AliasDebugger, AliasAnalysis,"debug-aa","AA use debugger", false, true, false) Pass *llvm
global_iterator global_begin()
void initializeAliasDebuggerPass(PassRegistry &)
This file contains the declarations for the subclasses of Constant, which represent the different fla...
AliasResult
The possible results of an alias query.
Represent the analysis usage information of a pass.
virtual void deleteValue(Value *V)
Methods that clients should call when they transform the program to allow alias analyses to update th...
global_iterator global_end()
const Value * Ptr
The address of the start of the location.
Representation for a specific memory location.
virtual AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB)
Alias Queries...
Module.h This file contains the declarations for the Module class.
ModRefResult getModRefInfo(const Instruction *I)
getModRefInfo - Return information about whether or not an instruction may read or write memory (with...
void setPreservesAll()
Set by analyses that do not transform their input at all.
const DataLayout & getDataLayout() const
Get the data layout for the module's target platform.
ImmutableCallSite - establish a view to a call site for examination.
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
Pass * createAliasDebugger()
LLVM Value Representation.
virtual void getAnalysisUsage(AnalysisUsage &AU) const
getAnalysisUsage - All alias analysis implementations should invoke this directly (using AliasAnalysi...