forked from OSchip/llvm-project
parent
3e7a193bd7
commit
c28fd0db2e
|
@ -112,11 +112,12 @@ void MSchedGraph::addNode(const MachineInstr *MI,
|
|||
void MSchedGraph::deleteNode(MSchedGraphNode *node) {
|
||||
|
||||
//Delete the edge to this node from all predecessors
|
||||
for(MSchedGraphNode::pred_iterator P = node->pred_begin(), PE = node->pred_end();
|
||||
P != PE; ++P) {
|
||||
(*P)->deleteSuccessor(node);
|
||||
while(node->pred_size() > 0) {
|
||||
//DEBUG(std::cerr << "Delete edge from: " << **P << " to " << *node << "\n");
|
||||
MSchedGraphNode *pred = *(node->pred_begin());
|
||||
pred->deleteSuccessor(node);
|
||||
}
|
||||
|
||||
|
||||
//Remove this node from the graph
|
||||
GraphMap.erase(node->getInst());
|
||||
|
||||
|
|
|
@ -77,6 +77,8 @@ namespace llvm {
|
|||
Statistic<> MSLoops("modulosched-schedLoops", "Number of loops successfully modulo-scheduled");
|
||||
Statistic<> IncreasedII("modulosched-increasedII", "Number of times we had to increase II");
|
||||
Statistic<> SingleBBLoops("modulosched-singeBBLoops", "Number of single basic block loops");
|
||||
Statistic<> NoSched("modulosched-noSched", "No schedule");
|
||||
Statistic<> SameStage("modulosched-sameStage", "Max stage is 0");
|
||||
|
||||
template<>
|
||||
struct DOTGraphTraits<MSchedGraph*> : public DefaultDOTGraphTraits {
|
||||
|
@ -252,9 +254,13 @@ bool ModuloSchedulingPass::runOnFunction(Function &F) {
|
|||
++MSLoops;
|
||||
Changed = true;
|
||||
}
|
||||
else
|
||||
else {
|
||||
if(!haveSched)
|
||||
++NoSched;
|
||||
else
|
||||
++SameStage;
|
||||
DEBUG(std::cerr << "Max stage is 0, so no change in loop or reached cap\n");
|
||||
|
||||
}
|
||||
//Clear out our maps for the next basic block that is processed
|
||||
nodeToAttributesMap.clear();
|
||||
partialOrder.clear();
|
||||
|
|
Loading…
Reference in New Issue