Groups were not emitted if the dominator node and the node in the ordering list

were not the same node.  Ultimately the test was bogus.

llvm-svn: 24815
This commit is contained in:
Jim Laskey 2005-12-18 03:59:21 +00:00
parent 53c1f75090
commit e220821deb
1 changed files with 6 additions and 10 deletions

View File

@ -653,10 +653,10 @@ bool SimpleSched::isPassiveNode(SDNode *Node) {
/// IncludeNode - Add node to NodeInfo vector.
///
void SimpleSched::IncludeNode(NodeInfo *NI) {
// Get node
SDNode *Node = NI->Node;
// Ignore entry node
if (Node->getOpcode() == ISD::EntryToken) return;
// Get node
SDNode *Node = NI->Node;
// Ignore entry node
if (Node->getOpcode() == ISD::EntryToken) return;
// Check current count for node
int Count = NI->getPending();
// If the node is already in list
@ -987,13 +987,9 @@ void SimpleSched::EmitAll() {
for (unsigned i = 0, N = Ordering.size(); i < N; i++) {
// Get the scheduling info
NodeInfo *NI = Ordering[i];
// Iterate through nodes
NodeGroupIterator NGI(Ordering[i]);
if (NI->isInGroup()) {
if (NI->isGroupDominator()) {
NodeGroupIterator NGI(Ordering[i]);
while (NodeInfo *NI = NGI.next()) EmitNode(NI);
}
NodeGroupIterator NGI(Ordering[i]);
while (NodeInfo *NI = NGI.next()) EmitNode(NI);
} else {
EmitNode(NI);
}