Parallellize assertion enabling analysis in D8
Change-Id: I3b9870733140bd26fa0ed0a70274466f89d91db0
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 1ce0024..615ca13 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexApplication;
+import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.GraphLense;
import com.android.tools.r8.graph.InitClassLens;
@@ -174,11 +175,15 @@
ClassInitializerAssertionEnablingAnalysis analysis =
new ClassInitializerAssertionEnablingAnalysis(
appInfo.dexItemFactory(), OptimizationFeedbackSimple.getInstance());
- for (DexProgramClass clazz : appInfo.classes()) {
- if (clazz.hasClassInitializer()) {
- analysis.processNewlyLiveMethod(clazz.getClassInitializer());
- }
- }
+ ThreadUtils.processItems(
+ appInfo.classes(),
+ clazz -> {
+ DexEncodedMethod classInitializer = clazz.getClassInitializer();
+ if (classInitializer != null) {
+ analysis.processNewlyLiveMethod(classInitializer);
+ }
+ },
+ executor);
}
AppView<?> appView = AppView.createForD8(appInfo, options, rewritePrefix);