Add non-null IR after zero test.

NonNullMarker currently adds non-null IR after implicit instructions,
such as invoke-*, (i|a)(get|put). They are implicit in the sense that
not raising NPE implies the receiver or array is not null.  There is one
more case we can add non-null: explicit null check (actually zero test).

Since NonNullMarker is used before conducting type analysis, we do not
know whether the given value is reference type or not. Though, it is
safe to add non-null IR, since NonNull#evalute will return the type
lattice as-is if it is not a reference type.

Bug: 70794661
Change-Id: I8b32d3b5377801bdf15d3c43f719edc4fd811831
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
index 02a2dd9..8663b91 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
@@ -400,6 +400,10 @@
     return instructions;
   }
 
+  public boolean isEmpty() {
+    return instructions.isEmpty();
+  }
+
   public Instruction entry() {
     return instructions.get(0);
   }