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: