Fix nowinandroid benchmark
Change-Id: Icd7b6118b91cfad7e15fdc9ffcb53b1ec34ccacd
diff --git a/src/main/java/com/android/tools/r8/graph/analysis/ResourceAccessAnalysis.java b/src/main/java/com/android/tools/r8/graph/analysis/ResourceAccessAnalysis.java
index 6f13fb5..613d484 100644
--- a/src/main/java/com/android/tools/r8/graph/analysis/ResourceAccessAnalysis.java
+++ b/src/main/java/com/android/tools/r8/graph/analysis/ResourceAccessAnalysis.java
@@ -163,7 +163,6 @@
field.getHolder().staticFields(DexEncodedField::hasExplicitStaticValue)) {
DexValue staticValue = staticField.getStaticValue();
if (staticValue.isDexValueInt()) {
- assert !enqueuer.getMode().isInitialTreeShaking();
IntList values = new IntArrayList(1);
values.add(staticValue.asDexValueInt().getValue());
rClassValueBuilder.addMapping(staticField.getReference(), values);
diff --git a/src/test/java/com/android/tools/r8/R8TestCompileResult.java b/src/test/java/com/android/tools/r8/R8TestCompileResult.java
index ef7013b..336eb75 100644
--- a/src/test/java/com/android/tools/r8/R8TestCompileResult.java
+++ b/src/test/java/com/android/tools/r8/R8TestCompileResult.java
@@ -73,7 +73,7 @@
}
public R8TestCompileResult benchmarkResourceSize(BenchmarkResults results) throws IOException {
- results.addCodeSizeResult(Files.size(resourceShrinkerOutput));
+ results.addResourceSizeResult(Files.size(resourceShrinkerOutput));
return self();
}
diff --git a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResults.java b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResults.java
index 4fa9f24..25e2958 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResults.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResults.java
@@ -12,6 +12,9 @@
// Append a code size result. This is always assumed to be identical if called multiple times.
void addCodeSizeResult(long result);
+ // Append a resource size result. This is always assumed to be identical if called multiple times.
+ void addResourceSizeResult(long result);
+
// Get the results collection for a "sub-benchmark" when defining a group of benchmarks.
// This will throw if called on a benchmark without sub-benchmarks.
BenchmarkResults getSubResults(String name);
diff --git a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsCollection.java b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsCollection.java
index 29f0c78..a960739 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsCollection.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsCollection.java
@@ -35,6 +35,13 @@
}
@Override
+ public void addResourceSizeResult(long result) {
+ throw new BenchmarkConfigError(
+ "Unexpected attempt to add a runtime result to a the root of a benchmark with"
+ + " sub-benchmarks");
+ }
+
+ @Override
public BenchmarkResults getSubResults(String name) {
return results.get(name);
}
diff --git a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsSingle.java b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsSingle.java
index b3c19d9..fc6540e 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsSingle.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsSingle.java
@@ -33,6 +33,11 @@
}
@Override
+ public void addResourceSizeResult(long result) {
+ addCodeSizeResult(result);
+ }
+
+ @Override
public BenchmarkResults getSubResults(String name) {
throw new BenchmarkConfigError(
"Unexpected attempt to get sub-results for benchmark without sub-benchmarks");
diff --git a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsWarmup.java b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsWarmup.java
index d866577..86b1dc4 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsWarmup.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/BenchmarkResultsWarmup.java
@@ -12,6 +12,7 @@
private final String name;
private final LongList runtimeResults = new LongArrayList();
private long codeSizeResult = -1;
+ private long resourceSizeResult = -1;
public BenchmarkResultsWarmup(String name) {
this.name = name;
@@ -34,6 +35,17 @@
}
@Override
+ public void addResourceSizeResult(long result) {
+ if (resourceSizeResult == -1) {
+ resourceSizeResult = result;
+ }
+ if (resourceSizeResult != result) {
+ throw new RuntimeException(
+ "Unexpected resource size difference: " + result + " and " + resourceSizeResult);
+ }
+ }
+
+ @Override
public BenchmarkResults getSubResults(String name) {
// When running warmups all results are amended to the single warmup result.
return this;