diff options
author | Evan Cheng <evan.cheng@apple.com> | 2006-08-02 22:01:32 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2006-08-02 22:01:32 +0000 |
commit | 8f585196e1e94111f1a0205b73193f8e6770e47f (patch) | |
tree | d273a594f84bfe7a0ce9da231a0c5af56e266ed9 /llvm/lib | |
parent | bba1ebda32974c5120bf76831a7d6e4eaae44c79 (diff) | |
download | bcm5719-llvm-8f585196e1e94111f1a0205b73193f8e6770e47f.tar.gz bcm5719-llvm-8f585196e1e94111f1a0205b73193f8e6770e47f.zip |
Reflect change to AssignTopologicalOrder().
llvm-svn: 29480
Diffstat (limited to 'llvm/lib')
-rw-r--r-- | llvm/lib/Target/X86/X86ISelDAGToDAG.cpp | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp index 3896797724e..3239df9ca2c 100644 --- a/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp +++ b/llvm/lib/Target/X86/X86ISelDAGToDAG.cpp @@ -271,12 +271,15 @@ void X86DAGToDAGISel::DetermineReachability(SDNode *f, SDNode *t) { if (N->getNumOperands() == 0) continue; - for (unsigned i2 = Orderf; ; ++i2) { + for (unsigned i2 = Range; ; ++i2) { SDNode *M = TopOrder[i2]; if (isReachable(M, N)) { // Update reachability from M to N's operands. - for (SDNode::op_iterator I = N->op_begin(), E = N->op_end(); I != E;++I) - setReachable(M, I->Val); + for (SDNode::op_iterator I = N->op_begin(),E = N->op_end(); I != E;++I){ + SDNode *P = I->Val; + if (P->getNodeId() >= 0) + setReachable(M, P); + } } if (M == N) break; } @@ -291,8 +294,7 @@ void X86DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) { DEBUG(BB->dump()); MachineFunction::iterator FirstMBB = BB; - TopOrder = DAG.AssignTopologicalOrder(); - DAGSize = TopOrder.size(); + DAGSize = DAG.AssignTopologicalOrder(TopOrder); unsigned RMSize = (DAGSize * DAGSize + 7) / 8; ReachabilityMatrix = new unsigned char[RMSize]; memset(ReachabilityMatrix, 0, RMSize); @@ -318,6 +320,7 @@ void X86DAGToDAGISel::InstructionSelectBasicBlock(SelectionDAG &DAG) { ReachabilityMatrix = NULL; ReachMatrixRange = NULL; UnfoldableSet = NULL; + TopOrder.clear(); CodeGenMap.clear(); HandleMap.clear(); ReplaceMap.clear(); |