Include companion class clinits in baseline profile

Fixes: b/279414669
Change-Id: I76e4cfa7eef1c8e31c849c6517ab95c7fc47a217
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/CfInstructionDesugaringEventConsumer.java b/src/main/java/com/android/tools/r8/ir/desugar/CfInstructionDesugaringEventConsumer.java
index 3e410e8..01a25e7 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/CfInstructionDesugaringEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/CfInstructionDesugaringEventConsumer.java
@@ -359,8 +359,8 @@
     }
 
     @Override
-    public void acceptCompanionClassClinit(ProgramMethod method) {
-      methodProcessor.scheduleDesugaredMethodForProcessing(method);
+    public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
+      methodProcessor.scheduleDesugaredMethodForProcessing(companionMethod);
     }
 
     @Override
@@ -496,7 +496,7 @@
     }
 
     @Override
-    public void acceptCompanionClassClinit(ProgramMethod method) {
+    public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
       // Intentionally empty. The method will be hit by tracing if required.
     }
 
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
index 6eb7bca..21771de 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceDesugaringSyntheticHelper.java
@@ -565,7 +565,9 @@
         appView.dexItemFactory().createProto(appView.dexItemFactory().voidType),
         appView,
         methodBuilder -> createCompanionClassInitializer(iface, methodBuilder),
-        eventConsumer::acceptCompanionClassClinit);
+        companionMethod ->
+            eventConsumer.acceptCompanionClassClinit(
+                iface.getProgramClassInitializer(), companionMethod));
   }
 
   private DexEncodedField ensureStaticClinitFieldToTriggerInterfaceInitialization(
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringBaseEventConsumer.java b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringBaseEventConsumer.java
index 8b02f6c..76f0d7c 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringBaseEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringBaseEventConsumer.java
@@ -7,7 +7,7 @@
 
 public interface InterfaceMethodDesugaringBaseEventConsumer {
 
-  void acceptCompanionClassClinit(ProgramMethod method);
+  void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod);
 
   void acceptDefaultAsCompanionMethod(ProgramMethod method, ProgramMethod companionMethod);
 
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringEventConsumer.java b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringEventConsumer.java
index cea8eab..587dafa 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/itf/InterfaceMethodDesugaringEventConsumer.java
@@ -24,7 +24,7 @@
     private EmptyInterfaceMethodDesugaringEventConsumer() {}
 
     @Override
-    public void acceptCompanionClassClinit(ProgramMethod method) {
+    public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
       // Intentionally empty.
     }
 
diff --git a/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingCfInstructionDesugaringEventConsumer.java b/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingCfInstructionDesugaringEventConsumer.java
index a9d901a..94232e2 100644
--- a/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingCfInstructionDesugaringEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingCfInstructionDesugaringEventConsumer.java
@@ -91,8 +91,9 @@
   }
 
   @Override
-  public void acceptCompanionClassClinit(ProgramMethod method) {
-    parent.acceptCompanionClassClinit(method);
+  public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
+    additionsCollection.addMethodAndHolderIfContextIsInProfile(companionMethod, method);
+    parent.acceptCompanionClassClinit(method, companionMethod);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingRootSetBuilderEventConsumer.java b/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingRootSetBuilderEventConsumer.java
index 2a10ce0..22691ca 100644
--- a/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingRootSetBuilderEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/profile/rewriting/ProfileRewritingRootSetBuilderEventConsumer.java
@@ -28,8 +28,9 @@
   }
 
   @Override
-  public void acceptCompanionClassClinit(ProgramMethod method) {
-    parent.acceptCompanionClassClinit(method);
+  public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
+    additionsCollection.addMethodAndHolderIfContextIsInProfile(companionMethod, method);
+    parent.acceptCompanionClassClinit(method, companionMethod);
   }
 
   @Override
diff --git a/src/main/java/com/android/tools/r8/shaking/RootSetBuilderEventConsumer.java b/src/main/java/com/android/tools/r8/shaking/RootSetBuilderEventConsumer.java
index b59961e..6bf84a6 100644
--- a/src/main/java/com/android/tools/r8/shaking/RootSetBuilderEventConsumer.java
+++ b/src/main/java/com/android/tools/r8/shaking/RootSetBuilderEventConsumer.java
@@ -31,7 +31,7 @@
     }
 
     @Override
-    public void acceptCompanionClassClinit(ProgramMethod method) {
+    public void acceptCompanionClassClinit(ProgramMethod method, ProgramMethod companionMethod) {
       // Intentionally empty.
     }