Rename internal optimization flags

The existing naming was somewhat inconsistent.

Change-Id: I381c68db3475f45f38be3429aa0b16fd2e593541
diff --git a/src/main/java/com/android/tools/r8/D8.java b/src/main/java/com/android/tools/r8/D8.java
index a806138..a7bb291 100644
--- a/src/main/java/com/android/tools/r8/D8.java
+++ b/src/main/java/com/android/tools/r8/D8.java
@@ -148,8 +148,8 @@
       throws IOException, CompilationException {
     try {
       // Disable global optimizations.
-      options.skipMinification = true;
-      options.inlineAccessors = false;
+      options.enableMinification = false;
+      options.enableInlining = false;
       options.outline.enabled = false;
 
       Timing timing = new Timing("DX timer");
diff --git a/src/main/java/com/android/tools/r8/D8Command.java b/src/main/java/com/android/tools/r8/D8Command.java
index 0e39dae..2678c1f 100644
--- a/src/main/java/com/android/tools/r8/D8Command.java
+++ b/src/main/java/com/android/tools/r8/D8Command.java
@@ -329,22 +329,22 @@
     internal.minApiLevel = getMinApiLevel();
     internal.intermediate = intermediate;
     // Assert and fixup defaults.
-    assert !internal.skipMinification;
-    internal.skipMinification = true;
-    assert internal.useTreeShaking;
-    internal.useTreeShaking = false;
+    assert internal.enableMinification;
+    internal.enableMinification = false;
+    assert internal.enableTreeShaking;
+    internal.enableTreeShaking = false;
     assert !internal.passthroughDexCode;
     internal.passthroughDexCode = true;
 
     // Disable some of R8 optimizations.
-    assert internal.inlineAccessors;
-    internal.inlineAccessors = false;
-    assert internal.removeSwitchMaps;
-    internal.removeSwitchMaps = false;
+    assert internal.enableInlining;
+    internal.enableInlining = false;
+    assert internal.enableSwitchMapRemoval;
+    internal.enableSwitchMapRemoval = false;
     assert internal.outline.enabled;
     internal.outline.enabled = false;
-    assert internal.propagateMemberValue;
-    internal.propagateMemberValue = false;
+    assert internal.enableValuePropagation;
+    internal.enableValuePropagation = false;
 
     internal.enableDesugaring = getEnableDesugaring();
     return internal;
diff --git a/src/main/java/com/android/tools/r8/DexFileMergerHelper.java b/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
index 57b3804..bcbddb1 100644
--- a/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
+++ b/src/main/java/com/android/tools/r8/DexFileMergerHelper.java
@@ -56,8 +56,8 @@
     options.enableDesugaring = false;
     options.enableMainDexListCheck = false;
     options.minimalMainDex = minimalMainDex;
-    options.skipMinification = true;
-    options.inlineAccessors = false;
+    options.enableMinification = false;
+    options.enableInlining = false;
     options.outline.enabled = false;
 
     ExecutorService executor = ThreadUtils.getExecutorService(ThreadUtils.NOT_SPECIFIED);
diff --git a/src/main/java/com/android/tools/r8/DexSplitterHelper.java b/src/main/java/com/android/tools/r8/DexSplitterHelper.java
index c086c7e..d28f93f 100644
--- a/src/main/java/com/android/tools/r8/DexSplitterHelper.java
+++ b/src/main/java/com/android/tools/r8/DexSplitterHelper.java
@@ -38,8 +38,8 @@
     options.enableDesugaring = false;
     options.enableMainDexListCheck = false;
     options.minimalMainDex = false;
-    options.skipMinification = true;
-    options.inlineAccessors = false;
+    options.enableMinification = false;
+    options.enableInlining = false;
     options.outline.enabled = false;
 
     ExecutorService executor = ThreadUtils.getExecutorService(ThreadUtils.NOT_SPECIFIED);
diff --git a/src/main/java/com/android/tools/r8/GenerateMainDexListCommand.java b/src/main/java/com/android/tools/r8/GenerateMainDexListCommand.java
index 62ab21b..f9e0ebf 100644
--- a/src/main/java/com/android/tools/r8/GenerateMainDexListCommand.java
+++ b/src/main/java/com/android/tools/r8/GenerateMainDexListCommand.java
@@ -204,8 +204,8 @@
     internal.mainDexKeepRules = mainDexKeepRules;
     internal.mainDexListConsumer = mainDexListConsumer;
     internal.minimalMainDex = internal.debug;
-    internal.removeSwitchMaps = false;
-    internal.inlineAccessors = false;
+    internal.enableSwitchMapRemoval = false;
+    internal.enableInlining = false;
     return internal;
   }
 }
