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 | 9f838225658a5c900b5199db36779c56d0adbc11 (patch) | |
tree | cc080cf7f31b8f896d48fc62daca82697ca34a56 /lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | |
parent | 3fe4d3cb5bd5ea7948faeed8451b61380d928808 (diff) |
Updated dependence analyzer. Fixed numerous bugs. Same stage scheduling, etc.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@21444 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h')
-rw-r--r-- | lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | 16 |
1 files changed, 13 insertions, 3 deletions
diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h index 9a7bfe7801..e68948479e 100644 --- a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h +++ b/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>(); } |