Skip ArrayConstructionSimplifier when no NewArrayEmpty opcodes exist

Change-Id: I8f96405ab3dd2e4dcc9a9ffae9a653957e7f17fa
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java b/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
index d26c44c..2d8cc3e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRMetadata.java
@@ -244,6 +244,10 @@
     return get(Opcodes.MUL);
   }
 
+  public boolean mayHaveNewArrayEmpty() {
+    return get(Opcodes.NEW_ARRAY_EMPTY);
+  }
+
   public boolean mayHaveNewArrayFilled() {
     return get(Opcodes.NEW_ARRAY_FILLED);
   }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
index b0cac47..df8d38a 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/passes/ArrayConstructionSimplifier.java
@@ -101,7 +101,7 @@
 
   @Override
   protected boolean shouldRewriteCode(IRCode code) {
-    return true;
+    return code.metadata().mayHaveNewArrayEmpty();
   }
 
   private boolean simplifyArrayConstructionBlock(