LLVM  14.0.0git
Public Member Functions | List of all members
llvm::MachineFunctionPassManager Class Reference

MachineFunctionPassManager adds/removes below features to/from the base PassManager template instantiation. More...

#include "llvm/CodeGen/MachinePassManager.h"

Inheritance diagram for llvm::MachineFunctionPassManager:
Inheritance graph
[legend]
Collaboration diagram for llvm::MachineFunctionPassManager:
Collaboration graph
[legend]

Public Member Functions

 MachineFunctionPassManager (bool DebugLogging=false, bool RequireCodeGenSCCOrder=false, bool VerifyMachineFunction=false)
 
 MachineFunctionPassManager (MachineFunctionPassManager &&)=default
 
MachineFunctionPassManageroperator= (MachineFunctionPassManager &&)=default
 
Error run (Module &M, MachineFunctionAnalysisManager &MFAM)
 Run machine passes for a Module. More...
 
template<typename PassT >
void addPass (PassT &&Pass)
 
- Public Member Functions inherited from llvm::PassManager< MachineFunction, MachineFunctionAnalysisManager >
 PassManager ()
 Construct a pass manager. More...
 
 PassManager (PassManager &&Arg)
 
PassManageroperator= (PassManager &&RHS)
 
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
 
PreservedAnalyses run (MachineFunction &IR, MachineFunctionAnalysisManager &AM, ExtraArgTs... ExtraArgs)
 Run all of the passes in this manager over the given unit of IR. More...
 
PreservedAnalyses run (LazyCallGraph::SCC &InitialC, CGSCCAnalysisManager &AM, LazyCallGraph &G, CGSCCUpdateResult &UR)
 
PreservedAnalyses run (LazyCallGraph::SCC &InitialC, CGSCCAnalysisManager &AM, LazyCallGraph &G, CGSCCUpdateResult &UR)
 Explicitly specialize the pass manager run method to handle call graph updates. More...
 
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t<!std::is_same< PassT, PassManager >::value > addPass (PassT &&Pass)
 
LLVM_ATTRIBUTE_MINSIZE std::enable_if_t< std::is_same< PassT, PassManager >::value > addPass (PassT &&Pass)
 When adding a pass manager pass that has the same type as this pass manager, simply move the passes over. More...
 
bool isEmpty () const
 Returns if the pass manager contains any passes. More...
 
- Public Member Functions inherited from llvm::PassInfoMixin< PassManager< MachineFunction, MachineFunctionAnalysisManager, ExtraArgTs... > >
void printPipeline (raw_ostream &OS, function_ref< StringRef(StringRef)> MapClassName2PassName)
 

Additional Inherited Members

- Static Public Member Functions inherited from llvm::PassManager< MachineFunction, MachineFunctionAnalysisManager >
static bool isRequired ()
 
- Static Public Member Functions inherited from llvm::PassInfoMixin< PassManager< MachineFunction, MachineFunctionAnalysisManager, ExtraArgTs... > >
static StringRef name ()
 Gets the name of the pass we are mixed into. More...
 
- Protected Types inherited from llvm::PassManager< MachineFunction, MachineFunctionAnalysisManager >
using PassConceptT = detail::PassConcept< MachineFunction, MachineFunctionAnalysisManager, ExtraArgTs... >
 
- Protected Attributes inherited from llvm::PassManager< MachineFunction, MachineFunctionAnalysisManager >
std::vector< std::unique_ptr< PassConceptT > > Passes
 

Detailed Description

MachineFunctionPassManager adds/removes below features to/from the base PassManager template instantiation.

Definition at line 130 of file MachinePassManager.h.

Constructor & Destructor Documentation

◆ MachineFunctionPassManager() [1/2]

llvm::MachineFunctionPassManager::MachineFunctionPassManager ( bool  DebugLogging = false,
bool  RequireCodeGenSCCOrder = false,
bool  VerifyMachineFunction = false 
)
inline

Definition at line 135 of file MachinePassManager.h.

◆ MachineFunctionPassManager() [2/2]

llvm::MachineFunctionPassManager::MachineFunctionPassManager ( MachineFunctionPassManager &&  )
default

Member Function Documentation

◆ addPass()

template<typename PassT >
void llvm::MachineFunctionPassManager::addPass ( PassT &&  Pass)
inline

◆ operator=()

MachineFunctionPassManager& llvm::MachineFunctionPassManager::operator= ( MachineFunctionPassManager &&  )
default

◆ run()

Error llvm::MachineFunctionPassManager::run ( Module M,
MachineFunctionAnalysisManager MFAM 
)

Run machine passes for a Module.

The intended use is to start the codegen pipeline for a Module. The base class's run method is deliberately hidden by this due to the observation that we don't yet have the use cases of compositing two instances of machine pass managers, or compositing machine pass managers with other types of pass managers.

Definition at line 25 of file MachinePassManager.cpp.

References assert(), F, llvm::MachineFunctionAnalysisManager::getResult(), IR, M, llvm::PassInstrumentation::pushBeforeNonSkippedPassCallback(), and llvm::verifyMachineFunction().


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