class AAResults::Model
Declaration
template <typename AAResultT>
class AAResults::Model : public Concept { /* full declaration omitted */ };
Description
A private class template which derives from \c Concept and wraps some other type. This models the concept by directly forwarding each interface point to the wrapped type which must implement a compatible interface. This provides a type erased binding.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:887
Inherits from: AAResults::Concept
Templates
- AAResultT
Method Overview
- public Model<T>(AAResultT & Result, llvm::AAResults & AAR)
- public llvm::AliasResult alias(const llvm::MemoryLocation & LocA, const llvm::MemoryLocation & LocB, llvm::AAQueryInfo & AAQI)
- public llvm::ModRefInfo getArgModRefInfo(const llvm::CallBase * Call, unsigned int ArgIdx)
- public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::CallBase * Call)
- public llvm::FunctionModRefBehavior getModRefBehavior(const llvm::Function * F)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call, const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI)
- public llvm::ModRefInfo getModRefInfo(const llvm::CallBase * Call1, const llvm::CallBase * Call2, llvm::AAQueryInfo & AAQI)
- public bool pointsToConstantMemory(const llvm::MemoryLocation & Loc, llvm::AAQueryInfo & AAQI, bool OrLocal)
- public void setAAResults(llvm::AAResults * NewAAR)
- public ~Model<T>()
Inherited from AAResults::Concept:
- public alias
- public getArgModRefInfo
- public getModRefBehavior
- public getModRefBehavior
- public getModRefInfo
- public getModRefInfo
- public pointsToConstantMemory
- public setAAResults
Methods
¶Model<T>(AAResultT& Result, llvm::AAResults& AAR)
Model<T>(AAResultT& Result, llvm::AAResults& AAR)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:891
Parameters
- AAResultT& Result
- llvm::AAResults& AAR
¶llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB,
llvm::AAQueryInfo& AAQI)
llvm::AliasResult alias(
const llvm::MemoryLocation& LocA,
const llvm::MemoryLocation& LocB,
llvm::AAQueryInfo& AAQI)
Description
The main low level interface to the alias analysis implementation. Returns an AliasResult indicating whether the two pointers are aliased to each other. This is the interface that must be implemented by specific alias analysis implementations.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:898
Parameters
- const llvm::MemoryLocation& LocA
- const llvm::MemoryLocation& LocB
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
llvm::ModRefInfo getArgModRefInfo(
const llvm::CallBase* Call,
unsigned int ArgIdx)
Description
Get the ModRef info associated with a pointer argument of a callsite. The result's bits are set to indicate the allowed aliasing ModRef kinds. Note that these bits do not necessarily account for the overall behavior of the function, but rather only provide additional per-argument information.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:908
Parameters
- const llvm::CallBase* Call
- unsigned int ArgIdx
¶llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::CallBase* Call)
Description
Return the behavior of the given call site.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:912
Parameters
- const llvm::CallBase* Call
¶llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::Function* F)
llvm::FunctionModRefBehavior getModRefBehavior(
const llvm::Function* F)
Description
Return the behavior when calling the given function.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:916
Parameters
- const llvm::Function* F
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call,
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI)
Description
getModRefInfo (for call sites) - Return information about whether a particular call site modifies or reads the specified memory location.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:920
Parameters
- const llvm::CallBase* Call
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
¶llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQI)
llvm::ModRefInfo getModRefInfo(
const llvm::CallBase* Call1,
const llvm::CallBase* Call2,
llvm::AAQueryInfo& AAQI)
Description
Return information about whether two call sites may refer to the same set of memory locations. See the AA documentation for details: http://llvm.org/docs/AliasAnalysis.html#ModRefInfo
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:925
Parameters
- const llvm::CallBase* Call1
- const llvm::CallBase* Call2
- llvm::AAQueryInfo& AAQI
¶bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI,
bool OrLocal)
bool pointsToConstantMemory(
const llvm::MemoryLocation& Loc,
llvm::AAQueryInfo& AAQI,
bool OrLocal)
Description
Checks whether the given location points to constant memory, or if\p OrLocal is true whether it points to a local alloca.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:903
Parameters
- const llvm::MemoryLocation& Loc
- llvm::AAQueryInfo& AAQI
- bool OrLocal
¶void setAAResults(llvm::AAResults* NewAAR)
void setAAResults(llvm::AAResults* NewAAR)
Description
An update API used internally by the AAResults to provide a handle back to the top level aggregation.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:896
Parameters
- llvm::AAResults* NewAAR
¶~Model<T>()
~Model<T>()
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:894