1 //===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS -----------===//
3 // The LLVM Compiler Infrastructure
5 // This file was developed by the LLVM research group and is distributed under
6 // the University of Illinois Open Source License. See LICENSE.TXT for details.
8 //===----------------------------------------------------------------------===//
10 // The is a software pipelining pass based on the Swing Modulo Scheduling
13 //===----------------------------------------------------------------------===//
15 #include "ModuloSchedGraph.h"
16 #include "llvm/Function.h"
17 #include "llvm/Pass.h"
23 class ModuloScheduling : public FunctionPass {
26 virtual bool runOnFunction(Function &F);
29 RegisterOpt<ModuloScheduling> X("modulo-sched",
30 "Modulo Scheduling/Software Pipelining");
33 /// Create Modulo Scheduling Pass
35 Pass *createModuloSchedPass() {
36 return new ModuloScheduling();
39 /// ModuloScheduling::runOnFunction - main transformation entry point
41 bool ModuloScheduling::runOnFunction(Function &F) {
46 } // End llvm namespace