LLVM 22.0.0git
llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > Struct Template Reference

Wrapper to model the analysis pass concept. More...

#include "llvm/IR/PassManagerInternal.h"

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

Public Types

using ResultModelT

Public Member Functions

 AnalysisPassModel (PassT Pass)
 AnalysisPassModel (const AnalysisPassModel &Arg)
 AnalysisPassModel (AnalysisPassModel &&Arg)
AnalysisPassModeloperator= (AnalysisPassModel RHS)
std::unique_ptr< AnalysisResultConcept< IRUnitT, InvalidatorT > > run (IRUnitT &IR, AnalysisManager< IRUnitT, ExtraArgTs... > &AM, ExtraArgTs... ExtraArgs) override
 The model delegates to the PassT::run method.
StringRef name () const override
 The model delegates to a static PassT::name method.
Public Member Functions inherited from llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs... >
virtual ~AnalysisPassConcept ()=default

Public Attributes

PassT Pass

Friends

void swap (AnalysisPassModel &LHS, AnalysisPassModel &RHS)

Detailed Description

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
struct llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >

Wrapper to model the analysis pass concept.

Can wrap any type which implements a suitable run method. The method must accept an IRUnitT& and an AnalysisManager<IRUnitT>& as arguments and produce an object which can be wrapped in a AnalysisResultModel.

Definition at line 287 of file PassManagerInternal.h.

Member Typedef Documentation

◆ ResultModelT

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
using llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::ResultModelT
Initial value:

Definition at line 306 of file PassManagerInternal.h.

Constructor & Destructor Documentation

◆ AnalysisPassModel() [1/3]

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( PassT Pass)
inlineexplicit

Definition at line 289 of file PassManagerInternal.h.

References llvm::move(), and Pass.

Referenced by AnalysisPassModel(), AnalysisPassModel(), operator=(), and swap.

◆ AnalysisPassModel() [2/3]

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( const AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > & Arg)
inline

Definition at line 292 of file PassManagerInternal.h.

References AnalysisPassModel(), and Pass.

◆ AnalysisPassModel() [3/3]

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::AnalysisPassModel ( AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > && Arg)
inline

Definition at line 293 of file PassManagerInternal.h.

References AnalysisPassModel(), llvm::move(), and Pass.

Member Function Documentation

◆ name()

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
StringRef llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::name ( ) const
inlineoverridevirtual

The model delegates to a static PassT::name method.

The returned string ref must point to constant immutable data!

Implements llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs... >.

Definition at line 322 of file PassManagerInternal.h.

◆ operator=()

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
AnalysisPassModel & llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::operator= ( AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > RHS)
inline

Definition at line 300 of file PassManagerInternal.h.

References AnalysisPassModel(), RHS, and swap.

◆ run()

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
std::unique_ptr< AnalysisResultConcept< IRUnitT, InvalidatorT > > llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::run ( IRUnitT & IR,
AnalysisManager< IRUnitT, ExtraArgTs... > & AM,
ExtraArgTs... ExtraArgs )
inlineoverridevirtual

The model delegates to the PassT::run method.

The return is wrapped in an AnalysisResultModel.

Implements llvm::detail::AnalysisPassConcept< IRUnitT, InvalidatorT, ExtraArgTs... >.

Definition at line 313 of file PassManagerInternal.h.

References IR, and Pass.

◆ swap

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
void swap ( AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > & LHS,
AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs > & RHS )
friend

Definition at line 295 of file PassManagerInternal.h.

References AnalysisPassModel(), LHS, RHS, swap, and std::swap().

Referenced by operator=(), and swap.

Member Data Documentation

◆ Pass

template<typename IRUnitT, typename PassT, typename InvalidatorT, typename... ExtraArgTs>
PassT llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::Pass

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