LLVM 24.0.0git
llvm::detail::AnalysisResultConcept< IRUnitT, InvalidatorT > Struct Template Reference

Abstract concept of an analysis result. More...

#include "llvm/IR/PassManagerInternal.h"

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

Classes

struct  Deleter

Public Types

using unique_ptr = std::unique_ptr<AnalysisResultConcept, Deleter>

Public Member Functions

bool invalidate (IRUnitT &IR, const PreservedAnalyses &PA, InvalidatorT &Inv)
 Method to try and mark a result as invalid.

Protected Member Functions

 AnalysisResultConcept (DestroyTy Destroy)

Protected Attributes

DestroyTy Destroy
InvalidateTy Invalidate = nullptr

Detailed Description

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

Abstract concept of an analysis result.

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

Definition at line 153 of file PassManagerInternal.h.

Member Typedef Documentation

◆ unique_ptr

template<typename IRUnitT, typename InvalidatorT>
using llvm::detail::AnalysisResultConcept< IRUnitT, InvalidatorT >::unique_ptr = std::unique_ptr<AnalysisResultConcept, Deleter>

Definition at line 164 of file PassManagerInternal.h.

Constructor & Destructor Documentation

◆ AnalysisResultConcept()

template<typename IRUnitT, typename InvalidatorT>
llvm::detail::AnalysisResultConcept< IRUnitT, InvalidatorT >::AnalysisResultConcept ( DestroyTy Destroy)
inlineprotected

Member Function Documentation

◆ invalidate()

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

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).

Definition at line 188 of file PassManagerInternal.h.

Member Data Documentation

◆ Destroy

template<typename IRUnitT, typename InvalidatorT>
DestroyTy llvm::detail::AnalysisResultConcept< IRUnitT, InvalidatorT >::Destroy
protected

Definition at line 167 of file PassManagerInternal.h.

◆ Invalidate

template<typename IRUnitT, typename InvalidatorT>
InvalidateTy llvm::detail::AnalysisResultConcept< IRUnitT, InvalidatorT >::Invalidate = nullptr
protected

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