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 c6521ea..b6b40f8 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
@@ -1631,7 +1631,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 e60769e..ccb3076 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
@@ -140,11 +140,15 @@ if (options.enableInlining) { identifyInvokeSemanticsForInlining(definition, code, feedback, timing); } - computeClassInlinerMethodConstraint(method, code, feedback, timing); + if (options.enableClassInlining) { + computeClassInlinerMethodConstraint(method, code, feedback, timing); + } computeEnumUnboxerMethodClassification(method, code, feedback, methodProcessor, 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 c478c54..c17a6ac 100644 --- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java +++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -226,6 +226,7 @@ enableValuePropagation = false; enableSideEffectAnalysis = false; enableTreeShakingOfLibraryMethodOverrides = false; + enableInitializedClassesAnalysis = false; callSiteOptimizationOptions.disableOptimization(); horizontalClassMergerOptions.setRestrictToSynthetics(); }