LLVM  3.7.0
Public Member Functions | Friends | List of all members
llvm::AnalysisManager< IRUnitT > Class Template Reference

A generic analysis pass manager with lazy running and caching of results. More...

#include <AssumptionCache.h>

Inheritance diagram for llvm::AnalysisManager< IRUnitT >:
[legend]
Collaboration diagram for llvm::AnalysisManager< IRUnitT >:
[legend]

Public Member Functions

 AnalysisManager (bool DebugLogging=false)
 Construct an empty analysis manager. More...
 
 AnalysisManager (AnalysisManager &&Arg)
 
AnalysisManageroperator= (AnalysisManager &&RHS)
 
bool empty () const
 Returns true if the analysis manager has an empty results cache. More...
 
void clear ()
 Clear the analysis result cache. More...
 
- Public Member Functions inherited from llvm::detail::AnalysisManagerBase< DerivedT, IRUnitT >
template<typename PassT >
PassT::Result & getResult (IRUnitT &IR)
 Get the result of an analysis pass for this module. More...
 
template<typename PassT >
PassT::Result * getCachedResult (IRUnitT &IR) const
 Get the cached result of an analysis pass for this module. More...
 
template<typename PassT >
void registerPass (PassT Pass)
 Register an analysis pass with the manager. More...
 
template<typename PassT >
void invalidate (IRUnitT &IR)
 Invalidate a specific analysis pass for an IR module. More...
 
PreservedAnalyses invalidate (IRUnitT &IR, PreservedAnalyses PA)
 Invalidate analyses cached for an IR unit. More...
 

Friends

class detail::AnalysisManagerBase< AnalysisManager< IRUnitT >, IRUnitT >
 

Additional Inherited Members

- Protected Types inherited from llvm::detail::AnalysisManagerBase< DerivedT, IRUnitT >
typedef
detail::AnalysisResultConcept
< IRUnitT > 
ResultConceptT
 
typedef
detail::AnalysisPassConcept
< IRUnitT > 
PassConceptT
 
- Protected Member Functions inherited from llvm::detail::AnalysisManagerBase< DerivedT, IRUnitT >
 AnalysisManagerBase ()
 
 AnalysisManagerBase (AnalysisManagerBase &&Arg)
 
AnalysisManagerBaseoperator= (AnalysisManagerBase &&RHS)
 
PassConceptTlookupPass (void *PassID)
 Lookup a registered analysis pass. More...
 
const PassConceptTlookupPass (void *PassID) const
 Lookup a registered analysis pass. More...
 

Detailed Description

template<typename IRUnitT>
class llvm::AnalysisManager< IRUnitT >

A generic analysis pass manager with lazy running and caching of results.

This analysis manager can be used for any IR unit where the address of the IR unit sufficies as its identity. It manages the cache for a unit of IR via the address of each unit of IR cached.

Definition at line 32 of file AssumptionCache.h.

Constructor & Destructor Documentation

template<typename IRUnitT>
llvm::AnalysisManager< IRUnitT >::AnalysisManager ( bool  DebugLogging = false)
inline

Construct an empty analysis manager.

A flag can be passed to indicate that the manager should perform debug logging.

Definition at line 422 of file PassManager.h.

template<typename IRUnitT>
llvm::AnalysisManager< IRUnitT >::AnalysisManager ( AnalysisManager< IRUnitT > &&  Arg)
inline

Definition at line 426 of file PassManager.h.

Member Function Documentation

template<typename IRUnitT>
void llvm::AnalysisManager< IRUnitT >::clear ( )
inline

Clear the analysis result cache.

This routine allows cleaning up when the set of IR units itself has potentially changed, and thus we can't even look up a a result and invalidate it directly. Notably, this does not call invalidate functions as there is nothing to be done for them.

Definition at line 451 of file PassManager.h.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::clear().

Referenced by llvm::CGSCCAnalysisManagerModuleProxy::Result::invalidate(), llvm::FunctionAnalysisManagerModuleProxy::Result::invalidate(), llvm::CGSCCAnalysisManagerModuleProxy::Result::~Result(), and llvm::FunctionAnalysisManagerModuleProxy::Result::~Result().

template<typename IRUnitT>
bool llvm::AnalysisManager< IRUnitT >::empty ( ) const
inline

Returns true if the analysis manager has an empty results cache.

Definition at line 438 of file PassManager.h.

References llvm::DenseMapBase< DerivedT, KeyT, ValueT, KeyInfoT, BucketT >::empty().

Referenced by llvm::CGSCCAnalysisManagerModuleProxy::run(), and llvm::FunctionAnalysisManagerModuleProxy::run().

template<typename IRUnitT>
AnalysisManager& llvm::AnalysisManager< IRUnitT >::operator= ( AnalysisManager< IRUnitT > &&  RHS)
inline

Definition at line 430 of file PassManager.h.

Friends And Related Function Documentation

template<typename IRUnitT>
friend class detail::AnalysisManagerBase< AnalysisManager< IRUnitT >, IRUnitT >
friend

Definition at line 410 of file PassManager.h.


The documentation for this class was generated from the following files: