LLVM API Documentation
#include <ModuloScheduling.h>
Inheritance diagram for llvm::ModuloSchedulingPass:
Public Member Functions | |
ModuloSchedulingPass (TargetMachine &targ) | |
virtual bool | runOnFunction (Function &F) |
virtual const char * | getPassName () const |
virtual void | getAnalysisUsage (AnalysisUsage &AU) const |
Definition at line 43 of file ModuloScheduling.h.
llvm::ModuloSchedulingPass::ModuloSchedulingPass | ( | TargetMachine & | targ | ) | [inline] |
Definition at line 151 of file ModuloScheduling.h.
virtual void llvm::ModuloSchedulingPass::getAnalysisUsage | ( | AnalysisUsage & | AU | ) | const [inline, virtual] |
getAnalysisUsage - This function should be overriden by passes that need analysis information to do their job. If a pass specifies that it uses a particular analysis result to this function, it can then use the getAnalysis<AnalysisType>() function, below.
Reimplemented from llvm::Pass.
Definition at line 156 of file ModuloScheduling.h.
References llvm::AnalysisUsage::addRequired().
virtual const char* llvm::ModuloSchedulingPass::getPassName | ( | ) | const [inline, virtual] |
getPassName - Return a nice clean name for a pass. This usually implemented in terms of the name that is registered by one of the Registration templates, but can be overloaded directly, and if nothing else is available, C++ RTTI will be consulted to get a SOMEWHAT intelligible name for the pass.
Reimplemented from llvm::Pass.
Definition at line 153 of file ModuloScheduling.h.
bool ModuloSchedulingPass::runOnFunction | ( | Function & | F | ) | [virtual] |
ModuloScheduling::runOnFunction - main transformation entry point The Swing Modulo Schedule algorithm has three basic steps: 1) Computation and Analysis of the dependence graph 2) Ordering of the nodes 3) Scheduling
Implements llvm::FunctionPass.
Definition at line 155 of file ModuloScheduling.cpp.
References Changed, llvm::MSSchedule::clear(), llvm::X86II::DA, DEBUG, E, F, llvm::FinalIISum, llvm::MachineFunction::get(), llvm::MSSchedule::getMaxStage(), I, II, llvm::IISum, llvm::JumboBB, MF, llvm::MSLoops, llvm::NoSched, llvm::MSSchedule::print(), llvm::MSchedGraph::print(), llvm::RecurrenceConstraint, llvm::ResourceConstraint, llvm::SameStage, target, llvm::ValidLoops, and WriteGraphToFile().