Rename flags on IRCode to indicate that they are not necessarily complete

Change-Id: I052553c900cbe53b3f8bf7fa35932d6440e2f102
diff --git a/src/main/java/com/android/tools/r8/ir/code/IRCode.java b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
index 5a3a10a..98bb2e7 100644
--- a/src/main/java/com/android/tools/r8/ir/code/IRCode.java
+++ b/src/main/java/com/android/tools/r8/ir/code/IRCode.java
@@ -106,10 +106,10 @@
   private boolean allThrowingInstructionsHavePositions;
 
   // TODO(b/122257895): Update OptimizationInfo to capture instruction kinds of interest.
-  public final boolean hasDebugPositions;
-  public boolean hasConstString;
-  public boolean hasStringSwitch;
-  public final boolean hasMonitorInstruction;
+  public final boolean mayHaveDebugPositions;
+  public boolean mayHaveConstString;
+  public boolean mayHaveStringSwitch;
+  public final boolean mayHaveMonitorInstruction;
 
   private final InternalOptions options;
 
@@ -120,27 +120,27 @@
       DexEncodedMethod method,
       LinkedList<BasicBlock> blocks,
       ValueNumberGenerator valueNumberGenerator,
-      boolean hasDebugPositions,
-      boolean hasMonitorInstruction,
-      boolean hasConstString,
+      boolean mayHaveDebugPositions,
+      boolean mayHaveMonitorInstruction,
+      boolean mayHaveConstString,
       Origin origin) {
     assert options != null;
     this.options = options;
     this.method = method;
     this.blocks = blocks;
     this.valueNumberGenerator = valueNumberGenerator;
-    this.hasDebugPositions = hasDebugPositions;
-    this.hasMonitorInstruction = hasMonitorInstruction;
-    this.hasConstString = hasConstString;
+    this.mayHaveDebugPositions = mayHaveDebugPositions;
+    this.mayHaveMonitorInstruction = mayHaveMonitorInstruction;
+    this.mayHaveConstString = mayHaveConstString;
     this.origin = origin;
     // TODO(zerny): Remove or update this property now that all instructions have positions.
     allThrowingInstructionsHavePositions = computeAllThrowingInstructionsHavePositions();
   }
 
   public void mergeMetadataFromInlinee(IRCode inlinee) {
-    assert !inlinee.hasMonitorInstruction;
-    this.hasConstString |= inlinee.hasConstString;
-    this.hasStringSwitch |= inlinee.hasStringSwitch;
+    assert !inlinee.mayHaveMonitorInstruction;
+    this.mayHaveConstString |= inlinee.mayHaveConstString;
+    this.mayHaveStringSwitch |= inlinee.mayHaveStringSwitch;
   }
 
   public BasicBlock entryBlock() {
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
index 5763523..77b3058 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/DexBuilder.java
@@ -334,7 +334,7 @@
   // After this pass all remaining debug positions mark places where we must ensure a materializing
   // instruction, eg, for two successive lines without intermediate instructions.
   public static void removeRedundantDebugPositions(IRCode code) {
-    if (!code.hasDebugPositions) {
+    if (!code.mayHaveDebugPositions) {
       return;
     }
     // Current position known to have a materializing instruction associated with it.
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
index dde13fa..e208ec3 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
@@ -113,7 +113,7 @@
         }
       }
       if (changed) {
-        code.hasStringSwitch = true;
+        code.mayHaveStringSwitch = true;
         code.removeAllTrivialPhis();
         code.removeUnreachableBlocks();
       }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
index 4cb14cc..9efba14 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
@@ -47,7 +47,7 @@
   }
 
   void run(DexEncodedMethod method, IRCode code) {
-    if (!code.hasStringSwitch) {
+    if (!code.mayHaveStringSwitch) {
       assert Streams.stream(code.instructions()).noneMatch(Instruction::isStringSwitch);
       return;
     }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java b/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
index acfce6e..0f6bddd 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ConstantCanonicalizer.java
@@ -120,7 +120,7 @@
         // That could lead to unbalanced locking and could lead to situations where OOM exceptions
         // could leave a synchronized method without unlocking the monitor.
         if ((current.isConstString() || current.isDexItemBasedConstString())
-            && code.hasMonitorInstruction) {
+            && code.mayHaveMonitorInstruction) {
           continue;
         }
         // Constants with local info must not be canonicalized and must be filtered.
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
index de33a67..eac9284 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringOptimizer.java
@@ -63,7 +63,7 @@
   // String String#substring(int)
   // String String#substring(int, int)
   public void computeTrivialOperationsOnConstString(IRCode code) {
-    if (!code.hasConstString) {
+    if (!code.mayHaveConstString) {
       return;
     }
     InstructionIterator it = code.instructionIterator();
diff --git a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
index c3aa1cd..4ce71a9 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
@@ -92,7 +92,7 @@
 
   public void decoupleIdentifierNameStringsInBlocks(
       DexEncodedMethod method, IRCode code, Set<BasicBlock> blocks) {
-    if (!code.hasConstString) {
+    if (!code.mayHaveConstString) {
       return;
     }
     ListIterator<BasicBlock> blockIterator = code.listIterator();