aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2005-04-22 06:32:48 +0000
committerTanya Lattner <tonic@nondot.org>2005-04-22 06:32:48 +0000
commit9f838225658a5c900b5199db36779c56d0adbc11 (patch)
treecc080cf7f31b8f896d48fc62daca82697ca34a56 /lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
parent3fe4d3cb5bd5ea7948faeed8451b61380d928808 (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.h16
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>();
}