LLVM 20.0.0git
|
Wrapper to model the analysis pass concept. More...
#include "llvm/IR/PassManagerInternal.h"
Public Types | |
using | ResultModelT = AnalysisResultModel< IRUnitT, PassT, typename PassT::Result, InvalidatorT > |
Public Member Functions | |
AnalysisPassModel (PassT Pass) | |
AnalysisPassModel (const AnalysisPassModel &Arg) | |
AnalysisPassModel (AnalysisPassModel &&Arg) | |
AnalysisPassModel & | operator= (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 |
virtual std::unique_ptr< AnalysisResultConcept< IRUnitT, InvalidatorT > > | run (IRUnitT &IR, AnalysisManager< IRUnitT, ExtraArgTs... > &AM, ExtraArgTs... ExtraArgs)=0 |
Method to run this analysis over a unit of IR. | |
virtual StringRef | name () const=0 |
Polymorphic method to access the name of a pass. | |
Public Attributes | |
PassT | Pass |
Friends | |
void | swap (AnalysisPassModel &LHS, AnalysisPassModel &RHS) |
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 291 of file PassManagerInternal.h.
using llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::ResultModelT = AnalysisResultModel<IRUnitT, PassT, typename PassT::Result, InvalidatorT> |
Definition at line 310 of file PassManagerInternal.h.
|
inlineexplicit |
Definition at line 293 of file PassManagerInternal.h.
|
inline |
Definition at line 296 of file PassManagerInternal.h.
|
inline |
Definition at line 297 of file PassManagerInternal.h.
|
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 326 of file PassManagerInternal.h.
|
inline |
Definition at line 304 of file PassManagerInternal.h.
References RHS, and llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::swap.
|
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 317 of file PassManagerInternal.h.
References IR.
|
friend |
Definition at line 299 of file PassManagerInternal.h.
Referenced by llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::operator=().
PassT llvm::detail::AnalysisPassModel< IRUnitT, PassT, InvalidatorT, ExtraArgTs >::Pass |
Definition at line 328 of file PassManagerInternal.h.