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;
143 bool runOnModule(
Module &M)
override;
144 bool doFinalization(
Module &M)
override;
Legacy wrapper pass to provide the GlobalsAAResult object.
A parsed version of the target data layout string in and methods for querying it. ...
const GlobalsAAResult & getResult() const
This class represents lattice values for constants.
A Module instance is used to store all the information related to an LLVM module. ...
Base class for all callable instructions (InvokeInst and CallInst) Holds everything related to callin...
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...
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 ...
FunctionModRefBehavior
Summary of how a function affects memory in the program.
AliasResult
The possible results of an alias query.
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.
Represent the analysis usage information of a pass.
Analysis pass providing a never-invalidated alias analysis result.
Representation for a specific memory location.
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.
amdgpu Simplify well known AMD library false Value Value * Arg
The basic data container for the call graph of a Module of IR.
ModulePass * createGlobalsAAWrapperPass()
ModulePass class - This class is used to implement unstructured interprocedural optimizations and ana...
ModRefInfo getModRefInfo(const CallBase *Call, const MemoryLocation &Loc)
LLVM Value Representation.
ModRefInfo
Flags indicating whether a memory access modifies or references memory.
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(const CallBase *Call, const MemoryLocation &Loc)