LLVM 24.0.0git
llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs > Class Template Reference

Abstract concept of an analysis pass. More...

#include "llvm/IR/PassManagerInternal.h"

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

Classes

struct  Deleter

Public Types

using ResultPtrT
using AnalysisManagerT = AnalysisManager<IRUnitT, ExtraArgTs...>
using unique_ptr = std::unique_ptr<AnalysisPassConcept, Deleter>

Public Member Functions

 AnalysisPassConcept (const AnalysisPassConcept &)=delete
AnalysisPassConceptoperator= (const AnalysisPassConcept &)=delete
ResultPtrT run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs &&...ExtraArgs)
 Method to run this analysis over a unit of IR.
StringRef name () const
 Get the name of the pass.

Protected Member Functions

 AnalysisPassConcept (StringRef Name, DestroyTy Destroy, RunTy Run)

Detailed Description

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
class llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >

Abstract concept of an analysis pass.

This concept is parameterized over the IR unit that it can run over and produce an analysis result.

Definition at line 266 of file PassManagerInternal.h.

Member Typedef Documentation

◆ AnalysisManagerT

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
using llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::AnalysisManagerT = AnalysisManager<IRUnitT, ExtraArgTs...>

Definition at line 270 of file PassManagerInternal.h.

◆ ResultPtrT

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
using llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::ResultPtrT
Initial value:

Definition at line 268 of file PassManagerInternal.h.

◆ unique_ptr

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
using llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::unique_ptr = std::unique_ptr<AnalysisPassConcept, Deleter>

Definition at line 275 of file PassManagerInternal.h.

Constructor & Destructor Documentation

◆ AnalysisPassConcept() [1/2]

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::AnalysisPassConcept ( StringRef Name,
DestroyTy Destroy,
RunTy Run )
inlineprotected

◆ AnalysisPassConcept() [2/2]

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::AnalysisPassConcept ( const AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs > & )
delete

Member Function Documentation

◆ name()

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
StringRef llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::name ( ) const
inline

Get the name of the pass.

Definition at line 304 of file PassManagerInternal.h.

◆ operator=()

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
AnalysisPassConcept & llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::operator= ( const AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs > & )
delete

◆ run()

template<typename IRUnitT, typename InvalidatorT, typename... ExtraArgTs>
ResultPtrT llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs >::run ( IRUnitT & IR,
AnalysisManagerT & AM,
ExtraArgTs &&... ExtraArgs )
inline

Method to run this analysis over a unit of IR.

Returns
A unique_ptr to the analysis result object to be queried by users.

Definition at line 299 of file PassManagerInternal.h.


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