LLVM: llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs (original) (raw)
A template wrapper used to implement the polymorphic API. More...
#include "[llvm/IR/PassManagerInternal.h](PassManagerInternal%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| template<typename T> | |
| using | has_required_t = decltype(std::declval<T &>().isRequired()) |
| Public Member Functions | |
|---|---|
| PassModel (PassT Pass) | |
| PassModel (const PassModel &Arg) | |
| PassModel (PassModel &&Arg) | |
| PassModel & | operator= (PassModel RHS) |
| PreservedAnalyses | run (IRUnitT &IR, AnalysisManagerT &AM, ExtraArgTs... ExtraArgs) override |
| The polymorphic API which runs the pass over a given IR entity. | |
| void | printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName) override |
| StringRef | name () const override |
| Polymorphic method to access the name of a pass. | |
| bool | isRequired () const override |
| Polymorphic method to let a pass optionally exempted from skipping by PassInstrumentation. | |
| Public Member Functions inherited from llvm::detail::PassConcept< IRUnitT, AnalysisManagerT, ExtraArgTs... > | |
| virtual | ~PassConcept ()=default |
| Static Public Member Functions | |
|---|---|
| template<typename T> | |
| static bool | passIsRequiredImpl () |
| Public Attributes | |
|---|---|
| PassT | Pass |
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
struct llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >
A template wrapper used to implement the polymorphic API.
Can be instantiated for any object which provides a run method accepting an IRUnitT& and an [AnalysisManager<IRUnit>](classllvm%5F1%5F1AnalysisManager.html "A container for analyses that lazily runs them and caches their results.")&. It requires the pass to be a copyable object.
Definition at line 72 of file PassManagerInternal.h.
◆ has_required_t
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
template<typename T>
using llvm::detail::PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs >::has_required_t = decltype(std::declval<T &>().isRequired())
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ PassModel() [2/3]
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ PassModel() [3/3]
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ isRequired()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ name()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ operator=()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ passIsRequiredImpl()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
template<typename T>
◆ printPipeline()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ run()
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
◆ swap
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
| void swap ( PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs > & LHS, PassModel< IRUnitT, PassT, AnalysisManagerT, ExtraArgTs > & RHS ) | friend |
|---|
◆ Pass
template<typename IRUnitT, typename PassT, typename AnalysisManagerT, typename... ExtraArgTs>
The documentation for this struct was generated from the following file:
- include/llvm/IR/PassManagerInternal.h