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"
21 class ModuloScheduling : public FunctionPass {
24 virtual bool runOnFunction(Function &F);
27 RegisterOpt<ModuloScheduling> X("modulo-sched",
28 "Modulo Scheduling/Software Pipelining");
31 /// Create Modulo Scheduling Pass
33 Pass *createModuloSchedPass() {
34 return new ModuloScheduling();
37 /// ModuloScheduling::runOnFunction - main transformation entry point
39 bool ModuloScheduling::runOnFunction(Function &F) {