LLVM
10.0.0svn
|
A CRTP-driven "mixin" base class to help implement the function alias analysis results concept. More...
#include "llvm/Analysis/AliasAnalysis.h"
Classes | |
class | AAResultsProxy |
This proxy class models a common pattern where we delegate to either the top-level AAResults aggregation if one is registered, or to the current result if none are registered. More... | |
Public Member Functions | |
AliasResult | alias (const MemoryLocation &LocA, const MemoryLocation &LocB, AAQueryInfo &AAQI) |
bool | pointsToConstantMemory (const MemoryLocation &Loc, AAQueryInfo &AAQI, bool OrLocal) |
ModRefInfo | getArgModRefInfo (const CallBase *Call, unsigned ArgIdx) |
FunctionModRefBehavior | getModRefBehavior (const CallBase *Call) |
FunctionModRefBehavior | getModRefBehavior (const Function *F) |
ModRefInfo | getModRefInfo (const CallBase *Call, const MemoryLocation &Loc, AAQueryInfo &AAQI) |
ModRefInfo | getModRefInfo (const CallBase *Call1, const CallBase *Call2, AAQueryInfo &AAQI) |
Protected Member Functions | |
AAResultBase ()=default | |
AAResultBase (const AAResultBase &Arg) | |
AAResultBase (AAResultBase &&Arg) | |
AAResultsProxy | getBestAAResults () |
Get a proxy for the best AA result set to query at this time. More... | |
Friends | |
class | AAResults::Model< DerivedT > |
A CRTP-driven "mixin" base class to help implement the function alias analysis results concept.
Because of the nature of many alias analysis implementations, they often only implement a subset of the interface. This base class will attempt to implement the remaining portions of the interface in terms of simpler forms of the interface where possible, and otherwise provide conservatively correct fallback implementations.
Implementors of an alias analysis should derive from this CRTP, and then override specific methods that they wish to customize. There is no need to use virtual anywhere, the CRTP base class does static dispatch to the derived type passed into it.
Definition at line 944 of file AliasAnalysis.h.
|
explicitprotecteddefault |
|
inlineprotected |
Definition at line 1016 of file AliasAnalysis.h.
|
inlineprotected |
Definition at line 1017 of file AliasAnalysis.h.
|
inline |
Definition at line 1032 of file AliasAnalysis.h.
Referenced by llvm::SCEVAAResult::alias(), llvm::ScopedNoAliasAAResult::alias(), llvm::TypeBasedAAResult::alias(), llvm::AMDGPUAAResult::alias(), llvm::objcarc::ObjCARCAAResult::alias(), llvm::CFLAndersAAResult::alias(), llvm::CFLSteensAAResult::alias(), and llvm::GlobalsAAResult::alias().
|
inline |
Definition at line 1042 of file AliasAnalysis.h.
Referenced by llvm::BasicAAResult::getArgModRefInfo().
|
inlineprotected |
Get a proxy for the best AA result set to query at this time.
When this result is part of a larger aggregation, this will proxy to that aggregation. When this result is used in isolation, it will just delegate back to the derived class's implementation.
Note that callers of this need to take considerable care to not cause performance problems when they use this routine, in the case of a large number of alias analyses being aggregated, it can be expensive to walk back across the chain.
Definition at line 1029 of file AliasAnalysis.h.
Referenced by llvm::BasicAAResult::getModRefBehavior(), llvm::BasicAAResult::getModRefInfo(), and MergeAliasResults().
|
inline |
Definition at line 1046 of file AliasAnalysis.h.
Referenced by llvm::TypeBasedAAResult::getModRefBehavior(), llvm::objcarc::ObjCARCAAResult::getModRefBehavior(), llvm::GlobalsAAResult::getModRefBehavior(), and llvm::objcarc::ObjCARCAAResult::invalidate().
|
inline |
Definition at line 1050 of file AliasAnalysis.h.
|
inline |
Definition at line 1054 of file AliasAnalysis.h.
Referenced by llvm::ScopedNoAliasAAResult::getModRefInfo(), llvm::TypeBasedAAResult::getModRefInfo(), llvm::objcarc::ObjCARCAAResult::getModRefInfo(), llvm::BasicAAResult::getModRefInfo(), llvm::GlobalsAAResult::getModRefInfo(), and llvm::objcarc::ObjCARCAAResult::invalidate().
|
inline |
Definition at line 1059 of file AliasAnalysis.h.
|
inline |
Definition at line 1037 of file AliasAnalysis.h.
Referenced by llvm::TypeBasedAAResult::pointsToConstantMemory(), llvm::AMDGPUAAResult::pointsToConstantMemory(), llvm::objcarc::ObjCARCAAResult::pointsToConstantMemory(), and llvm::BasicAAResult::pointsToConstantMemory().
|
friend |
Definition at line 948 of file AliasAnalysis.h.