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();