LLVM 22.0.0git
llvm::sandboxir::PassManager< ParentPass, ContainedPass > Class Template Reference

Base class. More...

#include "llvm/SandboxIR/PassManager.h"

Inheritance diagram for llvm::sandboxir::PassManager< ParentPass, ContainedPass >:
[legend]

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 const char EndToken = '\0'
static constexpr const char BeginArgsToken = '<'
static constexpr const char EndArgsToken = '>'
static constexpr const char PassDelimToken = ','

Protected Member Functions

 PassManager (StringRef Name)
 PassManager (StringRef Name, StringRef Pipeline, CreatePassFunc CreatePass)
 PassManager (const PassManager &)=delete
 PassManager (PassManager &&)=default
virtual ~PassManager ()=default
PassManageroperator= (const PassManager &)=delete

Protected Attributes

SmallVector< std::unique_ptr< ContainedPass > > Passes
 The list of passes that this pass manager will run.

Detailed Description

template<typename ParentPass, typename ContainedPass>
class llvm::sandboxir::PassManager< ParentPass, ContainedPass >

Base class.

Definition at line 35 of file PassManager.h.

Member Typedef Documentation

◆ CreatePassFunc

template<typename ParentPass, typename ContainedPass>
using llvm::sandboxir::PassManager< ParentPass, ContainedPass >::CreatePassFunc
Initial value:
std::function<std::unique_ptr<ContainedPass>(StringRef, StringRef)>
StringRef - Represent a constant reference to a string, i.e.
Definition StringRef.h:55

Definition at line 38 of file PassManager.h.

Constructor & Destructor Documentation

◆ PassManager() [1/4]

template<typename ParentPass, typename ContainedPass>
llvm::sandboxir::PassManager< ParentPass, ContainedPass >::PassManager ( StringRef Name)
inlineprotected

Definition at line 45 of file PassManager.h.

Referenced by operator=(), PassManager(), and PassManager().

◆ PassManager() [2/4]

template<typename ParentPass, typename ContainedPass>
llvm::sandboxir::PassManager< ParentPass, ContainedPass >::PassManager ( StringRef Name,
StringRef Pipeline,
CreatePassFunc CreatePass )
inlineprotected

Definition at line 46 of file PassManager.h.

References setPassPipeline().

◆ PassManager() [3/4]

template<typename ParentPass, typename ContainedPass>
llvm::sandboxir::PassManager< ParentPass, ContainedPass >::PassManager ( const PassManager< ParentPass, ContainedPass > & )
protecteddelete

References PassManager().

◆ PassManager() [4/4]

template<typename ParentPass, typename ContainedPass>
llvm::sandboxir::PassManager< ParentPass, ContainedPass >::PassManager ( PassManager< ParentPass, ContainedPass > && )
protecteddefault

References PassManager().

◆ ~PassManager()

template<typename ParentPass, typename ContainedPass>
virtual llvm::sandboxir::PassManager< ParentPass, ContainedPass >::~PassManager ( )
protectedvirtualdefault

Member Function Documentation

◆ addPass()

template<typename ParentPass, typename ContainedPass>
void llvm::sandboxir::PassManager< ParentPass, ContainedPass >::addPass ( std::unique_ptr< ContainedPass > Pass)
inline

Adds Pass to the pass pipeline.

Definition at line 57 of file PassManager.h.

References Passes.

Referenced by setPassPipeline().

◆ dump()

template<typename ParentPass, typename ContainedPass>
LLVM_DUMP_METHOD void llvm::sandboxir::PassManager< ParentPass, ContainedPass >::dump ( ) const
inlineoverride

Definition at line 192 of file PassManager.h.

References llvm::dbgs(), LLVM_DUMP_METHOD, and print().

◆ operator=()

template<typename ParentPass, typename ContainedPass>
PassManager & llvm::sandboxir::PassManager< ParentPass, ContainedPass >::operator= ( const PassManager< ParentPass, ContainedPass > & )
protecteddelete

References PassManager().

◆ print()

template<typename ParentPass, typename ContainedPass>
void llvm::sandboxir::PassManager< ParentPass, ContainedPass >::print ( raw_ostream & OS) const
inlineoverride

◆ printPipeline()

template<typename ParentPass, typename ContainedPass>
void llvm::sandboxir::PassManager< ParentPass, ContainedPass >::printPipeline ( raw_ostream & OS) const
inlineoverride

Similar to print() but prints one pass per line. Used for testing.

Definition at line 198 of file PassManager.h.

References getName(), and Passes.

◆ setPassPipeline()

template<typename ParentPass, typename ContainedPass>
void llvm::sandboxir::PassManager< ParentPass, ContainedPass >::setPassPipeline ( StringRef Pipeline,
CreatePassFunc CreatePass )
inline

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().

Member Data Documentation

◆ BeginArgsToken

template<typename ParentPass, typename ContainedPass>
const char llvm::sandboxir::PassManager< ParentPass, ContainedPass >::BeginArgsToken = '<'
staticconstexpr

Definition at line 63 of file PassManager.h.

Referenced by print(), and setPassPipeline().

◆ EndArgsToken

template<typename ParentPass, typename ContainedPass>
const char llvm::sandboxir::PassManager< ParentPass, ContainedPass >::EndArgsToken = '>'
staticconstexpr

Definition at line 64 of file PassManager.h.

Referenced by print(), and setPassPipeline().

◆ EndToken

template<typename ParentPass, typename ContainedPass>
const char llvm::sandboxir::PassManager< ParentPass, ContainedPass >::EndToken = '\0'
staticconstexpr

Definition at line 62 of file PassManager.h.

Referenced by setPassPipeline().

◆ PassDelimToken

template<typename ParentPass, typename ContainedPass>
const char llvm::sandboxir::PassManager< ParentPass, ContainedPass >::PassDelimToken = ','
staticconstexpr

Definition at line 65 of file PassManager.h.

Referenced by print(), and setPassPipeline().

◆ Passes

template<typename ParentPass, typename ContainedPass>
SmallVector<std::unique_ptr<ContainedPass> > llvm::sandboxir::PassManager< ParentPass, ContainedPass >::Passes
protected

The list of passes that this pass manager will run.

Definition at line 43 of file PassManager.h.

Referenced by addPass(), print(), printPipeline(), and setPassPipeline().


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