Disable tracking optimization if not activated

Bug: 191617670
Change-Id: I7b422d77b967abfb3cd40cead6bd87770bb017cd
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
index a99c921..c1d343c 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRConverter.java
@@ -1656,7 +1656,8 @@
       timing.end();
     }
 
-    if (appView.appInfo().withLiveness().isPinned(code.method().getReference())) {
+    if (appView.appInfo().withLiveness().isPinned(code.context().getReference())
+        || !appView.options().isOptimizing()) {
       return;
     }
 
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java b/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
index 436f996..af661c5 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
@@ -135,10 +135,14 @@
     if (options.enableInlining) {
       identifyInvokeSemanticsForInlining(definition, code, feedback, timing);
     }
-    computeClassInlinerMethodConstraint(method, code, feedback, timing);
+    if (options.enableClassInlining) {
+      computeClassInlinerMethodConstraint(method, code, feedback, timing);
+    }
     computeSimpleInliningConstraint(method, code, feedback, timing);
     computeDynamicReturnType(dynamicTypeOptimization, feedback, definition, code, timing);
-    computeInitializedClassesOnNormalExit(feedback, definition, code, timing);
+    if (options.enableInitializedClassesAnalysis) {
+      computeInitializedClassesOnNormalExit(feedback, definition, code, timing);
+    }
     computeInstanceInitializerInfo(
         definition, code, feedback, instanceFieldInitializationInfos, timing);
     computeMayHaveSideEffects(feedback, definition, code, timing);
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 f2770c0..0e01a16 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -218,6 +218,7 @@
     enableValuePropagation = false;
     enableSideEffectAnalysis = false;
     enableTreeShakingOfLibraryMethodOverrides = false;
+    enableInitializedClassesAnalysis = false;
     callSiteOptimizationOptions.disableOptimization();
   }
 
@@ -576,6 +577,10 @@
     return enableMinification;
   }
 
+  public boolean isOptimizing() {
+    return hasProguardConfiguration() && getProguardConfiguration().isOptimizing();
+  }
+
   @Override
   public boolean isTreeShakingEnabled() {
     return isShrinking();