Ignore dead code in dominator tree

Change-Id: I81eb2b6078bb8de2fc8183a876a1b40c91cc4494
diff --git a/src/main/java/com/android/tools/r8/ir/code/DominatorTree.java b/src/main/java/com/android/tools/r8/ir/code/DominatorTree.java
index 90a9b29..511293f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DominatorTree.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DominatorTree.java
@@ -10,10 +10,9 @@
 import java.util.List;
 
 public class DominatorTree {
-
   private BasicBlock[] sorted;
   private BasicBlock[] doms;
-  private final BasicBlock normalExitBlock = new BasicBlock();
+  private BasicBlock normalExitBlock = new BasicBlock();
 
   public DominatorTree(IRCode code) {
     this(code, Collections.emptyList());
@@ -23,13 +22,14 @@
   DominatorTree(IRCode code, List<BasicBlock> blocksToIgnore) {
     BasicBlock[] blocks = code.topologicallySortedBlocks(blocksToIgnore);
     // Add the internal exit block to the block list.
+    for (BasicBlock block : blocks) {
+      if (block.exit().isReturn()) {
+        normalExitBlock.getPredecessors().add(block);
+      }
+    }
     sorted = new BasicBlock[blocks.length + 1];
     System.arraycopy(blocks, 0, sorted, 0, blocks.length);
     sorted[blocks.length] = normalExitBlock;
-    // Link internal exit block to each actual exit block.
-    for (BasicBlock block : code.computeNormalExitBlocks()) {
-      normalExitBlock.getPredecessors().add(block);
-    }
     numberBlocks();
     build();
   }