aboutsummaryrefslogtreecommitdiff
path: root/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
diff options
context:
space:
mode:
authorTanya Lattner <tonic@nondot.org>2005-02-10 17:02:58 +0000
committerTanya Lattner <tonic@nondot.org>2005-02-10 17:02:58 +0000
commitdb40cf1b5806812b5f9a79a0ce4fb154b3e10752 (patch)
tree4645321a24b1196a6f601826297409f4c9719c92 /lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
parent4bcb011f964f249f365c24cd8437001f3f75217c (diff)
Added new circuit finding alogrithm.
Fixed bug in graph so that phi ite diff edges are added. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@20108 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h')
-rw-r--r--lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h12
1 files changed, 11 insertions, 1 deletions
diff --git a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
index fa523d138c..a8215d6a42 100644
--- a/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
+++ b/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h
@@ -67,7 +67,7 @@ namespace llvm {
int II;
//Internal functions
- void CreateDefMap(MachineBasicBlock *BI);
+ bool CreateDefMap(MachineBasicBlock *BI);
bool MachineBBisValid(const MachineBasicBlock *BI);
int calculateResMII(const MachineBasicBlock *BI);
int calculateRecMII(MSchedGraph *graph, int MII);
@@ -87,6 +87,16 @@ namespace llvm {
std::vector<MSchedGraphNode*> &visitedNodes, int II);
void addReccurrence(std::vector<MSchedGraphNode*> &recurrence, int II, MSchedGraphNode*, MSchedGraphNode*);
+ void findAllCircuits(MSchedGraph *MSG, int II);
+ bool circuit(MSchedGraphNode *v, std::vector<MSchedGraphNode*> &stack,
+ std::set<MSchedGraphNode*> &blocked,
+ std::vector<MSchedGraphNode*> &SCC, MSchedGraphNode *s,
+ std::map<MSchedGraphNode*, std::set<MSchedGraphNode*> > &B, int II,
+ std::map<MSchedGraphNode*, MSchedGraphNode*> &newNodes);
+
+ void unblock(MSchedGraphNode *u, std::set<MSchedGraphNode*> &blocked,
+ std::map<MSchedGraphNode*, std::set<MSchedGraphNode*> > &B);
+
void computePartialOrder();
bool computeSchedule();
bool scheduleNode(MSchedGraphNode *node,