class AAManager
Declaration
class AAManager : public AnalysisInfoMixin { /* full declaration omitted */ };
Description
A manager for alias analyses. This class can have analyses registered with it and when run, it will run all of them and aggregate their results into single AA results interface that dispatches across all of the alias analysis results available. Note that the order in which analyses are registered is very significant. That is the order in which the results will be aggregated and queried. This manager effectively wraps the AnalysisManager for registering alias analyses. When you register your alias analysis with this manager, it will ensure the analysis itself is registered with its AnalysisManager. The result of this analysis is only invalidated if one of the particular aggregated AA results end up being invalidated. This removes the need to explicitly preserve the results of `AAManager`. Note that analyses should no longer be registered once the `AAManager` is run.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1303
Inherits from: AnalysisInfoMixin
Member Variables
- private SmallVector<void (*)( llvm::Function&, llvm::FunctionAnalysisManager&, llvm::AAResults&), 4> ResultGetters
- private static llvm::AnalysisKey Key
Method Overview
- private template <typename AnalysisT>static void getFunctionAAResultImpl(llvm::Function & F, llvm::FunctionAnalysisManager & AM, llvm::AAResults & AAResults)
- private template <typename AnalysisT>static void getModuleAAResultImpl(llvm::Function & F, llvm::FunctionAnalysisManager & AM, llvm::AAResults & AAResults)
- public template <typename AnalysisT>void registerFunctionAnalysis()
- public template <typename AnalysisT>void registerModuleAnalysis()
- public llvm::AAManager::Result run(llvm::Function & F, llvm::FunctionAnalysisManager & AM)
Methods
¶template <typename AnalysisT>
static void getFunctionAAResultImpl(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM,
llvm::AAResults& AAResults)
template <typename AnalysisT>
static void getFunctionAAResultImpl(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM,
llvm::AAResults& AAResults)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1329
Templates
- AnalysisT
Parameters
- llvm::Function& F
- llvm::FunctionAnalysisManager& AM
- llvm::AAResults& AAResults
¶template <typename AnalysisT>
static void getModuleAAResultImpl(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM,
llvm::AAResults& AAResults)
template <typename AnalysisT>
static void getModuleAAResultImpl(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM,
llvm::AAResults& AAResults)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1337
Templates
- AnalysisT
Parameters
- llvm::Function& F
- llvm::FunctionAnalysisManager& AM
- llvm::AAResults& AAResults
¶template <typename AnalysisT>
void registerFunctionAnalysis()
template <typename AnalysisT>
void registerFunctionAnalysis()
Description
Register a specific AA result.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1308
Templates
- AnalysisT
¶template <typename AnalysisT>
void registerModuleAnalysis()
template <typename AnalysisT>
void registerModuleAnalysis()
Description
Register a specific AA result.
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1313
Templates
- AnalysisT
¶llvm::AAManager::Result run(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM)
llvm::AAManager::Result run(
llvm::Function& F,
llvm::FunctionAnalysisManager& AM)
Declared at: llvm/include/llvm/Analysis/AliasAnalysis.h:1317