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.


git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@24815 91177308-0d34-0410-b5e6-96231b3b80d8
This commit is contained in:
Jim Laskey 2005-12-18 03:59:21 +00:00
parent 6aa45292c6
commit 9022ed955a

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);
}