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 | 56807c6f4a1f88beadbb5d19da7461d72007137a (patch) | |
| tree | c6da41a871daba47a18463fe55aeb3dc253c2135 /llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | |
| parent | 1137d7c6a1db330caaaa8b91fff7e6efe62987fc (diff) | |
| download | bcm5719-llvm-56807c6f4a1f88beadbb5d19da7461d72007137a.tar.gz bcm5719-llvm-56807c6f4a1f88beadbb5d19da7461d72007137a.zip | |
Added new circuit finding alogrithm.
Fixed bug in graph so that phi ite diff edges are added.
llvm-svn: 20108
Diffstat (limited to 'llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h')
| -rw-r--r-- | llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h | 12 |
1 files changed, 11 insertions, 1 deletions
diff --git a/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h b/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h index fa523d138cc..a8215d6a422 100644 --- a/llvm/lib/Target/SparcV9/ModuloScheduling/ModuloScheduling.h +++ b/llvm/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, |

