Add timing to ClassToFeatureSplitMap rewriting
Change-Id: Id900e45504c0d91591b88136fe84be6e74d91344
diff --git a/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java b/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
index 3033f19..f4ed7cd 100644
--- a/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
+++ b/src/main/java/com/android/tools/r8/features/ClassToFeatureSplitMap.java
@@ -21,6 +21,7 @@
import com.android.tools.r8.synthesis.SyntheticItems;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.Reporter;
+import com.android.tools.r8.utils.Timing;
import com.google.common.collect.Sets;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -289,7 +290,11 @@
== getFeatureSplit(b, options, startupProfile, syntheticItems);
}
- public ClassToFeatureSplitMap rewrittenWithLens(GraphLens lens) {
+ public ClassToFeatureSplitMap rewrittenWithLens(GraphLens lens, Timing timing) {
+ return timing.time("Rewrite ClassToFeatureSplitMap", () -> rewrittenWithLens(lens));
+ }
+
+ private ClassToFeatureSplitMap rewrittenWithLens(GraphLens lens) {
Map<DexType, FeatureSplit> rewrittenClassToFeatureSplitMap = new IdentityHashMap<>();
classToFeatureSplitMap.forEach(
(type, featureSplit) -> {
diff --git a/src/main/java/com/android/tools/r8/graph/AppView.java b/src/main/java/com/android/tools/r8/graph/AppView.java
index c728fda..cda6d1f 100644
--- a/src/main/java/com/android/tools/r8/graph/AppView.java
+++ b/src/main/java/com/android/tools/r8/graph/AppView.java
@@ -980,7 +980,8 @@
if (appView.hasLiveness()) {
appView
.withLiveness()
- .setAppInfo(appView.appInfoWithLiveness().rewrittenWithLens(application, lens));
+ .setAppInfo(
+ appView.appInfoWithLiveness().rewrittenWithLens(application, lens, timing));
} else {
assert appView.hasClassHierarchy();
AppView<AppInfoWithClassHierarchy> appViewWithClassHierarchy =
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index 472680e..ed40807 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -65,6 +65,7 @@
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.PredicateSet;
import com.android.tools.r8.utils.ThreadUtils;
+import com.android.tools.r8.utils.Timing;
import com.android.tools.r8.utils.Visibility;
import com.android.tools.r8.utils.WorkList;
import com.android.tools.r8.utils.collections.ProgramMethodSet;
@@ -1113,7 +1114,7 @@
}
public AppInfoWithLiveness rewrittenWithLens(
- DirectMappedDexApplication application, NonIdentityGraphLens lens) {
+ DirectMappedDexApplication application, NonIdentityGraphLens lens, Timing timing) {
assert checkIfObsolete();
// Switchmap classes should never be affected by renaming.
@@ -1129,7 +1130,7 @@
committedItems.getApplication().getDefinitionsSupplier(committedItems);
return new AppInfoWithLiveness(
committedItems,
- getClassToFeatureSplitMap().rewrittenWithLens(lens),
+ getClassToFeatureSplitMap().rewrittenWithLens(lens, timing),
getMainDexInfo().rewrittenWithLens(getSyntheticItems(), lens),
getMissingClasses(),
deadProtoTypes,