diff --git a/src/main/java/com/android/tools/r8/R8.java b/src/main/java/com/android/tools/r8/R8.java
index 345a671..906c8d8 100644
--- a/src/main/java/com/android/tools/r8/R8.java
+++ b/src/main/java/com/android/tools/r8/R8.java
@@ -287,7 +287,7 @@
           out.flush();
           proguardSeedsData = bytes.toString();
         }
-        if (options.useTreeShaking) {
+        if (options.enableTreeShaking) {
           TreePruner pruner = new TreePruner(application, appInfo.withLiveness(), options);
           application = pruner.run();
           // Recompute the subtyping information.
@@ -329,7 +329,7 @@
       if (appInfo.hasLiveness()) {
         graphLense = new MemberRebindingAnalysis(appInfo.withLiveness(), graphLense).run();
         // Class merging requires inlining.
-        if (!options.skipClassMerging && options.inlineAccessors) {
+        if (options.enableClassMerging && options.enableInlining) {
           timing.begin("ClassMerger");
           SimpleClassMerger classMerger = new SimpleClassMerger(application,
               appInfo.withLiveness(), graphLense, timing);
@@ -400,12 +400,12 @@
 
       appInfo = new AppInfoWithSubtyping(application);
 
-      if (options.useTreeShaking || !options.skipMinification) {
+      if (options.enableTreeShaking || options.enableMinification) {
         timing.begin("Post optimization code stripping");
         try {
           Enqueuer enqueuer = new Enqueuer(appInfo, options);
           appInfo = enqueuer.traceApplication(rootSet, timing);
-          if (options.useTreeShaking) {
+          if (options.enableTreeShaking) {
             TreePruner pruner = new TreePruner(application, appInfo.withLiveness(), options);
             application = pruner.run();
             appInfo = appInfo.withLiveness()
@@ -420,7 +420,7 @@
       }
 
       // Only perform discard-checking if tree-shaking is turned on.
-      if (options.useTreeShaking && !rootSet.checkDiscarded.isEmpty()) {
+      if (options.enableTreeShaking && !rootSet.checkDiscarded.isEmpty()) {
         new DiscardedChecker(rootSet, application, options).run();
       }
 
@@ -428,9 +428,9 @@
       // If we did not have keep rules, everything will be marked as keep, so no minification
       // will happen. Just avoid the overhead.
       NamingLens namingLens =
-          options.skipMinification
-              ? NamingLens.getIdentityLens()
-              : new Minifier(appInfo.withLiveness(), rootSet, options).run(timing);
+          options.enableMinification
+              ? new Minifier(appInfo.withLiveness(), rootSet, options).run(timing)
+              : NamingLens.getIdentityLens();
       timing.end();
 
       ProguardMapSupplier proguardMapSupplier;
diff --git a/src/main/java/com/android/tools/r8/R8Command.java b/src/main/java/com/android/tools/r8/R8Command.java
index e46f743..7004d5f 100644
--- a/src/main/java/com/android/tools/r8/R8Command.java
+++ b/src/main/java/com/android/tools/r8/R8Command.java
@@ -636,26 +636,17 @@
     internal.programConsumer = getProgramConsumer();
     internal.minApiLevel = getMinApiLevel();
     internal.enableDesugaring = getEnableDesugaring();
-    // -dontoptimize disables optimizations by flipping related flags.
-    if (!proguardConfiguration.isOptimizing()) {
-      internal.skipClassMerging = true;
-      internal.addNonNull = false;
-      internal.inlineAccessors = false;
-      internal.removeSwitchMaps = false;
-      internal.outline.enabled = false;
-      internal.propagateMemberValue = false;
-    }
-    assert !internal.skipMinification;
-    internal.skipMinification = !getEnableMinification();
-    assert internal.useTreeShaking;
-    internal.useTreeShaking = getEnableTreeShaking();
+    assert internal.enableMinification;
+    internal.enableMinification = getEnableMinification();
+    assert internal.enableTreeShaking;
+    internal.enableTreeShaking = getEnableTreeShaking();
     assert !internal.ignoreMissingClasses;
     internal.ignoreMissingClasses = proguardConfiguration.isIgnoreWarnings()
         // TODO(70706667): We probably only want this in Proguard compatibility mode.
         || (forceProguardCompatibility
             && !proguardConfiguration.isOptimizing()
-            && internal.skipMinification
-            && !internal.useTreeShaking);
+            && !internal.enableMinification
+            && !internal.enableTreeShaking);
 
     assert !internal.verbose;
     internal.mainDexKeepRules = mainDexKeepRules;
@@ -667,7 +658,7 @@
 
     if (internal.debug) {
       // TODO(zerny): Should we support inlining in debug mode? b/62937285
-      internal.inlineAccessors = false;
+      internal.enableInlining = false;
       // TODO(zerny): Should we support outlining in debug mode? b/62937285
       internal.outline.enabled = false;
     }
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 31bd727..bb4b629 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
@@ -34,7 +34,7 @@
 import com.android.tools.r8.ir.optimize.Inliner;
 import com.android.tools.r8.ir.optimize.Inliner.Constraint;
 import com.android.tools.r8.ir.optimize.MemberValuePropagation;
-import com.android.tools.r8.ir.optimize.NonNullMarker;
+import com.android.tools.r8.ir.optimize.NonNullTracker;
 import com.android.tools.r8.ir.optimize.Outliner;
 import com.android.tools.r8.ir.optimize.PeepholeOptimizer;
 import com.android.tools.r8.ir.regalloc.LinearScanRegisterAllocator;
@@ -82,7 +82,7 @@
   private final CodeRewriter codeRewriter;
   private final MemberValuePropagation memberValuePropagation;
   private final LensCodeRewriter lensCodeRewriter;
-  private final NonNullMarker nonNullMarker;
+  private final NonNullTracker nonNullTracker;
   private final Inliner inliner;
   private final ProtoLitePruner protoLiteRewriter;
   private final IdentifierNameStringMarker identifierNameStringMarker;
@@ -113,17 +113,18 @@
             ? new InterfaceMethodRewriter(this, options) : null;
     if (enableWholeProgramOptimizations) {
       assert appInfo.hasLiveness();
-      this.nonNullMarker = new NonNullMarker();
+      this.nonNullTracker = new NonNullTracker();
       this.inliner = new Inliner(appInfo.withLiveness(), graphLense, options);
       this.outliner = new Outliner(appInfo.withLiveness(), options);
       this.memberValuePropagation =
-          options.propagateMemberValue ? new MemberValuePropagation(appInfo.withLiveness()) : null;
+          options.enableValuePropagation ?
+              new MemberValuePropagation(appInfo.withLiveness()) : null;
       this.lensCodeRewriter = new LensCodeRewriter(graphLense, appInfo.withSubtyping());
       if (appInfo.hasLiveness()) {
         // When disabling the pruner here, also disable the ProtoLiteExtension in R8.java.
         this.protoLiteRewriter =
             options.forceProguardCompatibility ? null : new ProtoLitePruner(appInfo.withLiveness());
-        if (!appInfo.withLiveness().identifierNameStrings.isEmpty() && !options.skipMinification) {
+        if (!appInfo.withLiveness().identifierNameStrings.isEmpty() && options.enableMinification) {
           this.identifierNameStringMarker = new IdentifierNameStringMarker(appInfo.withLiveness());
         } else {
           this.identifierNameStringMarker = null;
@@ -133,7 +134,7 @@
         this.identifierNameStringMarker = null;
       }
     } else {
-      this.nonNullMarker = null;
+      this.nonNullTracker = null;
       this.inliner = null;
       this.outliner = null;
       this.memberValuePropagation = null;
@@ -557,18 +558,18 @@
     if (memberValuePropagation != null) {
       memberValuePropagation.rewriteWithConstantValues(code, method.method.holder);
     }
-    if (options.removeSwitchMaps && appInfo.hasLiveness()) {
+    if (options.enableSwitchMapRemoval && appInfo.hasLiveness()) {
       codeRewriter.removeSwitchMaps(code);
     }
     if (options.disableAssertions) {
       codeRewriter.disableAssertions(code);
     }
-    if (options.addNonNull && nonNullMarker != null) {
-      nonNullMarker.addNonNull(code);
+    if (options.enableNonNullTracking && nonNullTracker != null) {
+      nonNullTracker.addNonNull(code);
       assert code.isConsistentSSA();
     }
     TypeEnvironment typeEnvironment = TypeAnalysis.getDefaultTypeEnvironment();
-    if (options.inlineAccessors && inliner != null) {
+    if (options.enableInlining && inliner != null) {
       typeEnvironment = new TypeAnalysis(appInfo, method, code);
       // TODO(zerny): Should we support inlining in debug mode? b/62937285
       assert !options.debug;
@@ -586,8 +587,8 @@
     codeRewriter.rewriteSwitch(code);
     codeRewriter.processMethodsNeverReturningNormally(code);
     codeRewriter.simplifyIf(code, typeEnvironment);
-    if (options.addNonNull && nonNullMarker != null) {
-      nonNullMarker.cleanupNonNull(code);
+    if (options.enableNonNullTracking && nonNullTracker != null) {
+      nonNullTracker.cleanupNonNull(code);
       assert code.isConsistentSSA();
     }
     if (!options.debug) {
@@ -675,7 +676,7 @@
   private void markProcessed(DexEncodedMethod method, IRCode code, OptimizationFeedback feedback) {
     // After all the optimizations have take place, we compute whether method should be inlinedex.
     Constraint state;
-    if (!options.inlineAccessors || inliner == null) {
+    if (!options.enableInlining || inliner == null) {
       state = Constraint.NEVER;
     } else {
       state = inliner.computeInliningConstraint(code, method);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
index bc0cd04..51d3f6e 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
@@ -269,8 +269,8 @@
       if (!target.isProcessed()) {
         new LensCodeRewriter(graphLense, appInfo).rewrite(code, target);
       }
-      if (options.addNonNull) {
-        new NonNullMarker().addNonNull(code);
+      if (options.enableNonNullTracking) {
+        new NonNullTracker().addNonNull(code);
       }
       return code;
     }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/NonNullMarker.java b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
similarity index 99%
rename from src/main/java/com/android/tools/r8/ir/optimize/NonNullMarker.java
rename to src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
index 9bc2918..9f15bc2 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/NonNullMarker.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
@@ -20,9 +20,9 @@
 import java.util.ListIterator;
 import java.util.Set;
 
-public class NonNullMarker {
+public class NonNullTracker {
 
-  public NonNullMarker() {
+  public NonNullTracker() {
   }
 
   @VisibleForTesting
diff --git a/src/main/java/com/android/tools/r8/naming/Minifier.java b/src/main/java/com/android/tools/r8/naming/Minifier.java
index 4181f7e..03c4c33 100644
--- a/src/main/java/com/android/tools/r8/naming/Minifier.java
+++ b/src/main/java/com/android/tools/r8/naming/Minifier.java
@@ -37,7 +37,7 @@
   }
 
   public NamingLens run(Timing timing) {
-    assert !options.skipMinification;
+    assert options.enableMinification;
     timing.begin("MinifyClasses");
     Map<DexType, DexString> classRenaming =
         new ClassNameMinifier(appInfo, rootSet, options).computeRenaming(timing);
diff --git a/src/main/java/com/android/tools/r8/shaking/AnnotationRemover.java b/src/main/java/com/android/tools/r8/shaking/AnnotationRemover.java
index 3b795af..871812a 100644
--- a/src/main/java/com/android/tools/r8/shaking/AnnotationRemover.java
+++ b/src/main/java/com/android/tools/r8/shaking/AnnotationRemover.java
@@ -93,7 +93,7 @@
     }
     DexClass definition = appInfo.definitionFor(annotationType);
     // TODO(73102187): How to handle annotations without definition.
-    if (options.useTreeShaking && definition == null) {
+    if (options.enableTreeShaking && definition == null) {
       return false;
     }
     return definition == null || definition.isLibraryClass()
diff --git a/src/main/java/com/android/tools/r8/shaking/TreePruner.java b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
index 9a57b07..27a6405 100644
--- a/src/main/java/com/android/tools/r8/shaking/TreePruner.java
+++ b/src/main/java/com/android/tools/r8/shaking/TreePruner.java
@@ -41,8 +41,7 @@
 
   public DexApplication run() {
     application.timing.begin("Pruning application...");
-    if (options.debugKeepRules && !options.skipMinification) {
-
+    if (options.debugKeepRules && options.enableMinification) {
       options.reporter.info(
           new StringDiagnostic(
               "Debugging keep rules on a minified build might yield broken builds, as "
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 e34ec89..8c3c6ed 100644
--- a/src/main/java/com/android/tools/r8/utils/InternalOptions.java
+++ b/src/main/java/com/android/tools/r8/utils/InternalOptions.java
@@ -65,6 +65,15 @@
     this.reporter = reporter;
     this.proguardConfiguration = proguardConfiguration;
     itemFactory = proguardConfiguration.getDexItemFactory();
+    // -dontoptimize disables optimizations by flipping related flags.
+    if (!proguardConfiguration.isOptimizing()) {
+      enableClassMerging = false;
+      enableNonNullTracking = false;
+      enableInlining = false;
+      enableSwitchMapRemoval = false;
+      outline.enabled = false;
+      enableValuePropagation = false;
+    }
   }
 
   public boolean printTimes = false;
@@ -73,12 +82,12 @@
   public boolean passthroughDexCode = false;
 
   // Optimization-related flags. These should conform to -dontoptimize.
-  public boolean skipClassMerging = true;
-  public boolean addNonNull = true;
-  public boolean inlineAccessors = true;
-  public boolean removeSwitchMaps = true;
+  public boolean enableClassMerging = false;
+  public boolean enableNonNullTracking = true;
+  public boolean enableInlining = true;
+  public boolean enableSwitchMapRemoval = true;
   public final OutlineOptions outline = new OutlineOptions();
-  public boolean propagateMemberValue = true;
+  public boolean enableValuePropagation = true;
 
   // Number of threads to use while processing the dex files.
   public int numberOfThreads = ThreadUtils.NOT_SPECIFIED;
@@ -162,14 +171,14 @@
   // to disable the check that the build makes sense for multi-dexing.
   public boolean enableMainDexListCheck = true;
 
-  public boolean useTreeShaking = true;
+  public boolean enableTreeShaking = true;
 
   public boolean printCfg = false;
   public String printCfgFile;
   public boolean ignoreMissingClasses = false;
   // EXPERIMENTAL flag to get behaviour as close to Proguard as possible.
   public boolean forceProguardCompatibility = false;
-  public boolean skipMinification = false;
+  public boolean enableMinification = true;
   public boolean disableAssertions = true;
   public boolean debugKeepRules = false;