LLVM: llvm::sandboxir::PassManager< ParentPass, ContainedPass > Class Template Reference (original) (raw)
Base class. More...
#include "[llvm/SandboxIR/PassManager.h](SandboxIR%5F2PassManager%5F8h%5Fsource.html)"
| Public Types | |
|---|---|
| using | CreatePassFunc |
| Public Member Functions | |
|---|---|
| void | addPass (std::unique_ptr< ContainedPass > Pass) |
| Adds Pass to the pass pipeline. | |
| void | setPassPipeline (StringRef Pipeline, CreatePassFunc CreatePass) |
| Parses Pipeline as a comma-separated sequence of pass names and sets the pass pipeline, using CreatePass to instantiate passes by name. | |
| void | print (raw_ostream &OS) const override |
| LLVM_DUMP_METHOD void | dump () const override |
| void | printPipeline (raw_ostream &OS) const override |
| Similar to print() but prints one pass per line. Used for testing. |
| Static Public Attributes | |
|---|---|
| static constexpr char | EndToken = '\0' |
| static constexpr char | BeginArgsToken = '<' |
| static constexpr char | EndArgsToken = '>' |
| static constexpr char | PassDelimToken = ',' |
| Protected Member Functions | |
|---|---|
| PassManager (StringRef Name) | |
| PassManager (StringRef Name, StringRef Pipeline, CreatePassFunc CreatePass) | |
| PassManager (const PassManager &)=delete | |
| PassManager (PassManager &&)=default | |
| ~PassManager () override=default | |
| PassManager & | operator= (const PassManager &)=delete |
| Protected Attributes | |
|---|---|
| SmallVector< std::unique_ptr< ContainedPass > > | Passes |
| The list of passes that this pass manager will run. |
template<typename ParentPass, typename ContainedPass>
class llvm::sandboxir::PassManager< ParentPass, ContainedPass >
Base class.
Definition at line 35 of file PassManager.h.
◆ CreatePassFunc
template<typename ParentPass, typename ContainedPass>
Initial value:
StringRef - Represent a constant reference to a string, i.e.
Definition at line 38 of file PassManager.h.
template<typename ParentPass, typename ContainedPass>
◆ PassManager() [2/4]
template<typename ParentPass, typename ContainedPass>
◆ PassManager() [3/4]
template<typename ParentPass, typename ContainedPass>
◆ PassManager() [4/4]
template<typename ParentPass, typename ContainedPass>
◆ ~PassManager()
template<typename ParentPass, typename ContainedPass>
◆ addPass()
template<typename ParentPass, typename ContainedPass>
◆ dump()
template<typename ParentPass, typename ContainedPass>
◆ operator=()
template<typename ParentPass, typename ContainedPass>
◆ print()
template<typename ParentPass, typename ContainedPass>
◆ printPipeline()
template<typename ParentPass, typename ContainedPass>
◆ setPassPipeline()
template<typename ParentPass, typename ContainedPass>
Parses Pipeline as a comma-separated sequence of pass names and sets the pass pipeline, using CreatePass to instantiate passes by name.
Passes can have arguments, for example: "pass1<arg1,arg2>,pass2,pass3<arg3,arg4>"
The arguments between angle brackets are treated as a mostly opaque string and each pass is responsible for parsing its arguments. The exception to this are nested angle brackets, which must match pair-wise to allow arguments to contain nested pipelines, like:
"pass1<subpass1,subpass2<arg1,arg2>,subpass3>"
An empty args string is treated the same as no args, so "pass" and "pass<>" are equivalent.
Definition at line 82 of file PassManager.h.
References addPass(), assert(), BeginArgsToken, llvm::CallingConv::C, llvm::StringRef::empty(), EndArgsToken, EndToken, llvm::enumerate(), llvm::errs(), PassDelimToken, Passes, PassName, and llvm::StringRef::slice().
Referenced by PassManager().
◆ BeginArgsToken
template<typename ParentPass, typename ContainedPass>
◆ EndArgsToken
template<typename ParentPass, typename ContainedPass>
◆ EndToken
template<typename ParentPass, typename ContainedPass>
◆ PassDelimToken
template<typename ParentPass, typename ContainedPass>
◆ Passes
template<typename ParentPass, typename ContainedPass>
The documentation for this class was generated from the following file:
- include/llvm/SandboxIR/PassManager.h