diff options
| author | Tanya Lattner <tonic@nondot.org> | 2005-04-22 06:32:48 +0000 |
|---|---|---|
| committer | Tanya Lattner <tonic@nondot.org> | 2005-04-22 06:32:48 +0000 |
| commit | 42ed14860b3df9a0d57e9c04eab459c58d0894ad (patch) | |
| tree | 4a3b33a4cb10b46519216f2691742701ea13f676 /llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | |
| parent | e25cfaee55be90ee167204b65a35e56721cef2b5 (diff) | |
| download | bcm5719-llvm-42ed14860b3df9a0d57e9c04eab459c58d0894ad.tar.gz bcm5719-llvm-42ed14860b3df9a0d57e9c04eab459c58d0894ad.zip | |
Updated dependence analyzer. Fixed numerous bugs. Same stage scheduling, etc.
llvm-svn: 21444
Diffstat (limited to 'llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h')
| -rw-r--r-- | llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h b/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h index 9a7bfe78019..e68948479e1 100644 --- a/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h +++ b/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h @@ -19,6 +19,8 @@ #include "llvm/Pass.h" #include "DependenceAnalyzer.h" #include "llvm/Target/TargetData.h" +#include "llvm/Analysis/LoopInfo.h" +#include "llvm/Analysis/ScalarEvolution.h" #include <set> namespace llvm { @@ -107,7 +109,9 @@ namespace llvm { void unblock(MSchedGraphNode *u, std::set<MSchedGraphNode*> &blocked, std::map<MSchedGraphNode*, std::set<MSchedGraphNode*> > &B); - void searchPath(MSchedGraphNode *node, + void addRecc(std::vector<MSchedGraphNode*> &stack, std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes); + + void searchPath(MSchedGraphNode *node, std::vector<MSchedGraphNode*> &path, std::set<MSchedGraphNode*> &nodesToAdd); @@ -117,8 +121,8 @@ namespace llvm { void computePartialOrder(); - bool computeSchedule(const MachineBasicBlock *BB); - bool scheduleNode(MSchedGraphNode *node, + bool computeSchedule(const MachineBasicBlock *BB, MSchedGraph *MSG); + bool scheduleNode(MSchedGraphNode *node, int start, int end); void predIntersect(std::set<MSchedGraphNode*> &CurrentSet, std::set<MSchedGraphNode*> &IntersectResult); @@ -148,6 +152,12 @@ namespace llvm { // getAnalysisUsage virtual void getAnalysisUsage(AnalysisUsage &AU) const { + /// HACK: We don't actually need loopinfo or scev, but we have + /// to say we do so that the pass manager does not delete it + /// before we run. + AU.addRequired<LoopInfo>(); + AU.addRequired<ScalarEvolution>(); + AU.addRequired<DependenceAnalyzer>(); } |

