diff --git a/src/main/java/com/android/tools/r8/ir/optimize/OutlinerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/OutlinerImpl.java
index 7ef7216..4093846 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/OutlinerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/OutlinerImpl.java
@@ -795,6 +795,9 @@
       while (index < currentCandidateInstructions.size()) {
         processInstruction(currentCandidateInstructions.get(index));
       }
+      if (actualInstructions > 0) {
+        candidate(start, index);
+      }
     }
 
     // Get int in-values for an instruction. For commutative binary operations using the current
@@ -1448,12 +1451,17 @@
         boolean sawLinearFlowWithCatchHandlers = false;
         while (instructionIterator.hasNext()) {
           Instruction instruction = instructionIterator.next();
-          // Disregard linear flow when there are catch handlers
-          if (instruction.getBlock() != block
-              && (block.hasCatchHandlers() || instruction.getBlock().hasCatchHandlers())) {
-            lastSeenBlock = instruction.getBlock();
-            sawLinearFlowWithCatchHandlers = true;
-            break;
+          if (instruction.getBlock() != block) {
+            // Disregard linear flow when there are catch handlers
+            if (block.hasCatchHandlers() || instruction.getBlock().hasCatchHandlers()) {
+              lastSeenBlock = instruction.getBlock();
+              sawLinearFlowWithCatchHandlers = true;
+              break;
+            }
+            // Disregard revisiting already processed blocks.
+            if (seenBlocks.contains(instruction.getBlock())) {
+              break;
+            }
           }
           builder.add(instruction);
           counter++;
@@ -1464,6 +1472,7 @@
           }
           lastSeenBlock = instruction.getBlock();
         }
+        // Add all seen blocks including trivial goto blocks skipped by the linear iterator.
         seenBlocks.addAll(instructionIterator.getSeenBlocks());
         if (sawLinearFlowWithCatchHandlers) {
           assert lastSeenBlock != block;
