Avoid Timing capture in DexApplication.
Change-Id: Idb232783bd2f21b4b137cf7e6189425cddb7851e
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index 2e7a303..7937a81 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -326,7 +326,7 @@
timing.end(); // post-converter
reportSyntheticInformation(appView);
- writeApplication(appView, inputApp, marker, executor);
+ writeApplication(appView, inputApp, marker, executor, timing);
options.printWarnings();
} catch (ExecutionException e) {
@@ -351,16 +351,20 @@
}
private static void writeApplication(
- AppView<AppInfo> appView, AndroidApp inputApp, Marker marker, ExecutorService executor)
+ AppView<AppInfo> appView,
+ AndroidApp inputApp,
+ Marker marker,
+ ExecutorService executor,
+ Timing timing)
throws ExecutionException, IOException {
InternalOptions options = appView.options();
if (options.partialSubCompilationConfiguration != null) {
new R8PartialApplicationWriter(appView).write(executor);
} else if (options.isGeneratingClassFiles()) {
new CfApplicationWriter(appView, marker)
- .write(options.getClassFileConsumer(), executor, inputApp);
+ .write(options.getClassFileConsumer(), executor, timing, inputApp);
} else {
- ApplicationWriter.create(appView, marker).write(executor, inputApp);
+ ApplicationWriter.create(appView, marker).write(executor, timing, inputApp);
}
}
@@ -443,7 +447,7 @@
ConvertedCfFiles convertedCfFiles = new ConvertedCfFiles();
new GenericSignatureRewriter(appView).run(appView.appInfo().classes(), executor);
new KotlinMetadataRewriter(appView).runForD8(executor);
- ApplicationWriter.create(appView, marker, convertedCfFiles).write(executor);
+ ApplicationWriter.create(appView, marker, convertedCfFiles).write(executor, timing);
AndroidApp.Builder builder = AndroidApp.builder(inputApp);
builder.getProgramResourceProviders().clear();
builder.addProgramResourceProvider(convertedCfFiles);
diff --git a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
index 656bf8a..87975d5 100644
--- a/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
+++ b/src/main/java/com/android/tools/r8/GlobalSyntheticsGenerator.java
@@ -133,11 +133,12 @@
assert GlobalSyntheticsGeneratorVerifier.verifyExpectedClassesArePresent(appView);
if (options.isGeneratingDex()) {
- ApplicationWriter.create(appView, options.getMarker()).write(executorService, app);
+ ApplicationWriter.create(appView, options.getMarker())
+ .write(executorService, timing, app);
} else {
assert options.isGeneratingClassFiles();
new CfApplicationWriter(appView, options.getMarker())
- .write(options.getClassFileConsumer(), executorService, app);
+ .write(options.getClassFileConsumer(), executorService, timing, app);
}
} catch (ExecutionException e) {
throw unwrapExecutionException(e);
diff --git a/src/main/java/com/android/tools/r8/L8.java b/src/main/java/com/android/tools/r8/L8.java
index df2b349..6f0143b 100644
--- a/src/main/java/com/android/tools/r8/L8.java
+++ b/src/main/java/com/android/tools/r8/L8.java
@@ -147,7 +147,7 @@
new GenericSignatureRewriter(appView).run(appView.appInfo().classes(), executor);
new CfApplicationWriter(appView, options.getMarker())
- .write(options.getClassFileConsumer(), executor);
+ .write(options.getClassFileConsumer(), executor, timing);
options.printWarnings();
} catch (ExecutionException e) {
throw unwrapExecutionException(e);
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index d464b7b..cdde69c 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -221,7 +221,7 @@
}
static void writeApplication(
- AppView<?> appView, AndroidApp inputApp, ExecutorService executorService)
+ AppView<?> appView, AndroidApp inputApp, ExecutorService executorService, Timing timing)
throws ExecutionException {
InternalOptions options = appView.options();
InspectorImpl.runInspections(options.outputInspections, appView.appInfo().classes());
@@ -230,9 +230,9 @@
assert marker != null;
if (options.isGeneratingClassFiles()) {
new CfApplicationWriter(appView, marker)
- .write(options.getClassFileConsumer(), executorService, inputApp);
+ .write(options.getClassFileConsumer(), executorService, timing, inputApp);
} else {
- ApplicationWriter.create(appView, marker).write(executorService, inputApp);
+ ApplicationWriter.create(appView, marker).write(executorService, timing, inputApp);
}
} catch (IOException e) {
throw new RuntimeException("Cannot write application", e);
@@ -938,7 +938,7 @@
// Generate the resulting application resources.
writeKeepDeclarationsToConfigurationConsumer(keepDeclarations);
- writeApplication(appView, inputApp, executorService);
+ writeApplication(appView, inputApp, executorService, timing);
if (options.androidResourceProvider != null && options.androidResourceConsumer != null) {
shrinkResources(dexFileContent, appView);
diff --git a/src/main/java/com/android/tools/r8/R8Assistant.java b/src/main/java/com/android/tools/r8/R8Assistant.java
index 085c895..bf43e81 100644
--- a/src/main/java/com/android/tools/r8/R8Assistant.java
+++ b/src/main/java/com/android/tools/r8/R8Assistant.java
@@ -76,7 +76,7 @@
}
SyntheticFinalization.finalize(appView, timing, executorService);
ApplicationWriter writer = ApplicationWriter.create(appView, options.getMarker());
- writer.write(executorService);
+ writer.write(executorService, timing);
} catch (ExecutionException e) {
throw unwrapExecutionException(e);
} finally {
diff --git a/src/main/java/com/android/tools/r8/bisect/Bisect.java b/src/main/java/com/android/tools/r8/bisect/Bisect.java
index 5217d7a..901adce 100644
--- a/src/main/java/com/android/tools/r8/bisect/Bisect.java
+++ b/src/main/java/com/android/tools/r8/bisect/Bisect.java
@@ -80,7 +80,7 @@
return state.getFinalClass();
}
if (command == null) {
- writeApp(app, output, executor);
+ writeApp(app, output, executor, timing);
System.out.println("Bisecting completed with build in " + output + "/");
System.out.println("Continue bisection by passing either --"
+ BisectOptions.RESULT_GOOD_FLAG + " or --"
@@ -125,7 +125,7 @@
if (options.command != null) {
command =
(application) -> {
- writeApp(application, output, executor);
+ writeApp(application, output, executor, timing);
return runCommand(options.command, options.goodBuild, options.badBuild, output);
};
}
@@ -178,7 +178,8 @@
return new ApplicationReader(app, options, Timing.empty()).read(executor);
}
- private static void writeApp(DexApplication app, Path output, ExecutorService executor)
+ private static void writeApp(
+ DexApplication app, Path output, ExecutorService executor, Timing timing)
throws IOException, ExecutionException {
InternalOptions options = app.options;
// Save the original consumers, so they can be unwrapped after write.
@@ -190,7 +191,7 @@
AppView.createForD8(
AppInfo.createInitialAppInfo(app, GlobalSyntheticsStrategy.forNonSynthesizing())),
null);
- writer.write(executor);
+ writer.write(executor, timing);
options.signalFinishedToConsumers();
compatSink.build().writeToDirectory(output, OutputMode.DexIndexed);
// Restore original consumers.
diff --git a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
index ad2b61f..4417c8a 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
@@ -269,9 +269,10 @@
}
/** Writer that never needs the input app to deal with mapping info for kotlin. */
- public void write(ExecutorService executorService) throws IOException, ExecutionException {
+ public void write(ExecutorService executorService, Timing timing)
+ throws IOException, ExecutionException {
assert !willComputeProguardMap();
- write(executorService, null);
+ write(executorService, timing, null);
}
protected void writeVirtualFiles(
@@ -303,9 +304,8 @@
}
}
- public void write(ExecutorService executorService, AndroidApp inputApp)
+ public void write(ExecutorService executorService, Timing timing, AndroidApp inputApp)
throws IOException, ExecutionException {
- Timing timing = appView.appInfo().app().timing;
timing.begin("DexApplication.write");
List<LazyDexString> lazyDexStrings = new ArrayList<>();
diff --git a/src/main/java/com/android/tools/r8/graph/DexApplication.java b/src/main/java/com/android/tools/r8/graph/DexApplication.java
index 80ea94a..513b41b 100644
--- a/src/main/java/com/android/tools/r8/graph/DexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DexApplication.java
@@ -26,8 +26,6 @@
private final ClassNameMapper proguardMap;
- public final Timing timing;
-
public final InternalOptions options;
public final DexItemFactory dexItemFactory;
private final DexApplicationReadFlags flags;
@@ -37,14 +35,12 @@
ClassNameMapper proguardMap,
DexApplicationReadFlags flags,
ImmutableList<DataResourceProvider> dataResourceProviders,
- InternalOptions options,
- Timing timing) {
+ InternalOptions options) {
this.proguardMap = proguardMap;
this.flags = flags;
this.dataResourceProviders = dataResourceProviders;
this.options = options;
this.dexItemFactory = options.itemFactory;
- this.timing = timing;
}
public abstract Builder<?, ?> builder();
diff --git a/src/main/java/com/android/tools/r8/graph/DirectMappedDexApplication.java b/src/main/java/com/android/tools/r8/graph/DirectMappedDexApplication.java
index c4ca293..5466eca 100644
--- a/src/main/java/com/android/tools/r8/graph/DirectMappedDexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/DirectMappedDexApplication.java
@@ -53,9 +53,8 @@
ImmutableCollection<DexClasspathClass> classpathClasses,
ImmutableList<DataResourceProvider> dataResourceProviders,
List<KeepDeclaration> keepDeclarations,
- InternalOptions options,
- Timing timing) {
- super(proguardMap, flags, dataResourceProviders, options, timing);
+ InternalOptions options) {
+ super(proguardMap, flags, dataResourceProviders, options);
this.programOrClasspathClasses = programOrClasspathClasses;
this.libraryClasses = libraryClasses;
this.programClasses = programClasses;
@@ -381,8 +380,7 @@
newClasspathClasses,
ImmutableList.copyOf(dataResourceProviders),
keepDeclarations,
- options,
- timing);
+ options);
}
}
diff --git a/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java b/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
index 7b7475c..20f7802 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyLoadedDexApplication.java
@@ -55,9 +55,8 @@
Map<DexType, DexClasspathClass> synthesizedClasspathClasses,
LibraryClassCollection libraryClasses,
List<KeepDeclaration> keepDeclarations,
- InternalOptions options,
- Timing timing) {
- super(proguardMap, flags, dataResourceProviders, options, timing);
+ InternalOptions options) {
+ super(proguardMap, flags, dataResourceProviders, options);
this.programClasses = programClasses;
this.classpathClasses = classpathClasses;
this.synthesizedClasspathClasses = synthesizedClasspathClasses;
@@ -440,8 +439,7 @@
synthesizedClasspathClasses,
libraryClasses,
keepDeclarations,
- options,
- timing);
+ options);
}
}
@@ -456,13 +454,14 @@
}
@Deprecated
- public DirectMappedDexApplication toDirectSingleThreadedForTesting() {
+ public DirectMappedDexApplication toDirectSingleThreadedForTesting(Timing timing) {
ExecutorService executor = Executors.newSingleThreadExecutor();
- return toDirectForTesting(executor);
+ return toDirectForTesting(executor, timing);
}
@Deprecated
- private DirectMappedDexApplication toDirectForTesting(ExecutorService executorService) {
+ private DirectMappedDexApplication toDirectForTesting(
+ ExecutorService executorService, Timing timing) {
try (Timing t0 = timing.begin("To direct app")) {
// As a side-effect, this will force-load all classes.
AllClasses allClasses = loadAllClasses(executorService, timing);
diff --git a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
index de3326e..772d746 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -50,21 +50,21 @@
this.marker = Optional.ofNullable(marker);
}
- public void write(ClassFileConsumer consumer, ExecutorService executorService)
+ public void write(ClassFileConsumer consumer, ExecutorService executorService, Timing timing)
throws ExecutionException {
assert !options.hasMappingFileSupport();
- write(consumer, executorService, null);
+ write(consumer, executorService, timing, null);
}
public void write(
- ClassFileConsumer consumer, ExecutorService executorService, AndroidApp inputApp)
+ ClassFileConsumer consumer,
+ ExecutorService executorService,
+ Timing timing,
+ AndroidApp inputApp)
throws ExecutionException {
- application.timing.begin("CfApplicationWriter.write");
- try {
- writeApplication(inputApp, consumer, executorService);
- } finally {
- application.timing.end();
- }
+ timing.time(
+ "CfApplicationWriter.write",
+ () -> writeApplication(inputApp, consumer, executorService, timing));
}
private boolean includeMarker(Marker marker) {
@@ -79,9 +79,11 @@
}
private void writeApplication(
- AndroidApp inputApp, ClassFileConsumer consumer, ExecutorService executorService)
+ AndroidApp inputApp,
+ ClassFileConsumer consumer,
+ ExecutorService executorService,
+ Timing timing)
throws ExecutionException {
- Timing timing = appView.appInfo().app().timing;
timing.begin("CfApplication.write");
ProguardMapSupplierResult mapSupplierResult = ProguardMapSupplierResult.createEmpty();
diff --git a/src/main/java/com/android/tools/r8/relocator/Relocator.java b/src/main/java/com/android/tools/r8/relocator/Relocator.java
index 7353fe3..e514628 100644
--- a/src/main/java/com/android/tools/r8/relocator/Relocator.java
+++ b/src/main/java/com/android/tools/r8/relocator/Relocator.java
@@ -95,7 +95,7 @@
timing.begin("Write application");
new CfApplicationWriter(appView, new Marker(Tool.Relocator))
- .write(command.getConsumer(), executor);
+ .write(command.getConsumer(), executor, timing);
timing.end();
timing.begin("Print warnings");
diff --git a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
index ac20e26..cf1a22c 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -4820,7 +4820,7 @@
timing.end();
appInfo.markObsolete();
if (options.testing.enqueuerInspector != null) {
- options.testing.enqueuerInspector.accept(appInfoWithLiveness, mode);
+ options.testing.enqueuerInspector.accept(appInfoWithLiveness, mode, timing);
}
return new EnqueuerResult(appInfoWithLiveness);
}
diff --git a/src/main/java/com/android/tools/r8/utils/InternalOptions.java b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
index 9853b30..bd2e808 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -2398,7 +2398,7 @@
this.mixedSectionLayoutStrategyInspector = mixedSectionLayoutStrategyInspector;
}
- public BiConsumer<AppInfoWithLiveness, Enqueuer.Mode> enqueuerInspector = null;
+ public TriConsumer<AppInfoWithLiveness, Enqueuer.Mode, Timing> enqueuerInspector = null;
public Consumer<String> processingContextsConsumer = null;
diff --git a/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGenerator.java b/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGenerator.java
index d2e56e3..a17597c 100644
--- a/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGenerator.java
+++ b/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGenerator.java
@@ -33,6 +33,7 @@
import com.android.tools.r8.utils.IntBox;
import com.android.tools.r8.utils.ThrowingBiConsumer;
import com.android.tools.r8.utils.collections.Pair;
+import com.android.tools.r8.utils.timing.Timing;
import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.FileOutputStream;
@@ -84,7 +85,8 @@
.addLibraryFile(androidJar)
.disableAndroidJarHiddenClassExtension()
.build();
- AppView<AppInfoWithClassHierarchy> appView = computeAppViewWithClassHierarchy(androidApp);
+ AppView<AppInfoWithClassHierarchy> appView =
+ computeAppViewWithClassHierarchy(androidApp, Timing.empty());
DexItemFactory factory = appView.dexItemFactory();
CovariantMethodsInJarResult covariantMethodsInJar = CovariantMethodsInJarResult.create();
diff --git a/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGeneratorTest.java b/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGeneratorTest.java
index 33ff235..2e0d1b2 100644
--- a/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGeneratorTest.java
+++ b/src/test/java/com/android/tools/r8/apimodel/AndroidApiHashingDatabaseBuilderGeneratorTest.java
@@ -41,6 +41,7 @@
import com.android.tools.r8.utils.IntBox;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.ZipUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Files;
import java.nio.file.Path;
@@ -309,7 +310,8 @@
public void testAmendedClassesToApiDatabase() throws Exception {
Path androidJar = ToolHelper.getAndroidJar(API_LEVEL);
AppView<AppInfoWithClassHierarchy> appView =
- computeAppViewWithClassHierarchy(AndroidApp.builder().addLibraryFile(androidJar).build());
+ computeAppViewWithClassHierarchy(
+ AndroidApp.builder().addLibraryFile(androidJar).build(), Timing.empty());
AndroidApiLevelCompute androidApiLevelCompute = DefaultAndroidApiLevelCompute.create(appView);
assertTrue(androidApiLevelCompute.isEnabled());
ensureAllPublicMethodsAreMapped(appView, androidApiLevelCompute);
diff --git a/src/test/java/com/android/tools/r8/benchmarks/appdumps/ChromeBenchmarks.java b/src/test/java/com/android/tools/r8/benchmarks/appdumps/ChromeBenchmarks.java
index 1babaac..63211be 100644
--- a/src/test/java/com/android/tools/r8/benchmarks/appdumps/ChromeBenchmarks.java
+++ b/src/test/java/com/android/tools/r8/benchmarks/appdumps/ChromeBenchmarks.java
@@ -13,7 +13,6 @@
import com.android.tools.r8.benchmarks.BenchmarkBase;
import com.android.tools.r8.benchmarks.BenchmarkConfig;
import com.android.tools.r8.utils.LibraryProvidedProguardRulesTestUtils;
-import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -84,9 +83,8 @@
testBuilder.addOptionsModification(
options ->
options.getTestingOptions().enqueuerInspector =
- (appInfo, enqueuerMode) -> {
+ (appInfo, enqueuerMode, timing) -> {
if (appInfo.options().printTimes) {
- Timing timing = appInfo.app().timing;
timing.end(); // End "Create result"
timing.end(); // End "Trace application"
timing.end(); // End "Enqueuer"
diff --git a/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java b/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
index cc9170b..28ea6db 100644
--- a/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
+++ b/src/test/java/com/android/tools/r8/classmerging/KeptTargetsIncompleteDiamondTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.ProguardConfigurationRule;
import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.util.HashSet;
@@ -56,7 +57,7 @@
.addAll(buildKeepRuleForClassAndMethods(Main.class, factory))
.build())
.setMinApi(AndroidApiLevel.N)
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvokeAllResolveTest.java b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvokeAllResolveTest.java
index 65c8cde..d04aec9 100644
--- a/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvokeAllResolveTest.java
+++ b/src/test/java/com/android/tools/r8/desugar/desugaredlibrary/DesugaredLibraryInvokeAllResolveTest.java
@@ -120,7 +120,7 @@
inspector
.getApplication()
.asLazy()
- .toDirectSingleThreadedForTesting()
+ .toDirectSingleThreadedForTesting(Timing.empty())
.builder()
.replaceLibraryClasses(libHolder.libraryClasses())
.build(Timing.empty());
diff --git a/src/test/java/com/android/tools/r8/graph/GenericSignatureTest.java b/src/test/java/com/android/tools/r8/graph/GenericSignatureTest.java
index e0f7e1d..80d2bf4 100644
--- a/src/test/java/com/android/tools/r8/graph/GenericSignatureTest.java
+++ b/src/test/java/com/android/tools/r8/graph/GenericSignatureTest.java
@@ -32,6 +32,7 @@
import com.android.tools.r8.utils.codeinspector.FieldSubject;
import com.android.tools.r8.utils.codeinspector.FoundMethodSubject;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.List;
import java.util.function.Consumer;
import java.util.function.Function;
@@ -74,7 +75,7 @@
? ToolHelper.getJava8RuntimeJar()
: ToolHelper.getMostRecentAndroidJar())
.build();
- AppView<AppInfoWithLiveness> appView = computeAppViewWithLiveness(app);
+ AppView<AppInfoWithLiveness> appView = computeAppViewWithLiveness(app, Timing.empty());
DexItemFactory factory = appView.dexItemFactory();
CodeInspector inspector = new CodeInspector(appView.appInfo().app());
diff --git a/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java b/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
index 84a1bf3..ae7dcaa 100644
--- a/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
+++ b/src/test/java/com/android/tools/r8/graph/TargetLookupTest.java
@@ -27,6 +27,7 @@
import com.android.tools.r8.smali.SmaliTestBase;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import java.util.Collections;
@@ -92,7 +93,8 @@
);
AndroidApp application = buildApplication(builder);
- AppView<AppInfoWithClassHierarchy> appView = computeAppViewWithClassHierarchy(application);
+ AppView<AppInfoWithClassHierarchy> appView =
+ computeAppViewWithClassHierarchy(application, Timing.empty());
AppInfoWithClassHierarchy appInfo = appView.appInfo();
CodeInspector inspector = new CodeInspector(appInfo.app());
ProgramMethod method = getMethod(inspector, DEFAULT_CLASS_NAME, "int", "x", ImmutableList.of());
@@ -166,7 +168,8 @@
);
AndroidApp application = buildApplication(builder);
- AppView<AppInfoWithClassHierarchy> appView = computeAppViewWithClassHierarchy(application);
+ AppView<AppInfoWithClassHierarchy> appView =
+ computeAppViewWithClassHierarchy(application, Timing.empty());
AppInfoWithClassHierarchy appInfo = appView.appInfo();
CodeInspector inspector = new CodeInspector(appInfo.app());
@@ -257,7 +260,8 @@
builder.addLibraryFiles(ToolHelper.getDefaultAndroidJar());
}
AndroidApp application = builder.build();
- AppView<AppInfoWithClassHierarchy> appView = computeAppViewWithClassHierarchy(application);
+ AppView<AppInfoWithClassHierarchy> appView =
+ computeAppViewWithClassHierarchy(application, Timing.empty());
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexItemFactory factory = appInfo.dexItemFactory();
diff --git a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureCorrectnessHelperTests.java b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureCorrectnessHelperTests.java
index 09d29f0..ae94123 100644
--- a/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureCorrectnessHelperTests.java
+++ b/src/test/java/com/android/tools/r8/graph/genericsignature/GenericSignatureCorrectnessHelperTests.java
@@ -24,6 +24,7 @@
import com.android.tools.r8.transformers.ClassFileTransformer.MethodPredicate;
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.Reporter;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -50,6 +51,7 @@
buildInnerClasses(GenericSignatureCorrectnessHelperTests.class)
.addLibraryFile(ToolHelper.getJava8RuntimeJar())
.build(),
+ Timing.empty(),
factory ->
ProguardConfiguration.builder(
factory, new Reporter(new TestDiagnosticMessagesImpl()))
@@ -193,6 +195,7 @@
.addClassProgramData(transformations)
.addLibraryFile(ToolHelper.getJava8RuntimeJar())
.build(),
+ Timing.empty(),
factory ->
ProguardConfiguration.builder(
factory, new Reporter(new TestDiagnosticMessagesImpl()))
diff --git a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/AGSABenchmarks.java b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/AGSABenchmarks.java
index 1c9868a..a6d875e 100644
--- a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/AGSABenchmarks.java
+++ b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/AGSABenchmarks.java
@@ -14,7 +14,6 @@
import com.android.tools.r8.benchmarks.appdumps.AbortBenchmarkException;
import com.android.tools.r8.benchmarks.appdumps.AppDumpBenchmarkBuilder;
import com.android.tools.r8.errors.CheckEnumUnboxedDiagnostic;
-import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -78,9 +77,8 @@
.addOptionsModification(
options ->
options.getTestingOptions().enqueuerInspector =
- (appInfo, enqueuerMode) -> {
+ (appInfo, enqueuerMode, timing) -> {
if (appInfo.options().printTimes) {
- Timing timing = appInfo.app().timing;
timing.end(); // End "Create result"
timing.end(); // End "Trace application"
timing.end(); // End "Enqueuer"
diff --git a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
index 8db6c3a..a8b5ae4 100644
--- a/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
+++ b/src/test/java/com/android/tools/r8/internal/benchmarks/appdumps/SystemUIBenchmarks.java
@@ -11,7 +11,6 @@
import com.android.tools.r8.benchmarks.BenchmarkConfig;
import com.android.tools.r8.benchmarks.appdumps.AbortBenchmarkException;
import com.android.tools.r8.benchmarks.appdumps.AppDumpBenchmarkBuilder;
-import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -103,9 +102,8 @@
testBuilder.addOptionsModification(
options ->
options.getTestingOptions().enqueuerInspector =
- (appInfo, enqueuerMode) -> {
+ (appInfo, enqueuerMode, timing) -> {
if (appInfo.options().printTimes) {
- Timing timing = appInfo.app().timing;
timing.end(); // End "Create result"
timing.end(); // End "Trace application"
timing.end(); // End "Enqueuer"
diff --git a/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java b/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
index b83833c..1afcfd0 100644
--- a/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
+++ b/src/test/java/com/android/tools/r8/ir/IrInjectionTestBase.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.utils.ListUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
import java.util.List;
@@ -130,10 +131,10 @@
return iterator;
}
- private AndroidApp writeDex() {
+ private AndroidApp writeDex(Timing timing) {
try {
InternalOptions options = appView.options();
- ToolHelper.writeApplication(appView);
+ ToolHelper.writeApplication(appView, timing);
options.signalFinishedToConsumers();
return consumers.build();
} catch (ExecutionException e) {
@@ -145,7 +146,7 @@
IRConverter converter = new IRConverter(appView);
code.removeRedundantBlocks();
converter.replaceCodeForTesting(code);
- AndroidApp app = writeDex();
+ AndroidApp app = writeDex(Timing.empty());
return runOnArtRaw(app, DEFAULT_MAIN_CLASS_NAME).stdout;
}
}
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java b/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
index a531799..b033029 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/AnalysisTestBase.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.function.Consumer;
import java.util.function.Predicate;
import org.junit.Before;
@@ -89,7 +90,7 @@
@Before
public void setup() throws Exception {
- appView = computeAppViewWithLiveness(app, null, this::configure);
+ appView = computeAppViewWithLiveness(app, Timing.empty(), null, this::configure);
}
public void buildAndCheckIR(String methodName, Consumer<IRCode> irInspector) {
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/escape/EscapeAnalysisForNameReflectionTest.java b/src/test/java/com/android/tools/r8/ir/analysis/escape/EscapeAnalysisForNameReflectionTest.java
index 3989c09..cd854bc 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/escape/EscapeAnalysisForNameReflectionTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/escape/EscapeAnalysisForNameReflectionTest.java
@@ -19,6 +19,7 @@
import com.android.tools.r8.ir.code.InvokeVirtual;
import com.android.tools.r8.ir.code.NewInstance;
import com.android.tools.r8.ir.code.Value;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.ArrayList;
import java.util.List;
import java.util.Random;
@@ -54,7 +55,7 @@
@Before
@Override
public void setup() throws Exception {
- appView = computeAppViewWithClassHierarchy(app, null, this::configure);
+ appView = computeAppViewWithClassHierarchy(app, Timing.empty(), null, this::configure);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/path/PathConstraintAnalysisUnitTest.java b/src/test/java/com/android/tools/r8/ir/analysis/path/PathConstraintAnalysisUnitTest.java
index a174673..fb6dbac 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/path/PathConstraintAnalysisUnitTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/path/PathConstraintAnalysisUnitTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.Map.Entry;
import java.util.Set;
import java.util.stream.Collectors;
@@ -52,7 +53,7 @@
.addProgramFiles(ToolHelper.getClassFileForTestClass(Main.class))
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build();
- AppView<AppInfoWithLiveness> appView = computeAppViewWithLiveness(app);
+ AppView<AppInfoWithLiveness> appView = computeAppViewWithLiveness(app, Timing.empty());
CodeInspector inspector = new CodeInspector(app);
IRCode code =
inspector.clazz(Main.class).uniqueMethodWithOriginalName("greet").buildIR(appView);
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
index adb3f37..a8a7928 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
@@ -69,7 +69,8 @@
throws Exception {
AppView<AppInfoWithLiveness> appView =
computeAppViewWithLiveness(
- buildClasses(classes).addLibraryFile(getMostRecentAndroidJar()).build());
+ buildClasses(classes).addLibraryFile(getMostRecentAndroidJar()).build(),
+ Timing.empty());
CodeInspector codeInspector = new CodeInspector(appView.appInfo().app());
MethodSubject fooSubject = codeInspector.clazz(mainClass.getName()).method(signature);
IRCode irCode = fooSubject.buildIR(appView);
diff --git a/src/test/java/com/android/tools/r8/ir/conversion/PartialCallGraphTest.java b/src/test/java/com/android/tools/r8/ir/conversion/PartialCallGraphTest.java
index 9dacd25..71e1dda 100644
--- a/src/test/java/com/android/tools/r8/ir/conversion/PartialCallGraphTest.java
+++ b/src/test/java/com/android/tools/r8/ir/conversion/PartialCallGraphTest.java
@@ -46,6 +46,7 @@
this.appView =
computeAppViewWithLiveness(
app,
+ Timing.empty(),
factory -> {
Reporter reporter = new Reporter();
ProguardConfiguration.Builder configurationBuilder =
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/ConstraintWithTargetTest.java b/src/test/java/com/android/tools/r8/ir/optimize/ConstraintWithTargetTest.java
index cba81b1..0c95365 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/ConstraintWithTargetTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/ConstraintWithTargetTest.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.BeforeClass;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -40,7 +41,7 @@
@BeforeClass
public static void makeAppInfo() throws Exception {
AndroidApp app = AndroidApp.builder().addLibraryFiles(ToolHelper.getJava8RuntimeJar()).build();
- appView = computeAppViewWithLiveness(app);
+ appView = computeAppViewWithLiveness(app, Timing.empty());
factory = appView.dexItemFactory();
}
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java b/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
index a782fb6..5a3bd77 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/NonNullTrackerTest.java
@@ -57,7 +57,8 @@
throws Exception {
AppView<AppInfoWithLiveness> appView =
computeAppViewWithLiveness(
- buildClasses(classes).addLibraryFile(getMostRecentAndroidJar()).build());
+ buildClasses(classes).addLibraryFile(getMostRecentAndroidJar()).build(),
+ Timing.empty());
CodeInspector codeInspector = new CodeInspector(appView.appInfo().app());
MethodSubject fooSubject = codeInspector.clazz(testClass.getName()).method(signature);
IRCode code = fooSubject.buildIR(appView);
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/outliner/InlineOutlineWithAssumeTest.java b/src/test/java/com/android/tools/r8/ir/optimize/outliner/InlineOutlineWithAssumeTest.java
index bd1255a..4f9bc0c 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/outliner/InlineOutlineWithAssumeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/outliner/InlineOutlineWithAssumeTest.java
@@ -40,7 +40,7 @@
options.outline.threshold = 2;
options.outline.minSize = 2;
options.getTestingOptions().enqueuerInspector =
- (appView, mode) -> {
+ (appView, mode, timing) -> {
// Replace the body of otherOutlineCallSite() by `throw null` after the second
// round of tree shaking so that the outline gets single call inlined in the
// backed.
diff --git a/src/test/java/com/android/tools/r8/naming/NamingTestBase.java b/src/test/java/com/android/tools/r8/naming/NamingTestBase.java
index 5277bcc..ffc7ff9 100644
--- a/src/test/java/com/android/tools/r8/naming/NamingTestBase.java
+++ b/src/test/java/com/android/tools/r8/naming/NamingTestBase.java
@@ -49,6 +49,7 @@
.addProgramFile(Paths.get(appFileName))
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory -> ToolHelper.loadProguardConfiguration(factory, configPaths));
dexItemFactory = appView.dexItemFactory();
ExecutorService executor = Executors.newSingleThreadExecutor();
diff --git a/src/test/java/com/android/tools/r8/resolution/InvokePolymorphicResolutionTest.java b/src/test/java/com/android/tools/r8/resolution/InvokePolymorphicResolutionTest.java
index db280ea..5e21c08 100644
--- a/src/test/java/com/android/tools/r8/resolution/InvokePolymorphicResolutionTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/InvokePolymorphicResolutionTest.java
@@ -18,6 +18,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.references.MethodReference;
import com.android.tools.r8.references.Reference;
+import com.android.tools.r8.utils.timing.Timing;
import java.lang.invoke.MethodHandle;
import java.util.Collections;
import org.junit.Test;
@@ -42,7 +43,7 @@
AppView<? extends AppInfoWithClassHierarchy> appView =
TestAppViewBuilder.builder()
.addLibraryFiles(ToolHelper.getJava8RuntimeJar())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
// An exact resolution will find invokeExact.
MethodReference invokeExact =
diff --git a/src/test/java/com/android/tools/r8/resolution/InvokeSuperCallInStaticTest.java b/src/test/java/com/android/tools/r8/resolution/InvokeSuperCallInStaticTest.java
index 028675a..e8bedee 100644
--- a/src/test/java/com/android/tools/r8/resolution/InvokeSuperCallInStaticTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/InvokeSuperCallInStaticTest.java
@@ -24,6 +24,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.junit.Test;
@@ -56,6 +57,7 @@
.addClassProgramData(getAWithRewrittenInvokeSpecialToBase())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Base.class, "collect", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java b/src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java
index afe93c0..d7475fb 100644
--- a/src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/SingleTargetLookupTest.java
@@ -36,6 +36,7 @@
import com.android.tools.r8.resolution.singletarget.two.OtherSubSubClassTwo;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.LibraryModeledPredicate;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Sets;
import java.util.Collections;
@@ -102,7 +103,7 @@
// Some of these tests resolve default methods.
// If desugared they will hit the forward methods and not the expected defaults.
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
appInfo = appView.appInfo();
}
diff --git a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodTest.java b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodTest.java
index a2bf03a..f201be6 100644
--- a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
import java.util.List;
@@ -67,7 +68,9 @@
public static void computeAppInfo() throws Exception {
appView =
computeAppViewWithLiveness(
- buildClasses(CLASSES).addLibraryFile(getMostRecentAndroidJar()).build(), Main.class);
+ buildClasses(CLASSES).addLibraryFile(getMostRecentAndroidJar()).build(),
+ Timing.empty(),
+ Main.class);
appInfo = appView.appInfo();
}
diff --git a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodWithVirtualParentTest.java b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodWithVirtualParentTest.java
index 3fbfafb..6a6cd26 100644
--- a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodWithVirtualParentTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfPrivateStaticMethodWithVirtualParentTest.java
@@ -17,6 +17,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.BeforeClass;
@@ -83,6 +84,7 @@
.addClassProgramData(getDumps())
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
Main.class)
.appInfo();
}
diff --git a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java
index 022698c..ce317b4 100644
--- a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentInterfaceTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.ir.analysis.type.DynamicType;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.LibraryModeledPredicate;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Assert;
@@ -104,6 +105,7 @@
.addClassProgramData(DUMP)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
Main.class);
appInfo = appView.appInfo();
}
diff --git a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java
index 15aa8e9..3b5795a 100644
--- a/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/VirtualOverrideOfStaticMethodWithVirtualParentTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.ir.analysis.type.DynamicType;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.LibraryModeledPredicate;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Assert;
@@ -152,6 +153,7 @@
.addClassProgramData(DUMPS)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
Main.class);
appInfo = appView.appInfo();
}
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessTest.java
index 8a540f7..b85db6d 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessTest.java
@@ -28,6 +28,7 @@
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -171,7 +172,8 @@
buildClasses(getClasses())
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
- .build());
+ .build(),
+ Timing.empty());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
index 0fd5151..205ee75 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialInterfaceMethodAccessWithIntermediateTest.java
@@ -30,6 +30,7 @@
import com.android.tools.r8.utils.DescriptorUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -171,7 +172,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(parameters)
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
convertLirToDex(appView);
return appView;
}
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessTest.java
index a165e20..7bf8e7e 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -144,7 +145,8 @@
private AppView<AppInfoWithClassHierarchy> getAppView() throws Exception {
return computeAppViewWithClassHierarchy(
- buildClasses(getClasses()).addClassProgramData(getTransformedClasses()).build());
+ buildClasses(getClasses()).addClassProgramData(getTransformedClasses()).build(),
+ Timing.empty());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessWithIntermediateTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessWithIntermediateTest.java
index 5609ff3..d1484e5 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessWithIntermediateTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodAccessWithIntermediateTest.java
@@ -27,6 +27,7 @@
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -180,7 +181,8 @@
private AppView<AppInfoWithClassHierarchy> getAppView() throws Exception {
return computeAppViewWithClassHierarchy(
- buildClasses(getClasses()).addClassProgramData(getTransformedClasses()).build());
+ buildClasses(getClasses()).addClassProgramData(getTransformedClasses()).build(),
+ Timing.empty());
}
@Test
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodPublicAccessWithIntermediateTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodPublicAccessWithIntermediateTest.java
index 8a68129..30b1020 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodPublicAccessWithIntermediateTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestInvokeSpecialMethodPublicAccessWithIntermediateTest.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.utils.StringUtils;
import com.android.tools.r8.utils.codeinspector.CodeInspector;
import com.android.tools.r8.utils.codeinspector.MethodSubject;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Streams;
import java.util.Collection;
@@ -153,6 +154,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
}
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessTest.java
index d0b2806..6f644b3 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.OptionalBool;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -69,6 +70,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass bClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessWithIntermediateClassTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessWithIntermediateClassTest.java
index 3d09c38..ebcf484 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessWithIntermediateClassTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestStaticMethodAccessWithIntermediateClassTest.java
@@ -19,6 +19,7 @@
import com.android.tools.r8.transformers.ClassFileTransformer;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.OptionalBool;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -68,6 +69,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass bClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessTest.java
index b2f74fb..59c46fc 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.OptionalBool;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -71,6 +72,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass bClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessWithIntermediateClassTest.java b/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessWithIntermediateClassTest.java
index 96fe463..8536427 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessWithIntermediateClassTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/NestVirtualMethodAccessWithIntermediateClassTest.java
@@ -18,6 +18,7 @@
import com.android.tools.r8.transformers.ClassFileTransformer;
import com.android.tools.r8.utils.BooleanUtils;
import com.android.tools.r8.utils.OptionalBool;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.List;
@@ -67,6 +68,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass bClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/SelfVirtualMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/SelfVirtualMethodAccessTest.java
index d6f4618..ad629af 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/SelfVirtualMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/SelfVirtualMethodAccessTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.OptionalBool;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.junit.Test;
@@ -54,6 +55,7 @@
.addClassProgramData(getTransformedClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass aClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/indirectfield/IndirectFieldAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/indirectfield/IndirectFieldAccessTest.java
index f2b60f2..aca1e0b 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/indirectfield/IndirectFieldAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/indirectfield/IndirectFieldAccessTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.OptionalBool;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -53,6 +54,7 @@
buildClasses(getClasses())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass cClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/access/indirectmethod/IndirectMethodAccessTest.java b/src/test/java/com/android/tools/r8/resolution/access/indirectmethod/IndirectMethodAccessTest.java
index 0599233..0c808c9 100644
--- a/src/test/java/com/android/tools/r8/resolution/access/indirectmethod/IndirectMethodAccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/access/indirectmethod/IndirectMethodAccessTest.java
@@ -17,6 +17,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.OptionalBool;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.io.IOException;
import java.util.List;
@@ -60,6 +61,7 @@
.addClassProgramData(getTransforms())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexProgramClass cClass =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificAbstractOnIncompletePathTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificAbstractOnIncompletePathTest.java
index 60cf512..b45ba5f 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificAbstractOnIncompletePathTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificAbstractOnIncompletePathTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.transformers.ClassFileTransformer.MethodPredicate;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import java.nio.file.Path;
import org.junit.Before;
import org.junit.Test;
@@ -68,6 +69,7 @@
.addClassProgramData(getMainWithoutFoo(), getIOnProgram())
.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses)
.build(),
+ Timing.empty(),
null,
options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificDifferentParentHierarchyTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificDifferentParentHierarchyTest.java
index da99a4f..7fb71ec 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificDifferentParentHierarchyTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificDifferentParentHierarchyTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -77,7 +78,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultipleOnCompleteTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultipleOnCompleteTest.java
index 5d89fbd..3392c6f 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultipleOnCompleteTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultipleOnCompleteTest.java
@@ -18,6 +18,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.nio.file.Path;
import org.junit.Before;
@@ -76,7 +77,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsICCETest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsICCETest.java
index 0a0ce8c..457abb6 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsICCETest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsICCETest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -77,7 +78,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsSuccessTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsSuccessTest.java
index a72b84a..11512f9 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsSuccessTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsSuccessTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -80,7 +81,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsThroughClassTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsThroughClassTest.java
index 038ac20..766738d 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsThroughClassTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificMultiplePathsThroughClassTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -75,7 +76,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingAfterJoinTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingAfterJoinTest.java
index cc1812a..de7a3dd 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingAfterJoinTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingAfterJoinTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -77,7 +78,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingSubTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingSubTest.java
index d5c657c..cc40976 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingSubTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleDominatingSubTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
@@ -79,7 +80,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult methodResolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleLibraryPartialTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleLibraryPartialTest.java
index 729f90d..9cceea8 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleLibraryPartialTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleLibraryPartialTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -77,7 +78,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexItemFactory factory = appInfo.dexItemFactory();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", factory);
diff --git a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleProgramPartialTest.java b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleProgramPartialTest.java
index abc79b4..75ad5a8 100644
--- a/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleProgramPartialTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/duplicatedefinitions/MaximallySpecificSingleProgramPartialTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.ZipUtils.ZipBuilder;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.nio.file.Path;
import java.util.HashSet;
@@ -75,7 +76,10 @@
builder.addLibraryFiles(parameters.getDefaultRuntimeLibrary(), libraryClasses);
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
- builder.build(), null, options -> options.loadAllClassDefinitions = true);
+ builder.build(),
+ Timing.empty(),
+ null,
+ options -> options.loadAllClassDefinitions = true);
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexItemFactory factory = appInfo.dexItemFactory();
DexMethod method = buildNullaryVoidMethod(Main.class, "foo", factory);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/AbstractAllTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/AbstractAllTest.java
index 0b920a5..2e42881 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/AbstractAllTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/AbstractAllTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -43,7 +44,8 @@
assumeTrue(parameters.isOrSimulateNoneRuntime());
AndroidApp app =
buildClasses(CLASSES).addLibraryFile(parameters.getDefaultRuntimeLibrary()).build();
- AppInfoWithLiveness appInfo = computeAppViewWithLiveness(app, Main.class).appInfo();
+ AppInfoWithLiveness appInfo =
+ computeAppViewWithLiveness(app, Timing.empty(), Main.class).appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
DexEncodedMethod resolutionTarget = resolutionResult.getSingleTarget();
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultLeftAbstractRightTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultLeftAbstractRightTest.java
index e64d747..6c1d37d 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultLeftAbstractRightTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultLeftAbstractRightTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.junit.Test;
@@ -48,7 +49,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultRightAbstractLeftTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultRightAbstractLeftTest.java
index 19bbe39..7b2eb22 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultRightAbstractLeftTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultRightAbstractLeftTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import org.junit.Test;
@@ -48,7 +49,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractLeftTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractLeftTest.java
index 908da85..15fed91 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractLeftTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractLeftTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.Collections;
@@ -50,6 +51,7 @@
.addClassProgramData(Collections.singletonList(transformB()))
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class)
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractRightTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractRightTest.java
index d5e9fe3..b8c1594 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractRightTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAbstractRightTest.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.Collections;
@@ -50,6 +51,7 @@
.addClassProgramData(Collections.singletonList(transformB()))
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class)
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndBothTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndBothTest.java
index 92ab6be..ac1e22c 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndBothTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndBothTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.util.HashSet;
@@ -50,7 +51,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndLeftTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndLeftTest.java
index 3547f61..4d2ea4f 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndLeftTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndLeftTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -47,7 +48,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndRightTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndRightTest.java
index 1c7913d..1a156ba 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndRightTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/DefaultTopAndRightTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -47,7 +48,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/TwoDefaultMethodsWithoutTopTest.java b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/TwoDefaultMethodsWithoutTopTest.java
index aaa2797..7abc7a0 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacediamonds/TwoDefaultMethodsWithoutTopTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacediamonds/TwoDefaultMethodsWithoutTopTest.java
@@ -18,6 +18,7 @@
import com.android.tools.r8.lightir.LirOpcodes;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Streams;
@@ -58,7 +59,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(minApi)
- .buildWithLiveness()
+ .buildWithLiveness(Timing.empty())
.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "f", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
index 91562c7..e7287e2 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodAsOverrideWithLambdaTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -60,7 +61,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "bar", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
index cf0e5f4..7e3865e 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultMethodLambdaTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "bar", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
index 49ec9ea..eff66d2 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DefaultWithoutTopTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -60,7 +61,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnInterfaceHolderLegacy(method);
@@ -109,7 +110,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnInterfaceHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
index 62c0d0c..fb138e2 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/DuplicateImportsTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -60,7 +61,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnInterfaceHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/InvokeInterfaceWithStaticTargetTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/InvokeInterfaceWithStaticTargetTest.java
index 3c6d716..6274d5d 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/InvokeInterfaceWithStaticTargetTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/InvokeInterfaceWithStaticTargetTest.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.junit.Assert;
@@ -47,6 +48,7 @@
.addClassProgramData(transformMain())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "bar", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
index ba0ffb3..90f406e 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/LambdaMultipleInterfacesTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(J.class, "bar", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
index 455c14d..1e6a6aa 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleImplementsTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -57,6 +58,7 @@
I.class, J.class, A.class, B.class, C.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleMaximallySpecificTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleMaximallySpecificTest.java
index 5770963..4f1ea9a 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleMaximallySpecificTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/MultipleMaximallySpecificTest.java
@@ -29,6 +29,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApiLevel;
import com.android.tools.r8.utils.StringUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableSet;
import java.util.Collection;
@@ -70,7 +71,7 @@
.addTestingAnnotations()
.addKeepMainRule(Main.class)
.setMinApi(AndroidApiLevel.LATEST)
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod fooI = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
DexMethod fooJ = buildNullaryVoidMethod(J.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
index 75af94a..9c5b7b6 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SimpleInterfaceInvokeTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -57,6 +58,7 @@
buildClassesWithTestingAnnotations(I.class, A.class, B.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
index c2727e5..732ce35 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubInterfaceOverridesTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult =
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
index a0c812a..75fb5ff 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeMissingOverridesTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -56,6 +57,7 @@
buildClassesWithTestingAnnotations(I.class, A.class, B.class, C.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
index b5d846d..ad03efb 100644
--- a/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/interfacetargets/SubTypeOverridesTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -56,6 +57,7 @@
buildClassesWithTestingAnnotations(I.class, A.class, B.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
index e28f415..68c5604 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateClasspathWidenTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.resolution.packageprivate.a.I;
import com.android.tools.r8.resolution.packageprivate.a.NonAbstract;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.nio.file.Path;
@@ -70,7 +71,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Abstract.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateInitialResolutionHolderTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateInitialResolutionHolderTest.java
index 021f56e..02570cd 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateInitialResolutionHolderTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateInitialResolutionHolderTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.references.Reference;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.OptionalBool;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.Collection;
import java.util.Collections;
@@ -50,6 +51,7 @@
.addClassProgramData(getRewrittenResources())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method =
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
index 7513d4d..af0059c 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.resolution.packageprivate.a.A.B;
import com.android.tools.r8.resolution.packageprivate.a.D;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -56,6 +57,7 @@
buildClasses(A.class, B.class, C.class, D.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "bar", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
index e4da615..0f4a5bc 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateReentryWithNarrowingTest.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.resolution.packageprivate.a.A.B;
import com.android.tools.r8.resolution.packageprivate.a.D;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -60,6 +61,7 @@
buildClasses(A.class, B.class, C.class, D.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "bar", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
index 10e3530..f2b60e5 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethod2Test.java
@@ -29,6 +29,7 @@
import com.android.tools.r8.resolution.packageprivate.a.NonAbstractWideningExtendingA;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.transformers.ClassTransformer;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -70,6 +71,7 @@
.addClassProgramData(getNonAbstractWithoutDeclaredMethods())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
index ead6a82..773a003 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/PackagePrivateWithDefaultMethodTest.java
@@ -27,6 +27,7 @@
import com.android.tools.r8.resolution.packageprivate.a.NonAbstractExtendingA;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.transformers.ClassTransformer;
+import com.android.tools.r8.utils.timing.Timing;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.junit.Test;
@@ -64,6 +65,7 @@
.addClassProgramData(getNonAbstractWithoutDeclaredMethods())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java b/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
index 21c346c..7abfe86 100644
--- a/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/packageprivate/WidenAccessOutsidePackageTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.resolution.packageprivate.a.A;
import com.android.tools.r8.resolution.packageprivate.a.A.B;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -57,6 +58,7 @@
buildClasses(A.class, B.class, C.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "bar", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java b/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
index 4c11c91..eab2aa3 100644
--- a/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/singletarget/InstantiatedLowerBoundTest.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.ir.analysis.type.TypeElement;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.LibraryModeledPredicate;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.Sets;
import java.util.Set;
import org.junit.Test;
@@ -52,6 +53,7 @@
buildClasses(A.class, B.class, Main.class)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory ->
buildConfigForRules(factory, buildKeepRuleForClassAndMethods(Main.class, factory)));
AppInfoWithLiveness appInfo = appView.appInfo();
@@ -85,6 +87,7 @@
buildClasses(A.class, B.class, C.class, Main.class)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory ->
buildConfigForRules(factory, buildKeepRuleForClassAndMethods(Main.class, factory)));
AppInfoWithLiveness appInfo = appView.appInfo();
@@ -118,6 +121,7 @@
buildClasses(A.class, B.class, C.class, MainAllInstantiated.class)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory ->
buildConfigForRules(
factory, buildKeepRuleForClassAndMethods(MainAllInstantiated.class, factory)));
diff --git a/src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java b/src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java
index 0a94601..2b45361 100644
--- a/src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/singletarget/SuccessAndInvalidLookupTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.optimize.interfaces.collection.NonEmptyOpenClosedInterfacesCollection;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.LibraryModeledPredicate;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.Collections;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -47,6 +48,7 @@
buildClasses(I.class, A.class, Main.class)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory ->
buildConfigForRules(factory, buildKeepRuleForClassAndMethods(Main.class, factory)));
AppInfoWithLiveness appInfo = appView.appInfo();
@@ -77,6 +79,7 @@
buildClasses(I.class, A.class, Main.class)
.addLibraryFile(getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
factory ->
buildConfigForRules(factory, buildKeepRuleForClassAndMethods(Main.class, factory)));
appView.setOpenClosedInterfacesCollection(
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
index f9c5927..7f21764 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/AbstractInMiddleTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -56,6 +57,7 @@
buildClassesWithTestingAnnotations(A.class, B.class, C.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
index a64145e..debd2b1 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceSubTypeTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
index c227f79..38691df 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultInterfaceMethodInSubInterfaceTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
index d9f121b..3d72958 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/DefaultWithoutTopTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -60,7 +61,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvalidResolutionToThisTarget.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvalidResolutionToThisTarget.java
index 3f4590c..7d1e5fe 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvalidResolutionToThisTarget.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvalidResolutionToThisTarget.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import java.io.IOException;
import java.util.concurrent.ExecutionException;
import org.junit.Test;
@@ -56,6 +57,7 @@
.addClassProgramData(getMainWithModifiedReceiverCall())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
index edb66c9..8fdbe32 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/InvokeVirtualToInterfaceDefinitionTest.java
@@ -23,6 +23,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
index d2dae9b..1629971 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/KeptTargetsIncompleteLookupTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.ProguardConfigurationRule;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.util.ArrayList;
import java.util.Arrays;
@@ -78,6 +79,7 @@
AppView<AppInfoWithLiveness> appView =
computeAppViewWithLiveness(
buildClasses(classes).addLibraryFile(getMostRecentAndroidJar()).build(),
+ Timing.empty(),
factory -> {
List<ProguardConfigurationRule> rules = new ArrayList<>();
rules.addAll(buildKeepRuleForClassAndMethods(methodToBeKept, factory));
@@ -235,7 +237,8 @@
AppView<AppInfoWithClassHierarchy> appView =
computeAppViewWithClassHierarchy(
buildClasses(Collections.singletonList(B.class), Arrays.asList(A.class, I.class))
- .build());
+ .build(),
+ Timing.empty());
AppInfoWithClassHierarchy appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(B.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
@@ -270,6 +273,7 @@
AppView<AppInfoWithLiveness> appView =
computeAppViewWithLiveness(
buildClasses(Unrelated.class).addLibraryFile(getMostRecentAndroidJar()).build(),
+ Timing.empty(),
Unrelated.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Unrelated.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
index e1b4be1..ba987f6 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateChainTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.resolution.virtualtargets.package_a.Top;
import com.android.tools.r8.resolution.virtualtargets.package_a.TopRunner;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,6 +60,7 @@
buildClasses(Top.class, Middle.class, Bottom.class, TopRunner.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(Top.class, "clear", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
index 4b5f8d2..33005a7 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PackagePrivateFinalOverrideTest.java
@@ -26,6 +26,7 @@
import com.android.tools.r8.resolution.virtualtargets.package_a.ViewModelRunnerWithCast;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -65,6 +66,7 @@
MyViewModel.class, ViewModel.class, Main.class, ViewModelRunner.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(ViewModel.class, "clear", appInfo.dexItemFactory());
@@ -116,6 +118,7 @@
MyViewModel.class, ViewModel.class, Main.class, ViewModelRunner.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(ViewModel.class, "clear", appInfo.dexItemFactory());
@@ -168,6 +171,7 @@
ViewModelRunnerWithCast.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(ViewModel.class, "clear", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
index a076a58..89be99a 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/PrivateOverrideOfVirtualTargetTest.java
@@ -22,6 +22,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.Box;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -58,6 +59,7 @@
.addClassProgramData(getBWithModifiedInvokes())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "bar", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedDifferentPackageLookupTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedDifferentPackageLookupTest.java
index 4ec5810..efe4995 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedDifferentPackageLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedDifferentPackageLookupTest.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.DescriptorUtils;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -51,7 +52,8 @@
builder.addClassProgramData(
ImmutableList.of(getBInAnotherPackage(), getMainWithCallToRelocatedB()));
builder.addLibraryFile(parameters.getDefaultRuntimeLibrary());
- AppView<AppInfoWithLiveness> appView = computeAppViewWithLiveness(builder.build(), Main.class);
+ AppView<AppInfoWithLiveness> appView =
+ computeAppViewWithLiveness(builder.build(), Timing.empty(), Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnClassHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedSamePackageLookupTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedSamePackageLookupTest.java
index cc72a23..1b4ef6e 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedSamePackageLookupTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/ProtectedSamePackageLookupTest.java
@@ -17,6 +17,7 @@
import com.android.tools.r8.graph.LookupResult;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -47,6 +48,7 @@
buildClasses(A.class, C.class, Main.class)
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
PackagePrivateChainTest.Main.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(A.class, "foo", appInfo.dexItemFactory());
diff --git a/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java b/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
index 776e97f..06dee22 100644
--- a/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/resolution/virtualtargets/TargetInDefaultMethodTest.java
@@ -25,6 +25,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.codeinspector.VerticallyMergedClassesInspector;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableSet;
import java.io.IOException;
import java.util.HashSet;
@@ -59,7 +60,7 @@
.addLibraryFiles(parameters.getDefaultRuntimeLibrary())
.addKeepMainRule(Main.class)
.setMinApi(apiLevelWithDefaultInterfaceMethodsSupport())
- .buildWithLiveness();
+ .buildWithLiveness(Timing.empty());
AppInfoWithLiveness appInfo = appView.appInfo();
DexMethod method = buildNullaryVoidMethod(I.class, "foo", appInfo.dexItemFactory());
MethodResolutionResult resolutionResult = appInfo.resolveMethodOnInterfaceHolderLegacy(method);
diff --git a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInInterfaceMarkingTest.java b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInInterfaceMarkingTest.java
index 9b497de..478a91a 100644
--- a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInInterfaceMarkingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInInterfaceMarkingTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.AbstractList;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -46,7 +47,8 @@
.assertSuccessWithOutputLines("true", "true");
}
- private void verifyLibraryOverrideInformation(AppInfoWithLiveness appInfo, Enqueuer.Mode mode) {
+ private void verifyLibraryOverrideInformation(
+ AppInfoWithLiveness appInfo, Enqueuer.Mode mode, Timing timing) {
DexItemFactory dexItemFactory = appInfo.dexItemFactory();
verifyIsEmptyMarkedAsOverridingLibraryMethod(
appInfo, dexItemFactory.createType(descriptor(A.class)));
diff --git a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInLambdaMarkingTest.java b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInLambdaMarkingTest.java
index c91b930..7fa2f26 100644
--- a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInLambdaMarkingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideInLambdaMarkingTest.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.shaking.Enqueuer.Mode;
+import com.android.tools.r8.utils.timing.Timing;
import java.util.Iterator;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -50,7 +51,8 @@
.assertSuccessWithOutputLines("null", "null");
}
- private void verifyLibraryOverrideInformation(AppInfoWithLiveness appInfo, Mode mode) {
+ private void verifyLibraryOverrideInformation(
+ AppInfoWithLiveness appInfo, Mode mode, Timing timing) {
DexItemFactory dexItemFactory = appInfo.dexItemFactory();
verifyIteratorMethodMarkedAsOverridingLibraryMethod(
appInfo, dexItemFactory.createType(descriptor(I.class)));
diff --git a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideMarkingTest.java b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideMarkingTest.java
index 252777e..02a4167 100644
--- a/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideMarkingTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/LibraryMethodOverrideMarkingTest.java
@@ -16,6 +16,7 @@
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -46,7 +47,8 @@
.compile();
}
- private void verifyLibraryOverrideInformation(AppInfoWithLiveness appInfo, Enqueuer.Mode mode) {
+ private void verifyLibraryOverrideInformation(
+ AppInfoWithLiveness appInfo, Enqueuer.Mode mode, Timing timing) {
DexItemFactory dexItemFactory = appInfo.dexItemFactory();
verifySingleVirtualMethodMarkedAsOverridingLibraryMethod(
appInfo, dexItemFactory.createType(descriptor(A.class)));
diff --git a/src/test/java/com/android/tools/r8/shaking/b169045091/B169045091.java b/src/test/java/com/android/tools/r8/shaking/b169045091/B169045091.java
index 4ae9413..db0c787 100644
--- a/src/test/java/com/android/tools/r8/shaking/b169045091/B169045091.java
+++ b/src/test/java/com/android/tools/r8/shaking/b169045091/B169045091.java
@@ -20,6 +20,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.b169045091.testclasses.HelloGreeter;
import com.android.tools.r8.shaking.b169045091.testclasses.WorldGreeterBase;
+import com.android.tools.r8.utils.timing.Timing;
import com.google.common.collect.ImmutableList;
import java.util.List;
import org.junit.Test;
@@ -87,6 +88,7 @@
.addClassProgramData(getWorldGreeterClassFileData())
.addLibraryFile(parameters.getDefaultRuntimeLibrary())
.build(),
+ Timing.empty(),
TestClass.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexItemFactory dexItemFactory = appView.dexItemFactory();
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticOnSubInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticOnSubInterfaceTest.java
index 0bbae88..26ac6ee 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticOnSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticOnSubInterfaceTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -71,6 +72,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, J.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticTest.java
index 0862dcf..6d768fe 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByInvokeStaticTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -71,6 +72,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, I.class);
assertMayHaveClassInitializationSideEffects(appView, J.class);
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubClassTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubClassTest.java
index 9179aeb..2be9ece 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubClassTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -68,6 +69,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, A.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubInterfaceTest.java
index beb7177..9dc0761 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetOnSubInterfaceTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -68,6 +69,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, J.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetTest.java
index e9b3bb0..a54159e 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceInitializedByStaticGetTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -68,6 +69,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, I.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceNotInitializedByInvokeStaticOnSubClassTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceNotInitializedByInvokeStaticOnSubClassTest.java
index 0eba914..69126d9 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceNotInitializedByInvokeStaticOnSubClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceNotInitializedByInvokeStaticOnSubClassTest.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -70,6 +71,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertNoClassInitializationSideEffects(appView, A.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubClassTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubClassTest.java
index b71a3a3..670d786 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubClassTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -84,6 +85,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, A.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubInterfaceTest.java
index 64da709..de12b6e 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByInvokeStaticOnSubInterfaceTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -69,6 +70,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertNoClassInitializationSideEffects(appView, J.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubClassTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubClassTest.java
index 6358815..7a539bd 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubClassTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubClassTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -83,6 +84,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, A.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubInterfaceTest.java
index f19eabc..babd77f 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodInitializedByStaticGetOnSubInterfaceTest.java
@@ -10,6 +10,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -69,6 +70,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertMayHaveClassInitializationSideEffects(appView, J.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodNotInitializedByInvokeStaticOnSubInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodNotInitializedByInvokeStaticOnSubInterfaceTest.java
index 3edb693..60e94ae 100644
--- a/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodNotInitializedByInvokeStaticOnSubInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/clinit/InterfaceWithDefaultMethodNotInitializedByInvokeStaticOnSubInterfaceTest.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.ToolHelper;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -71,6 +72,7 @@
buildInnerClasses(getClass())
.addLibraryFile(ToolHelper.getMostRecentAndroidJar())
.build(),
+ Timing.empty(),
TestClass.class);
assertNoClassInitializationSideEffects(appView, J.class);
}
diff --git a/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideDefaultMethodTest.java b/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideDefaultMethodTest.java
index 787777d..a36b88b 100644
--- a/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideDefaultMethodTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideDefaultMethodTest.java
@@ -18,6 +18,7 @@
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.Enqueuer;
import com.android.tools.r8.utils.AndroidApiLevel;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -61,7 +62,8 @@
.assertSuccessWithOutputLines("ProgramI::foo");
}
- private void verifyLibraryOverrideInformation(AppInfoWithLiveness appInfo, Enqueuer.Mode mode) {
+ private void verifyLibraryOverrideInformation(
+ AppInfoWithLiveness appInfo, Enqueuer.Mode mode, Timing timing) {
DexItemFactory dexItemFactory = appInfo.dexItemFactory();
DexProgramClass clazz =
appInfo
diff --git a/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideOfClassMethodWithInterfaceTest.java b/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideOfClassMethodWithInterfaceTest.java
index cd79bde..7b5d826 100644
--- a/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideOfClassMethodWithInterfaceTest.java
+++ b/src/test/java/com/android/tools/r8/shaking/librarymethodoverride/LibraryMethodOverrideOfClassMethodWithInterfaceTest.java
@@ -14,6 +14,7 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.shaking.Enqueuer;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -58,7 +59,8 @@
.assertSuccessWithOutputLines(EXPECTED);
}
- private void verifyLibraryOverrideInformation(AppInfoWithLiveness appInfo, Enqueuer.Mode mode) {
+ private void verifyLibraryOverrideInformation(
+ AppInfoWithLiveness appInfo, Enqueuer.Mode mode, Timing timing) {
DexItemFactory dexItemFactory = appInfo.dexItemFactory();
DexProgramClass clazz =
appInfo
diff --git a/src/test/java11/com/android/tools/r8/jdk11/nest/b169045091/NestMemberAccessibilityTest.java b/src/test/java11/com/android/tools/r8/jdk11/nest/b169045091/NestMemberAccessibilityTest.java
index ffa0f69..bb6f936 100644
--- a/src/test/java11/com/android/tools/r8/jdk11/nest/b169045091/NestMemberAccessibilityTest.java
+++ b/src/test/java11/com/android/tools/r8/jdk11/nest/b169045091/NestMemberAccessibilityTest.java
@@ -19,6 +19,7 @@
import com.android.tools.r8.references.Reference;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.AndroidApp;
+import com.android.tools.r8.utils.timing.Timing;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.junit.runners.Parameterized;
@@ -45,6 +46,7 @@
.addClassProgramData(ToolHelper.getClassAsBytes(NonNestMember.class))
.addClassProgramData(getNestHostClassTransformed())
.build(),
+ Timing.empty(),
TestClass.class);
AppInfoWithLiveness appInfo = appView.appInfo();
DexItemFactory dexItemFactory = appView.dexItemFactory();
diff --git a/src/test/testbase/java/com/android/tools/r8/TestAppViewBuilder.java b/src/test/testbase/java/com/android/tools/r8/TestAppViewBuilder.java
index b32344f..734b487 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestAppViewBuilder.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestAppViewBuilder.java
@@ -11,6 +11,7 @@
import com.android.tools.r8.utils.AndroidApp;
import com.android.tools.r8.utils.InternalOptions;
import com.android.tools.r8.utils.ListUtils;
+import com.android.tools.r8.utils.timing.Timing;
import java.nio.file.Path;
import java.util.ArrayList;
import java.util.Arrays;
@@ -80,9 +81,10 @@
return this;
}
- public AppView<AppInfoWithLiveness> buildWithLiveness() throws Exception {
+ public AppView<AppInfoWithLiveness> buildWithLiveness(Timing timing) throws Exception {
return TestBase.computeAppViewWithLiveness(
builder.build(),
+ timing,
(rules == null
? null
: factory ->
diff --git a/src/test/testbase/java/com/android/tools/r8/TestBase.java b/src/test/testbase/java/com/android/tools/r8/TestBase.java
index 163f00b..c5535b7 100644
--- a/src/test/testbase/java/com/android/tools/r8/TestBase.java
+++ b/src/test/testbase/java/com/android/tools/r8/TestBase.java
@@ -964,17 +964,19 @@
}
protected static AppView<AppInfoWithClassHierarchy> computeAppViewWithClassHierarchy(
- AndroidApp app) throws Exception {
- return computeAppViewWithClassHierarchy(app, null);
+ AndroidApp app, Timing timing) throws Exception {
+ return computeAppViewWithClassHierarchy(app, timing, null);
}
protected static AppView<AppInfoWithClassHierarchy> computeAppViewWithClassHierarchy(
- AndroidApp app, Function<DexItemFactory, ProguardConfiguration> keepConfig) throws Exception {
- return computeAppViewWithClassHierarchy(app, keepConfig, null);
+ AndroidApp app, Timing timing, Function<DexItemFactory, ProguardConfiguration> keepConfig)
+ throws Exception {
+ return computeAppViewWithClassHierarchy(app, timing, keepConfig, null);
}
protected static AppView<AppInfoWithClassHierarchy> computeAppViewWithClassHierarchy(
AndroidApp app,
+ Timing timing,
Function<DexItemFactory, ProguardConfiguration> keepConfig,
Consumer<InternalOptions> optionsConsumer)
throws Exception {
@@ -998,37 +1000,42 @@
}
LazyLoadedDexApplication dexApplication = readApplicationForDexOutput(app, options);
AppView<AppInfoWithClassHierarchy> appView =
- AppView.createForR8(dexApplication.toDirectSingleThreadedForTesting());
+ AppView.createForR8(dexApplication.toDirectSingleThreadedForTesting(timing));
appView.setAppServices(AppServices.builder(appView).build());
return appView;
}
- protected static AppView<AppInfoWithLiveness> computeAppViewWithLiveness(AndroidApp app)
- throws Exception {
- return TestAppViewBuilder.builder().addAndroidApp(app).addKeepAllRule().buildWithLiveness();
+ protected static AppView<AppInfoWithLiveness> computeAppViewWithLiveness(
+ AndroidApp app, Timing timing) throws Exception {
+ return TestAppViewBuilder.builder()
+ .addAndroidApp(app)
+ .addKeepAllRule()
+ .buildWithLiveness(timing);
}
protected static AppView<AppInfoWithLiveness> computeAppViewWithLiveness(
- AndroidApp app, Class<?> mainClass) throws Exception {
+ AndroidApp app, Timing timing, Class<?> mainClass) throws Exception {
return TestAppViewBuilder.builder()
.addAndroidApp(app)
.addKeepMainRule(mainClass)
- .buildWithLiveness();
+ .buildWithLiveness(timing);
}
// We should try to get rid of this usage of keep rule building which is very internal.
protected static AppView<AppInfoWithLiveness> computeAppViewWithLiveness(
- AndroidApp app, Function<DexItemFactory, ProguardConfiguration> keepConfig) throws Exception {
- return computeAppViewWithLiveness(app, keepConfig, null);
+ AndroidApp app, Timing timing, Function<DexItemFactory, ProguardConfiguration> keepConfig)
+ throws Exception {
+ return computeAppViewWithLiveness(app, timing, keepConfig, null);
}
protected static AppView<AppInfoWithLiveness> computeAppViewWithLiveness(
AndroidApp app,
+ Timing timing,
Function<DexItemFactory, ProguardConfiguration> keepConfig,
Consumer<InternalOptions> optionsConsumer)
throws Exception {
AppView<AppInfoWithClassHierarchy> appView =
- computeAppViewWithClassHierarchy(app, keepConfig, optionsConsumer);
+ computeAppViewWithClassHierarchy(app, timing, keepConfig, optionsConsumer);
// Run the tree shaker to compute an instance of AppInfoWithLiveness.
ExecutorService executor = Executors.newSingleThreadExecutor();
ProfileCollectionAdditions profileCollectionAdditions = ProfileCollectionAdditions.nop();
diff --git a/src/test/testbase/java/com/android/tools/r8/ToolHelper.java b/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
index adea896..c3412a9 100644
--- a/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
+++ b/src/test/testbase/java/com/android/tools/r8/ToolHelper.java
@@ -2722,9 +2722,9 @@
return builder;
}
- public static void writeApplication(AppView<?> appView) throws ExecutionException {
+ public static void writeApplication(AppView<?> appView, Timing timing) throws ExecutionException {
appView.options().tool = Tool.R8;
- R8.writeApplication(appView, null, Executors.newSingleThreadExecutor());
+ R8.writeApplication(appView, null, Executors.newSingleThreadExecutor(), timing);
}
public static void disassemble(AndroidApp app, PrintStream ps)
diff --git a/src/test/testbase/java/com/android/tools/r8/utils/Smali.java b/src/test/testbase/java/com/android/tools/r8/utils/Smali.java
index 10d172d..46c8e83 100644
--- a/src/test/testbase/java/com/android/tools/r8/utils/Smali.java
+++ b/src/test/testbase/java/com/android/tools/r8/utils/Smali.java
@@ -118,7 +118,7 @@
AppInfo.createInitialAppInfo(
dexApp, GlobalSyntheticsStrategy.forNonSynthesizing())),
null);
- writer.write(executor);
+ writer.write(executor, Timing.empty());
return consumer.contents;
} finally {
executor.shutdown();