| commit | ca83a4d86859229a3c1e5fe938125342931d5e77 | [log] [tgz] |
|---|---|---|
| author | Andrew Grieve <agrieve@google.com> | Mon Jan 08 11:03:57 2024 -0500 |
| committer | Andrew Grieve <agrieve@google.com> | Mon Jan 08 11:03:57 2024 -0500 |
| tree | 12130253ca4148f1a463aaee21263d12d3204389 | |
| parent | cda02b9403082ae753a6729b7cfa3f04feecd9e8 [diff] |
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(