LLVM  8.0.1
Public Member Functions | List of all members
llvm::detail::AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT > Struct Template Referenceabstract

Abstract concept of an analysis result. More...

#include "llvm/IR/PassManagerInternal.h"

Inheritance diagram for llvm::detail::AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT >:
Inheritance graph
[legend]

Public Member Functions

virtual ~AnalysisResultConcept ()=default
 
virtual bool invalidate (IRUnitT &IR, const PreservedAnalysesT &PA, InvalidatorT &Inv)=0
 Method to try and mark a result as invalid. More...
 

Detailed Description

template<typename IRUnitT, typename PreservedAnalysesT, typename InvalidatorT>
struct llvm::detail::AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT >

Abstract concept of an analysis result.

This concept is parameterized over the IR unit that this result pertains to.

Definition at line 93 of file PassManagerInternal.h.

Constructor & Destructor Documentation

◆ ~AnalysisResultConcept()

template<typename IRUnitT , typename PreservedAnalysesT , typename InvalidatorT >
virtual llvm::detail::AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT >::~AnalysisResultConcept ( )
virtualdefault

Member Function Documentation

◆ invalidate()

template<typename IRUnitT , typename PreservedAnalysesT , typename InvalidatorT >
virtual bool llvm::detail::AnalysisResultConcept< IRUnitT, PreservedAnalysesT, InvalidatorT >::invalidate ( IRUnitT &  IR,
const PreservedAnalysesT &  PA,
InvalidatorT &  Inv 
)
pure virtual

Method to try and mark a result as invalid.

When the outer analysis manager detects a change in some underlying unit of the IR, it will call this method on all of the results cached.

PA is a set of preserved analyses which can be used to avoid invalidation because the pass which changed the underlying IR took care to update or preserve the analysis result in some way.

Inv is typically a AnalysisManager::Invalidator object that can be used by a particular analysis result to discover if other analyses results are also invalidated in the event that this result depends on them. See the documentation in the AnalysisManager for more details.

Returns
true if the result is indeed invalid (the default).

Implemented in llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, PreservedAnalysesT, InvalidatorT, true >, and llvm::detail::AnalysisResultModel< IRUnitT, PassT, ResultT, PreservedAnalysesT, InvalidatorT, false >.


The documentation for this struct was generated from the following file: