blob: bad3e97e48380cd79dd5437d8727ff387d979c3b [file] [log] [blame]
Tanya Lattner4f839cc2003-08-28 17:12:14 +00001//===-- ModuloScheduling.cpp - Software Pipeling Approach - SMS --*- C++ -*--=//
Guochun Shif1c154f2003-03-27 17:57:44 +00002//
Tanya Lattner4f839cc2003-08-28 17:12:14 +00003// The is a software pipelining pass based on the Swing Modulo Scheduling
4// alogrithm (SMS).
Guochun Shif1c154f2003-03-27 17:57:44 +00005//
6//===----------------------------------------------------------------------===//
7
Misha Brukman8baa01c2003-04-09 21:51:34 +00008#include "ModuloSchedGraph.h"
Guochun Shif1c154f2003-03-27 17:57:44 +00009
Tanya Lattner4f839cc2003-08-28 17:12:14 +000010#include "llvm/Pass.h"
11#include "llvm/Function.h"
Guochun Shif1c154f2003-03-27 17:57:44 +000012
13namespace {
Tanya Lattner4f839cc2003-08-28 17:12:14 +000014
15 class ModuloScheduling : public FunctionPass {
Guochun Shi8f1d4ab2003-06-08 23:16:07 +000016
Tanya Lattner4f839cc2003-08-28 17:12:14 +000017 public:
18 virtual bool runOnFunction(Function &F);
Guochun Shif1c154f2003-03-27 17:57:44 +000019 };
Guochun Shif1c154f2003-03-27 17:57:44 +000020
Tanya Lattner4f839cc2003-08-28 17:12:14 +000021 RegisterOpt<ModuloScheduling> X("modulo-sched", "Modulo Scheduling/Software Pipelining");
Guochun Shif1c154f2003-03-27 17:57:44 +000022}
23
Tanya Lattner4f839cc2003-08-28 17:12:14 +000024//Create Modulo Scheduling Pass
25Pass *createModuloSchedPass() {
26 return new ModuloScheduling();
Guochun Shif1c154f2003-03-27 17:57:44 +000027}
Tanya Lattner4f839cc2003-08-28 17:12:14 +000028
29//ModuloScheduling::runOnFunction - Main transformation entry point.
30bool ModuloScheduling::runOnFunction(Function &F) {
31 bool Changed = false;
32
33 return Changed;
34}
35