Report timing for enqueuer worklist items

Bug: b/378464445
Change-Id: If1e1f3e93943ebc5d5177fc7e3848ab1bd49e374
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 bc74f85..9fa5c88 100644
--- a/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
+++ b/src/main/java/com/android/tools/r8/shaking/Enqueuer.java
@@ -4731,10 +4731,13 @@
       while (true) {
         timing.begin("Compute fixpoint #" + round++);
         long numberOfLiveItems = getNumberOfLiveItems();
+
+        timing.begin("Process worklist");
         while (worklist.hasNext()) {
           EnqueuerAction action = worklist.poll();
-          action.run(this);
+          action.run(this, timing);
         }
+        timing.end();
 
         // Continue fix-point processing if -if rules are enabled by items that newly became live.
         long numberOfLiveItemsAfterProcessing = getNumberOfLiveItems();
diff --git a/src/main/java/com/android/tools/r8/shaking/EnqueuerWorklist.java b/src/main/java/com/android/tools/r8/shaking/EnqueuerWorklist.java
index cf7ee8f..82ae22b 100644
--- a/src/main/java/com/android/tools/r8/shaking/EnqueuerWorklist.java
+++ b/src/main/java/com/android/tools/r8/shaking/EnqueuerWorklist.java
@@ -20,6 +20,7 @@
 import com.android.tools.r8.shaking.GraphReporter.KeepReasonWitness;
 import com.android.tools.r8.utils.Action;
 import com.android.tools.r8.utils.InternalOptions;
+import com.android.tools.r8.utils.Timing;
 import java.util.Collection;
 import java.util.Objects;
 import java.util.Queue;
@@ -28,7 +29,18 @@
 public abstract class EnqueuerWorklist {
 
   public abstract static class EnqueuerAction {
+
+    public String getName() {
+      return getClass().getName();
+    }
+
     public abstract void run(Enqueuer enqueuer);
+
+    public final void run(Enqueuer enqueuer, Timing timing) {
+      timing.begin(getName());
+      run(enqueuer);
+      timing.end();
+    }
   }
 
   static class AssertAction extends EnqueuerAction {