class CFLAndersAAResult
Declaration
class CFLAndersAAResult : public AAResultBase { /* full declaration omitted */ };
Description
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.
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:38
Inherits from: AAResultBase
Member Variables
- private std::function<const TargetLibraryInfo&(Function&)> GetTLI
- private DenseMap< const llvm::Function*, Optional< llvm::CFLAndersAAResult::FunctionInfo>> Cache
- Cached mapping of Functions to their StratifiedSets. If a function's sets are currently being built, it is marked in the cache as an Optional without a value. This way, if we have any kind of recursion, it is discernable from a function that simply has empty sets.
- private std::forward_list< cflaa::FunctionHandle<CFLAndersAAResult>> Handles
Method Overview
- public CFLAndersAAResult(std::function<const TargetLibraryInfo &(Function &)> GetTLI)
- public CFLAndersAAResult(llvm::CFLAndersAAResult && RHS)
- public llvm::AliasResult alias(const llvm::MemoryLocation &, const llvm::MemoryLocation &, llvm::AAQueryInfo &)
- private llvm::CFLAndersAAResult::FunctionInfo buildInfoFrom(const llvm::Function &)
- private const Optional<llvm::CFLAndersAAResult::FunctionInfo> & ensureCached(const llvm::Function &)
- public void evict(const llvm::Function * Fn)
- public const cflaa::AliasSummary * getAliasSummary(const llvm::Function &)
- public bool invalidate(llvm::Function &, const llvm::PreservedAnalyses &, FunctionAnalysisManager::Invalidator &)
- public llvm::AliasResult query(const llvm::MemoryLocation &, const llvm::MemoryLocation &)
- private void scan(const llvm::Function &)
- public ~CFLAndersAAResult()
Methods
¶CFLAndersAAResult(
std::function<const TargetLibraryInfo&(
Function&)> GetTLI)
CFLAndersAAResult(
std::function<const TargetLibraryInfo&(
Function&)> GetTLI)
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:44
Parameters
- std::function<const TargetLibraryInfo&(Function&)> GetTLI
¶CFLAndersAAResult(llvm::CFLAndersAAResult&& RHS)
CFLAndersAAResult(llvm::CFLAndersAAResult&& RHS)
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:46
Parameters
- llvm::CFLAndersAAResult&& RHS
¶llvm::AliasResult alias(
const llvm::MemoryLocation&,
const llvm::MemoryLocation&,
llvm::AAQueryInfo&)
llvm::AliasResult alias(
const llvm::MemoryLocation&,
const llvm::MemoryLocation&,
llvm::AAQueryInfo&)
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:64
Parameters
- const llvm::MemoryLocation&
- const llvm::MemoryLocation&
- llvm::AAQueryInfo&
¶llvm::CFLAndersAAResult::FunctionInfo
buildInfoFrom(const llvm::Function&)
llvm::CFLAndersAAResult::FunctionInfo
buildInfoFrom(const llvm::Function&)
Description
Build summary for a given function
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:76
Parameters
- const llvm::Function&
¶const Optional<
llvm::CFLAndersAAResult::FunctionInfo>&
ensureCached(const llvm::Function&)
const Optional<
llvm::CFLAndersAAResult::FunctionInfo>&
ensureCached(const llvm::Function&)
Description
Ensures that the given function is available in the cache. Returns the appropriate entry from the cache.
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:70
Parameters
- const llvm::Function&
¶void evict(const llvm::Function* Fn)
void evict(const llvm::Function* Fn)
Description
Evict the given function from cache
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:57
Parameters
- const llvm::Function* Fn
¶const cflaa::AliasSummary* getAliasSummary(
const llvm::Function&)
const cflaa::AliasSummary* getAliasSummary(
const llvm::Function&)
Description
Get the alias summary for the given function Return nullptr if the summary is not found or not available
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:61
Parameters
- const llvm::Function&
¶bool invalidate(
llvm::Function&,
const llvm::PreservedAnalyses&,
FunctionAnalysisManager::Invalidator&)
bool invalidate(
llvm::Function&,
const llvm::PreservedAnalyses&,
FunctionAnalysisManager::Invalidator&)
Description
Handle invalidation events from the new pass manager. By definition, this result is stateless and so remains valid.
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:51
Parameters
- llvm::Function&
- const llvm::PreservedAnalyses&
- FunctionAnalysisManager::Invalidator&
¶llvm::AliasResult query(
const llvm::MemoryLocation&,
const llvm::MemoryLocation&)
llvm::AliasResult query(
const llvm::MemoryLocation&,
const llvm::MemoryLocation&)
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:63
Parameters
- const llvm::MemoryLocation&
- const llvm::MemoryLocation&
¶void scan(const llvm::Function&)
void scan(const llvm::Function&)
Description
Inserts the given Function into the cache.
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:73
Parameters
- const llvm::Function&
¶~CFLAndersAAResult()
~CFLAndersAAResult()
Declared at: llvm/include/llvm/Analysis/CFLAndersAliasAnalysis.h:47