14 #ifndef LLVM_ANALYSIS_GLOBALSMODREF_H
15 #define LLVM_ANALYSIS_GLOBALSMODREF_H
60 struct DeletionCallbackHandle final :
CallbackVH {
62 std::list<DeletionCallbackHandle>::iterator
I;
67 void deleted()
override;
74 std::list<DeletionCallbackHandle> Handles;
106 void AnalyzeGlobals(
Module &M);
108 bool AnalyzeUsesOfPointer(
Value *V,
113 void CollectSCCMembership(
CallGraph &CG);
133 std::unique_ptr<GlobalsAAResult> Result;
Legacy wrapper pass to provide the GlobalsAAResult object.
A parsed version of the target data layout string in and methods for querying it. ...
bool doFinalization(Module &M) override
doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes...
A Module instance is used to store all the information related to an LLVM module. ...
The mod/ref information collected for a particular function.
A templated base class for SmallPtrSet which provides the typesafe interface that is common across al...
ModRefInfo
Flags indicating whether a memory access modifies or references memory.
A CRTP-driven "mixin" base class to help implement the function alias analysis results concept...
static GlobalsAAResult analyzeModule(Module &M, const TargetLibraryInfo &TLI, CallGraph &CG)
This file provides interfaces used to build and manipulate a call graph, which is a very useful tool ...
bool runOnModule(Module &M) override
runOnModule - Virtual method overriden by subclasses to process the module being operated on...
GlobalsAAResult run(Module &M, ModuleAnalysisManager &AM)
FunctionModRefBehavior
Summary of how a function affects memory in the program.
AliasResult alias(const MemoryLocation &LocA, const MemoryLocation &LocB)
alias - If one of the pointers is to a global that we are tracking, and the other is some random poin...
An alias analysis result set for globals.
This file contains the declarations for the subclasses of Constant, which represent the different fla...
FunctionModRefBehavior getModRefBehavior(const Function *F)
getModRefBehavior - Return the behavior of the specified function if called from the specified call s...
A CRTP mix-in that provides informational APIs needed for analysis passes.
AliasResult
The possible results of an alias query.
Represent the analysis usage information of a pass.
Analysis pass providing a never-invalidated alias analysis result.
Representation for a specific memory location.
const GlobalsAAResult & getResult() const
SmallPtrSet - This class implements a set which is optimized for holding SmallSize or less elements...
GlobalsAAResult & getResult()
Module.h This file contains the declarations for the Module class.
Provides information about what library functions are available for the current target.
The basic data container for the call graph of a Module of IR.
ImmutableCallSite - establish a view to a call site for examination.
ModulePass * createGlobalsAAWrapperPass()
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
ModRefInfo getModRefInfo(ImmutableCallSite CS, const MemoryLocation &Loc)
LLVM Value Representation.
Value handle with callbacks on RAUW and destruction.
A container for analyses that lazily runs them and caches their results.
A special type used by analysis passes to provide an address that identifies that particular analysis...
ModRefInfo getModRefInfo(ImmutableCallSite CS, const MemoryLocation &Loc)
void getAnalysisUsage(AnalysisUsage &AU) const override
getAnalysisUsage - This function should be overriden by passes that need analysis information to do t...