Enable field bit read analysis in run_on_app.py
Change-Id: Ie36351cd2cdd1fb4082e3e7c57705e59ad7289a7
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 e35245d..6f6f61a 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -185,7 +185,8 @@
// Optimization-related flags. These should conform to -dontoptimize and disableAllOptimizations.
public boolean enableDynamicTypeOptimization = true;
- public boolean enableFieldBitAccessAnalysis = false;
+ public boolean enableFieldBitAccessAnalysis =
+ System.getProperty("com.android.tools.r8.fieldBitAccessAnalysis") != null;
public boolean enableHorizontalClassMerging = true;
public boolean enableVerticalClassMerging = true;
public boolean enableArgumentRemoval = true;
@@ -230,7 +231,8 @@
// the actual catch handler allowed when inlining. Threshold found empirically by testing on
// GMS Core.
public int inliningControlFlowResolutionBlocksThreshold = 15;
- public boolean enableStringSwitchConversion = false;
+ public boolean enableStringSwitchConversion =
+ System.getProperty("com.android.tools.r8.stringSwitchConversion") != null;
public boolean enableEnumValueOptimization = true;
public final OutlineOptions outline = new OutlineOptions();
public boolean enableInitializedClassesInInstanceMethodsAnalysis = true;
diff --git a/tools/run_on_app.py b/tools/run_on_app.py
index 0a41128..2f4dcbc 100755
--- a/tools/run_on_app.py
+++ b/tools/run_on_app.py
@@ -318,8 +318,10 @@
if 'allow-type-errors' in values:
extra_args.append('-Dcom.android.tools.r8.allowTypeErrors=1')
if 'proto-shrinking' in values:
+ extra_args.append('-Dcom.android.tools.r8.fieldBitAccessAnalysis=1')
extra_args.append('-Dcom.android.tools.r8.generatedExtensionRegistryShrinking=1')
extra_args.append('-Dcom.android.tools.r8.generatedMessageLiteShrinking=1')
+ extra_args.append('-Dcom.android.tools.r8.stringSwitchConversion=1')
if not options.no_libraries and 'libraries' in values:
for lib in values['libraries']: