Strip compilation metadata from build metadata

Bug: b/433551594
Change-Id: I2e9f4ce234d9a63de7987f543f6917d0f421824e
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 cf0c9e3..bc2f1c0 100644
--- a/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/dex/ApplicationWriter.java
@@ -395,7 +395,7 @@
       options.reporter.failIfPendingErrors();
       // Supply info to all additional resource consumers.
       if (!(programConsumer instanceof ConvertedCfFiles)) {
-        supplyAdditionalConsumers(appView, executorService, virtualFiles);
+        supplyAdditionalConsumers(appView, virtualFiles);
       }
     } finally {
       timing.end();
@@ -595,8 +595,7 @@
   }
 
   @SuppressWarnings("DefaultCharset")
-  public static void supplyAdditionalConsumers(
-      AppView<?> appView, ExecutorService executorService, List<VirtualFile> virtualFiles) {
+  public static void supplyAdditionalConsumers(AppView<?> appView, List<VirtualFile> virtualFiles) {
     InternalOptions options = appView.options();
     Reporter reporter = options.reporter;
     appView.getArtProfileCollection().supplyConsumers(appView);
@@ -652,7 +651,7 @@
     if (options.r8BuildMetadataConsumer != null) {
       assert appView.hasClassHierarchy();
       options.r8BuildMetadataConsumer.accept(
-          BuildMetadataFactory.create(appView.withClassHierarchy(), executorService, virtualFiles));
+          BuildMetadataFactory.create(appView.withClassHierarchy(), virtualFiles));
     }
   }
 
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 6898d97..f7266a1 100644
--- a/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
+++ b/src/main/java/com/android/tools/r8/jar/CfApplicationWriter.java
@@ -125,7 +125,7 @@
           executorService);
       globalsConsumer.finished(appView);
     }
-    ApplicationWriter.supplyAdditionalConsumers(appView, executorService, Collections.emptyList());
+    ApplicationWriter.supplyAdditionalConsumers(appView, Collections.emptyList());
   }
 
   private void supplyConsumer(
diff --git a/src/main/java/com/android/tools/r8/metadata/R8BuildMetadata.java b/src/main/java/com/android/tools/r8/metadata/R8BuildMetadata.java
index 2f8f82d..beb814c 100644
--- a/src/main/java/com/android/tools/r8/metadata/R8BuildMetadata.java
+++ b/src/main/java/com/android/tools/r8/metadata/R8BuildMetadata.java
@@ -7,7 +7,6 @@
 import com.android.tools.r8.metadata.impl.R8ApiModelingMetadataImpl;
 import com.android.tools.r8.metadata.impl.R8BaselineProfileRewritingMetadataImpl;
 import com.android.tools.r8.metadata.impl.R8BuildMetadataImpl;
-import com.android.tools.r8.metadata.impl.R8CompilationMetadataImpl;
 import com.android.tools.r8.metadata.impl.R8DexFileMetadataImpl;
 import com.android.tools.r8.metadata.impl.R8FeatureSplitMetadataImpl;
 import com.android.tools.r8.metadata.impl.R8FeatureSplitsMetadataImpl;
@@ -35,8 +34,6 @@
         .registerTypeAdapter(
             R8BaselineProfileRewritingMetadata.class,
             deserializeTo(R8BaselineProfileRewritingMetadataImpl.class))
-        .registerTypeAdapter(
-            R8CompilationMetadata.class, deserializeTo(R8CompilationMetadataImpl.class))
         .registerTypeAdapter(R8DexFileMetadata.class, deserializeTo(R8DexFileMetadataImpl.class))
         .registerTypeAdapter(R8StatsMetadata.class, deserializeTo(R8StatsMetadataImpl.class))
         .registerTypeAdapter(
@@ -75,8 +72,6 @@
    */
   R8BaselineProfileRewritingMetadata getBaselineProfileRewritingMetadata();
 
-  R8CompilationMetadata getCompilationMetadata();
-
   /**
    * @return null if not compiling to dex.
    */
diff --git a/src/main/java/com/android/tools/r8/metadata/R8CompilationMetadata.java b/src/main/java/com/android/tools/r8/metadata/R8CompilationMetadata.java
deleted file mode 100644
index a492cee..0000000
--- a/src/main/java/com/android/tools/r8/metadata/R8CompilationMetadata.java
+++ /dev/null
@@ -1,14 +0,0 @@
-// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.metadata;
-
-import com.android.tools.r8.keepanno.annotations.KeepForApi;
-
-@KeepForApi
-public interface R8CompilationMetadata {
-
-  long getBuildTimeInNanos();
-
-  long getNumberOfThreads();
-}
diff --git a/src/main/java/com/android/tools/r8/metadata/impl/BuildMetadataFactory.java b/src/main/java/com/android/tools/r8/metadata/impl/BuildMetadataFactory.java
index ecead83..dae2b90 100644
--- a/src/main/java/com/android/tools/r8/metadata/impl/BuildMetadataFactory.java
+++ b/src/main/java/com/android/tools/r8/metadata/impl/BuildMetadataFactory.java
@@ -21,7 +21,6 @@
 import java.util.IdentityHashMap;
 import java.util.List;
 import java.util.Map;
-import java.util.concurrent.ExecutorService;
 
 public class BuildMetadataFactory {
 
@@ -34,7 +33,6 @@
 
   public static R8BuildMetadata create(
       AppView<? extends AppInfoWithClassHierarchy> appView,
-      ExecutorService executorService,
       List<VirtualFile> virtualFiles) {
     Map<FeatureSplit, List<VirtualFile>> virtualFilesForFeatureSplit = new IdentityHashMap<>();
     for (VirtualFile virtualFile : Iterables.filter(virtualFiles, not(VirtualFile::isEmpty))) {
@@ -49,7 +47,6 @@
     return R8BuildMetadataImpl.builder()
         .setOptions(new R8OptionsMetadataImpl(options))
         .setBaselineProfileRewritingOptions(R8BaselineProfileRewritingMetadataImpl.create(options))
-        .setCompilationInfo(R8CompilationMetadataImpl.create(appView, executorService))
         .applyIf(
             options.isGeneratingDex(), builder -> builder.setDexFilesMetadata(baseVirtualFiles))
         .applyIf(
diff --git a/src/main/java/com/android/tools/r8/metadata/impl/R8BuildMetadataImpl.java b/src/main/java/com/android/tools/r8/metadata/impl/R8BuildMetadataImpl.java
index ea6cec6..ee8ed0b 100644
--- a/src/main/java/com/android/tools/r8/metadata/impl/R8BuildMetadataImpl.java
+++ b/src/main/java/com/android/tools/r8/metadata/impl/R8BuildMetadataImpl.java
@@ -12,7 +12,6 @@
 import com.android.tools.r8.keepanno.annotations.UsedByReflection;
 import com.android.tools.r8.metadata.R8BaselineProfileRewritingMetadata;
 import com.android.tools.r8.metadata.R8BuildMetadata;
-import com.android.tools.r8.metadata.R8CompilationMetadata;
 import com.android.tools.r8.metadata.R8DexFileMetadata;
 import com.android.tools.r8.metadata.R8FeatureSplitsMetadata;
 import com.android.tools.r8.metadata.R8OptionsMetadata;
@@ -45,10 +44,6 @@
   private final R8BaselineProfileRewritingMetadata baselineProfileRewritingMetadata;
 
   @Expose
-  @SerializedName("compilation")
-  private final R8CompilationMetadata compilationMetadata;
-
-  @Expose
   @SerializedName("dexFiles")
   private final List<R8DexFileMetadata> dexFilesMetadata;
 
@@ -79,7 +74,6 @@
   public R8BuildMetadataImpl(
       R8OptionsMetadata options,
       R8BaselineProfileRewritingMetadata baselineProfileRewritingOptions,
-      R8CompilationMetadata compilationMetadata,
       List<R8DexFileMetadata> dexFilesMetadata,
       R8StatsMetadata statsMetadata,
       R8FeatureSplitsMetadata featureSplitsMetadata,
@@ -89,7 +83,6 @@
       String version) {
     this.optionsMetadata = options;
     this.baselineProfileRewritingMetadata = baselineProfileRewritingOptions;
-    this.compilationMetadata = compilationMetadata;
     this.dexFilesMetadata = dexFilesMetadata;
     this.statsMetadata = statsMetadata;
     this.featureSplitsMetadata = featureSplitsMetadata;
@@ -114,11 +107,6 @@
   }
 
   @Override
-  public R8CompilationMetadata getCompilationMetadata() {
-    return compilationMetadata;
-  }
-
-  @Override
   public List<R8DexFileMetadata> getDexFilesMetadata() {
     return dexFilesMetadata;
   }
@@ -162,7 +150,6 @@
 
     private R8OptionsMetadata options;
     private R8BaselineProfileRewritingMetadata baselineProfileRewritingOptions;
-    private R8CompilationMetadata compilationInfo;
     private List<R8DexFileMetadata> dexFilesMetadata;
     private R8StatsMetadata statsMetadata;
     private R8FeatureSplitsMetadata featureSplitsMetadata;
@@ -189,11 +176,6 @@
       return this;
     }
 
-    public Builder setCompilationInfo(R8CompilationMetadata compilationInfo) {
-      this.compilationInfo = compilationInfo;
-      return this;
-    }
-
     public Builder setDexFilesMetadata(List<VirtualFile> virtualFiles) {
       this.dexFilesMetadata = ListUtils.map(virtualFiles, R8DexFileMetadataImpl::create);
       return this;
@@ -236,7 +218,6 @@
       return new R8BuildMetadataImpl(
           options,
           baselineProfileRewritingOptions,
-          compilationInfo,
           dexFilesMetadata,
           statsMetadata,
           featureSplitsMetadata,
diff --git a/src/main/java/com/android/tools/r8/metadata/impl/R8CompilationMetadataImpl.java b/src/main/java/com/android/tools/r8/metadata/impl/R8CompilationMetadataImpl.java
deleted file mode 100644
index ffd7564..0000000
--- a/src/main/java/com/android/tools/r8/metadata/impl/R8CompilationMetadataImpl.java
+++ /dev/null
@@ -1,60 +0,0 @@
-// Copyright (c) 2024, the R8 project authors. Please see the AUTHORS file
-// for details. All rights reserved. Use of this source code is governed by a
-// BSD-style license that can be found in the LICENSE file.
-package com.android.tools.r8.metadata.impl;
-
-import com.android.tools.r8.graph.AppInfoWithClassHierarchy;
-import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.keepanno.annotations.AnnotationPattern;
-import com.android.tools.r8.keepanno.annotations.FieldAccessFlags;
-import com.android.tools.r8.keepanno.annotations.KeepConstraint;
-import com.android.tools.r8.keepanno.annotations.KeepItemKind;
-import com.android.tools.r8.keepanno.annotations.UsedByReflection;
-import com.android.tools.r8.metadata.R8CompilationMetadata;
-import com.android.tools.r8.utils.InternalOptions;
-import com.android.tools.r8.utils.ThreadUtils;
-import com.google.gson.annotations.Expose;
-import com.google.gson.annotations.SerializedName;
-import java.util.concurrent.ExecutorService;
-
-@UsedByReflection(
-    description = "Keep and preserve @SerializedName for correct (de)serialization",
-    constraints = {KeepConstraint.LOOKUP},
-    constrainAnnotations = @AnnotationPattern(constant = SerializedName.class),
-    kind = KeepItemKind.CLASS_AND_FIELDS,
-    fieldAccess = {FieldAccessFlags.PRIVATE},
-    fieldAnnotatedByClassConstant = SerializedName.class)
-public class R8CompilationMetadataImpl implements R8CompilationMetadata {
-
-  @Expose
-  @SerializedName("buildTimeNs")
-  private final long buildTimeInNanos;
-
-  @Expose
-  @SerializedName("numberOfThreads")
-  private final long numberOfThreads;
-
-  private R8CompilationMetadataImpl(long buildTimeInNanos, int numberOfThreads) {
-    this.buildTimeInNanos = buildTimeInNanos;
-    this.numberOfThreads = numberOfThreads;
-  }
-
-  public static R8CompilationMetadataImpl create(
-      AppView<? extends AppInfoWithClassHierarchy> appView, ExecutorService executorService) {
-    InternalOptions options = appView.options();
-    assert options.created > 0;
-    long buildTimeInNanos = System.nanoTime() - options.created;
-    return new R8CompilationMetadataImpl(
-        buildTimeInNanos, ThreadUtils.getNumberOfThreads(executorService));
-  }
-
-  @Override
-  public long getBuildTimeInNanos() {
-    return buildTimeInNanos;
-  }
-
-  @Override
-  public long getNumberOfThreads() {
-    return numberOfThreads;
-  }
-}