Strenghten type of waves to Set
Change-Id: Ib45954cac0e4c70b3e91b68d78f2a3ed9c45f9df
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java b/src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java
index 96c93a9..9616c47 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/PostMethodProcessor.java
@@ -31,8 +31,8 @@
private final AppView<AppInfoWithLiveness> appView;
private final Map<DexEncodedMethod, Collection<CodeOptimization>> methodsMap;
- private final Deque<Collection<DexEncodedMethod>> waves;
- private Collection<DexEncodedMethod> wave;
+ private final Deque<Set<DexEncodedMethod>> waves;
+ private Set<DexEncodedMethod> wave;
private PostMethodProcessor(
AppView<AppInfoWithLiveness> appView,
@@ -107,9 +107,9 @@
}
}
- private Deque<Collection<DexEncodedMethod>> createWaves(AppView<?> appView, CallGraph callGraph) {
+ private Deque<Set<DexEncodedMethod>> createWaves(AppView<?> appView, CallGraph callGraph) {
IROrdering shuffle = appView.options().testing.irOrdering;
- Deque<Collection<DexEncodedMethod>> waves = new ArrayDeque<>();
+ Deque<Set<DexEncodedMethod>> waves = new ArrayDeque<>();
int waveCount = 1;
while (!callGraph.isEmpty()) {
diff --git a/src/main/java/com/android/tools/r8/utils/IROrdering.java b/src/main/java/com/android/tools/r8/utils/IROrdering.java
index 4b4ded3..db97cfa 100644
--- a/src/main/java/com/android/tools/r8/utils/IROrdering.java
+++ b/src/main/java/com/android/tools/r8/utils/IROrdering.java
@@ -8,7 +8,9 @@
import com.google.common.collect.Lists;
import java.util.Collection;
import java.util.Collections;
+import java.util.LinkedHashSet;
import java.util.List;
+import java.util.Set;
public interface IROrdering {
@@ -16,6 +18,8 @@
Collection<DexEncodedMethod> order(Collection<DexEncodedMethod> methods);
+ Set<DexEncodedMethod> order(Set<DexEncodedMethod> methods);
+
class IdentityIROrdering implements IROrdering {
private static final IdentityIROrdering INSTANCE = new IdentityIROrdering();
@@ -35,6 +39,11 @@
public Collection<DexEncodedMethod> order(Collection<DexEncodedMethod> methods) {
return methods;
}
+
+ @Override
+ public Set<DexEncodedMethod> order(Set<DexEncodedMethod> methods) {
+ return methods;
+ }
}
class NondeterministicIROrdering implements IROrdering {
@@ -58,5 +67,10 @@
public List<DexEncodedMethod> order(Collection<DexEncodedMethod> methods) {
return order((Iterable<DexEncodedMethod>) methods);
}
+
+ @Override
+ public Set<DexEncodedMethod> order(Set<DexEncodedMethod> methods) {
+ return new LinkedHashSet<>(order((Iterable<DexEncodedMethod>) methods));
+ }
}
}