This is supposed to be a preorder numbering of the dominator tree, not the CFG.
authorOwen Anderson <resistor@mac.com>
Fri, 12 Jun 2009 21:50:22 +0000 (21:50 +0000)
committerOwen Anderson <resistor@mac.com>
Fri, 12 Jun 2009 21:50:22 +0000 (21:50 +0000)
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@73257 91177308-0d34-0410-b5e6-96231b3b80d8

lib/CodeGen/LazyLiveness.cpp

index 85817da2e4f21db05567d92f1ce6864a7b2c0d2c..4b2d737e6d317cac152d915487ff0af773dce1e1 100644 (file)
@@ -62,13 +62,14 @@ bool LazyLiveness::runOnMachineFunction(MachineFunction &mf) {
   preorder.clear();
   
   MRI = &mf.getRegInfo();
+  MachineDominatorTree& MDT = getAnalysis<MachineDominatorTree>();
   
   // Step 0: Compute preorder numbering for all MBBs.
   unsigned num = 0;
-  for (df_iterator<MachineBasicBlock*> DI = df_begin(&*mf.begin());
-       DI != df_end(&*mf.begin()); ++DI) {
-    preorder[*DI] = num++;
-    rev_preorder.push_back(*DI);
+  for (df_iterator<MachineDomTreeNode*> DI = df_begin(MDT.getRootNode());
+       DI != df_end(MDT.getRootNode()); ++DI) {
+    preorder[(*DI)->getBlock()] = num++;
+    rev_preorder.push_back((*DI)->getBlock());
   }
   
   // Step 1: Compute the transitive closure of the CFG, ignoring backedges.