diff options
author | Tanya Lattner <tonic@nondot.org> | 2005-02-10 17:02:58 +0000 |
---|---|---|
committer | Tanya Lattner <tonic@nondot.org> | 2005-02-10 17:02:58 +0000 |
commit | db40cf1b5806812b5f9a79a0ce4fb154b3e10752 (patch) | |
tree | 4645321a24b1196a6f601826297409f4c9719c92 /lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | |
parent | 4bcb011f964f249f365c24cd8437001f3f75217c (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.h | 12 |
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, |