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:1077
Inherits from: AAResults::Concept
Templates
- AAResultT
Member Variables
- private AAResultT& Result
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:1081
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:1088
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:1098
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:1102
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:1106
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:1110
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:1115
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:1093
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:1086
Parameters
- llvm::AAResults* NewAAR
¶~Model<T>()
~Model<T>()
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1084