LLVM: llvm::MachinePipeliner Class Reference (original) (raw)
The main class in the implementation of the target independent software pipeliner pass. More...
#include "[llvm/CodeGen/MachinePipeliner.h](MachinePipeliner%5F8h%5Fsource.html)"
| Classes | |
|---|---|
| struct | LoopInfo |
| Cache the target analysis information about the loop. More... |
| Public Member Functions | |
|---|---|
| MachinePipeliner () | |
| bool | runOnMachineFunction (MachineFunction &MF) override |
| The "main" function for implementing Swing Modulo Scheduling. | |
| void | getAnalysisUsage (AnalysisUsage &AU) const override |
| getAnalysisUsage - Subclasses that override getAnalysisUsage must call this. | |
| Public Member Functions inherited from llvm::MachineFunctionPass | |
| bool | doInitialization (Module &) override |
| doInitialization - Virtual method overridden by subclasses to do any necessary initialization before any pass is run. | |
| Public Member Functions inherited from llvm::FunctionPass | |
| FunctionPass (char &pid) | |
| void | assignPassManager (PMStack &PMS, PassManagerType T) override |
| Find appropriate Function Pass Manager or Call Graph Pass Manager in the PM Stack and add self into that manager. | |
| PassManagerType | getPotentialPassManagerType () const override |
| Return what kind of Pass Manager can manage this pass. | |
| Public Member Functions inherited from llvm::Pass | |
| Pass (PassKind K, char &pid) | |
| Pass (const Pass &)=delete | |
| Pass & | operator= (const Pass &)=delete |
| virtual | ~Pass () |
| PassKind | getPassKind () const |
| virtual StringRef | getPassName () const |
| getPassName - Return a nice clean name for a pass. | |
| StringRef | getPassArgument () const |
| Return a nice clean name for a pass corresponding to that used to enable the pass in opt. | |
| AnalysisID | getPassID () const |
| getPassID - Return the PassID number that corresponds to this pass. | |
| virtual bool | doFinalization (Module &) |
| doFinalization - Virtual method overriden by subclasses to do any necessary clean up after all passes have run. | |
| virtual void | print (raw_ostream &OS, const Module *M) const |
| print - Print out the internal state of the pass. | |
| void | dump () const |
| virtual void | preparePassManager (PMStack &) |
| Check if available pass managers are suitable for this pass or not. | |
| void | setResolver (AnalysisResolver *AR) |
| AnalysisResolver * | getResolver () const |
| virtual void | releaseMemory () |
| releaseMemory() - This member can be implemented by a pass if it wants to be able to release its memory when it is no longer needed. | |
| virtual ImmutablePass * | getAsImmutablePass () |
| virtual PMDataManager * | getAsPMDataManager () |
| virtual void | verifyAnalysis () const |
| verifyAnalysis() - This member can be implemented by a analysis pass to check state of analysis information. | |
| virtual void | dumpPassStructure (unsigned Offset=0) |
| template | |
| AnalysisType * | getAnalysisIfAvailable () const |
| getAnalysisIfAvailable() - Subclasses use this function to get analysis information that might be around, for example to update it. | |
| bool | mustPreserveAnalysisID (char &AID) const |
| mustPreserveAnalysisID - This method serves the same function as getAnalysisIfAvailable, but works if you just have an AnalysisID. | |
| template | |
| AnalysisType & | getAnalysis () const |
| getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
| template | |
| AnalysisType & | getAnalysis (Function &F, bool *Changed=nullptr) |
| getAnalysis() - This function is used by subclasses to get to the analysis information that they claim to use by overriding the getAnalysisUsage function. | |
| template | |
| AnalysisType & | getAnalysisID (AnalysisID PI) const |
| template | |
| AnalysisType & | getAnalysisID (AnalysisID PI, Function &F, bool *Changed=nullptr) |
| Public Attributes | |
|---|---|
| MachineFunction * | MF = nullptr |
| MachineOptimizationRemarkEmitter * | ORE = nullptr |
| const MachineLoopInfo * | MLI = nullptr |
| const MachineDominatorTree * | MDT = nullptr |
| const InstrItineraryData * | InstrItins = nullptr |
| const TargetInstrInfo * | TII = nullptr |
| RegisterClassInfo | RegClassInfo |
| bool | disabledByPragma = false |
| unsigned | II_setByPragma = 0 |
| LoopInfo | LI |
| Static Public Attributes | |
|---|---|
| static int | NumTries = 0 |
| static char | ID = 0 |
| Additional Inherited Members | |
|---|---|
| Static Public Member Functions inherited from llvm::Pass | |
| static const PassInfo * | lookupPassInfo (const void *TI) |
| static const PassInfo * | lookupPassInfo (StringRef Arg) |
| static Pass * | createPass (AnalysisID ID) |
| Protected Member Functions inherited from llvm::MachineFunctionPass | |
| MachineFunctionPass (char &ID) | |
| virtual MachineFunctionProperties | getRequiredProperties () const |
| virtual MachineFunctionProperties | getSetProperties () const |
| virtual MachineFunctionProperties | getClearedProperties () const |
| Protected Member Functions inherited from llvm::FunctionPass | |
| bool | skipFunction (const Function &F) const |
| Optional passes call this function to check whether the pass should be skipped. |
The main class in the implementation of the target independent software pipeliner pass.
Definition at line 69 of file MachinePipeliner.h.
| llvm::MachinePipeliner::MachinePipeliner ( ) | inline |
|---|
◆ getAnalysisUsage()
| void MachinePipeliner::getAnalysisUsage ( AnalysisUsage & AU) const | overridevirtual |
|---|
◆ runOnMachineFunction()
The "main" function for implementing Swing Modulo Scheduling.
Implements llvm::MachineFunctionPass.
Definition at line 363 of file MachinePipeliner.cpp.
References llvm::TargetSubtargetInfo::enableMachinePipeliner(), EnableSWP, EnableSWPOptSize, llvm::Pass::getAnalysis(), llvm::Function::getAttributes(), llvm::MachineFunction::getFunction(), llvm::TargetSubtargetInfo::getInstrItineraryData(), llvm::MachineFunction::getSubtarget(), llvm::InstrItineraryData::isEmpty(), MDT, MF, MLI, ORE, RegClassInfo, llvm::FunctionPass::skipFunction(), TII, and llvm::TargetSubtargetInfo::useDFAforSMS().
◆ disabledByPragma
bool llvm::MachinePipeliner::disabledByPragma = false
◆ ID
| char MachinePipeliner::ID = 0 | static |
|---|
◆ II_setByPragma
unsigned llvm::MachinePipeliner::II_setByPragma = 0
◆ InstrItins
◆ LI
◆ MDT
◆ MF
◆ MLI
◆ NumTries
| int MachinePipeliner::NumTries = 0 | static |
|---|
◆ ORE
◆ RegClassInfo
◆ TII
The documentation for this class was generated from the following files:
- include/llvm/CodeGen/MachinePipeliner.h
- lib/CodeGen/MachinePipeliner.cpp