Cleanup value getters in field instructions

Change-Id: Ib8ff91c653972463b9b33d33d67597d22335571c
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/TypeChecker.java b/src/main/java/com/android/tools/r8/ir/analysis/TypeChecker.java
index 34ea885..1638902 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/TypeChecker.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/TypeChecker.java
@@ -18,7 +18,6 @@
 import com.android.tools.r8.ir.code.Return;
 import com.android.tools.r8.ir.code.StaticPut;
 import com.android.tools.r8.ir.code.Throw;
-import com.android.tools.r8.ir.code.Value;
 
 /**
  * Utility to determine if a given IR code object type checks.
@@ -96,11 +95,7 @@
 
   public boolean checkFieldPut(FieldInstruction instruction) {
     assert instruction.isFieldPut();
-    Value value =
-        instruction.isInstancePut()
-            ? instruction.asInstancePut().value()
-            : instruction.asStaticPut().inValue();
-    TypeLatticeElement valueType = value.getTypeLattice();
+    TypeLatticeElement valueType = instruction.value().getTypeLattice();
     TypeLatticeElement fieldType =
         TypeLatticeElement.fromDexType(
             instruction.getField().type, valueType.nullability(), appView);
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/sideeffect/ClassInitializerSideEffectAnalysis.java b/src/main/java/com/android/tools/r8/ir/analysis/sideeffect/ClassInitializerSideEffectAnalysis.java
index c4de637..a238f67 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/sideeffect/ClassInitializerSideEffectAnalysis.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/sideeffect/ClassInitializerSideEffectAnalysis.java
@@ -91,7 +91,7 @@
         DexEncodedField field = appView.appInfo().resolveField(staticPut.getField());
         if (field == null
             || field.field.holder != context
-            || staticPut.inValue().mayDependOnEnvironment(appView, code)
+            || staticPut.value().mayDependOnEnvironment(appView, code)
             || instruction.instructionInstanceCanThrow(appView, context).isThrowing()) {
           return ClassInitializerSideEffect.SIDE_EFFECTS_THAT_CANNOT_BE_POSTPONED;
         }
diff --git a/src/main/java/com/android/tools/r8/ir/code/FieldInstruction.java b/src/main/java/com/android/tools/r8/ir/code/FieldInstruction.java
index 0863b5e..4b1f622b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/FieldInstruction.java
+++ b/src/main/java/com/android/tools/r8/ir/code/FieldInstruction.java
@@ -28,7 +28,7 @@
     this.field = field;
   }
 
-  public abstract Value fieldValue();
+  public abstract Value value();
 
   public FieldMemberType getType() {
     return FieldMemberType.fromDexType(field.type);
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
index 78a9733..8859225 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstanceGet.java
@@ -58,7 +58,7 @@
   }
 
   @Override
-  public Value fieldValue() {
+  public Value value() {
     return outValue;
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
index 3ddecf8..dbef3e0 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstancePut.java
@@ -49,16 +49,12 @@
     return inValues.get(0);
   }
 
+  @Override
   public Value value() {
     return inValues.get(1);
   }
 
   @Override
-  public Value fieldValue() {
-    return value();
-  }
-
-  @Override
   public void buildDex(DexBuilder builder) {
     com.android.tools.r8.code.Instruction instruction;
     int valueRegister = builder.allocatedRegister(value(), getNumber());
diff --git a/src/main/java/com/android/tools/r8/ir/code/StaticGet.java b/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
index 2f5fa64..b4cc421 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StaticGet.java
@@ -46,7 +46,7 @@
   }
 
   @Override
-  public Value fieldValue() {
+  public Value value() {
     return outValue;
   }
 
diff --git a/src/main/java/com/android/tools/r8/ir/code/StaticPut.java b/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
index 076c0cd..b52e39d 100644
--- a/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
+++ b/src/main/java/com/android/tools/r8/ir/code/StaticPut.java
@@ -41,20 +41,16 @@
     return visitor.visit(this);
   }
 
-  public Value inValue() {
+  @Override
+  public Value value() {
     assert inValues.size() == 1;
     return inValues.get(0);
   }
 
   @Override
-  public Value fieldValue() {
-    return inValue();
-  }
-
-  @Override
   public void buildDex(DexBuilder builder) {
     com.android.tools.r8.code.Instruction instruction;
-    int src = builder.allocatedRegister(inValue(), getNumber());
+    int src = builder.allocatedRegister(value(), getNumber());
     DexField field = getField();
     switch (getType()) {
       case INT:
@@ -157,7 +153,7 @@
       // If the value being written by this instruction is an array, then make sure that the value
       // being written by the other instruction is the exact same value. Otherwise, the verifier
       // may incorrectly join the types of these arrays to Object[].
-      if (inValue().getTypeLattice().isArrayType() && inValue() != staticPut.inValue()) {
+      if (value().getTypeLattice().isArrayType() && value() != staticPut.value()) {
         return false;
       }
     }
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
index 2a19174..99cc6b4 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriter.java
@@ -341,7 +341,7 @@
             iterator.replaceCurrentInstruction(
                 new InvokeStatic(replacementMethod, current.outValue(), current.inValues()));
           } else if (actualField != field) {
-            StaticPut newStaticPut = new StaticPut(staticPut.inValue(), actualField);
+            StaticPut newStaticPut = new StaticPut(staticPut.value(), actualField);
             iterator.replaceCurrentInstruction(newStaticPut);
           }
         } else if (current.isCheckCast()) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java b/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
index 93019d5..8589552 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/ClassInitializerDefaultsOptimization.java
@@ -130,7 +130,7 @@
     for (StaticPut put : finalFieldPuts) {
       DexEncodedField field = appView.appInfo().resolveField(put.getField());
       DexType fieldType = field.field.type;
-      Value inValue = put.inValue();
+      Value inValue = put.value();
       if (fieldType == dexItemFactory.stringType) {
         fieldsWithStaticValues.put(field, getDexStringValue(inValue, method.method.holder));
       } else if (fieldType.isClassType() || fieldType.isArrayType()) {
@@ -176,7 +176,7 @@
         continue;
       }
       // Get a hold of the in-value.
-      Value inValue = instruction.asStaticPut().inValue();
+      Value inValue = instruction.asStaticPut().value();
 
       // Remove the static-put instruction.
       instructionIterator.removeOrReplaceByDebugLocalRead();
@@ -358,12 +358,12 @@
                 // instruction to read a different value.
                 continue;
               }
-              if (put.inValue().isDexItemBasedConstStringThatNeedsToComputeClassName()) {
+              if (put.value().isDexItemBasedConstStringThatNeedsToComputeClassName()) {
                 continue;
               }
-              if (put.inValue().isConstant()) {
+              if (put.value().isConstant()) {
                 if ((field.type.isClassType() || field.type.isArrayType())
-                    && put.inValue().isZero()) {
+                    && put.value().isZero()) {
                   finalFieldPut.put(put.getField(), put);
                   puts.add(put);
                 } else if (field.type.isPrimitiveType()
@@ -421,8 +421,8 @@
     if (put.getField().type != dexItemFactory.stringType) {
       return false;
     }
-    if (put.inValue().definition != null) {
-      return isClassNameConstantOf(clazz, put.inValue().definition);
+    if (put.value().definition != null) {
+      return isClassNameConstantOf(clazz, put.value().definition);
     }
     return false;
   }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
index ccbf3be..6941096 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/CodeRewriter.java
@@ -1444,9 +1444,9 @@
 
       if (insn.isStaticPut()) {
         StaticPut staticPut = insn.asStaticPut();
-        if (singletonField != null ||
-            createdSingletonInstance == null ||
-            staticPut.inValue() != createdSingletonInstance) {
+        if (singletonField != null
+            || createdSingletonInstance == null
+            || staticPut.value() != createdSingletonInstance) {
           return null;
         }
 
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/EnumOrdinalMapCollector.java b/src/main/java/com/android/tools/r8/ir/optimize/EnumOrdinalMapCollector.java
index 8bc736f..99c9195 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/EnumOrdinalMapCollector.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/EnumOrdinalMapCollector.java
@@ -66,7 +66,7 @@
       if (staticPut.getField().type != clazz.type) {
         continue;
       }
-      Instruction newInstance = staticPut.inValue().definition;
+      Instruction newInstance = staticPut.value().definition;
       if (newInstance == null || !newInstance.isNewInstance()) {
         continue;
       }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadElimination.java b/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadElimination.java
index 2b7ee0d..b50496e 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadElimination.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/RedundantFieldLoadElimination.java
@@ -238,8 +238,8 @@
 
   private void eliminateRedundantRead(
       InstructionListIterator it, FieldInstruction redundant, FieldInstruction active) {
-    redundant.outValue().replaceUsers(active.fieldValue());
+    redundant.outValue().replaceUsers(active.value());
     it.removeOrReplaceByDebugLocalRead();
-    active.fieldValue().uniquePhiUsers().forEach(Phi::removeTrivialPhi);
+    active.value().uniquePhiUsers().forEach(Phi::removeTrivialPhi);
   }
 }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
index cafc3bb..cf4d14b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/staticizer/StaticizingProcessor.java
@@ -519,7 +519,7 @@
         StaticPut staticPut = instruction.asStaticPut();
         DexField field = mapFieldIfMoved(staticPut.getField());
         if (field != staticPut.getField()) {
-          it.replaceCurrentInstruction(new StaticPut(staticPut.inValue(), field));
+          it.replaceCurrentInstruction(new StaticPut(staticPut.value(), field));
         }
         continue;
       }
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
index 68bfe5e..1ea8b3e 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/string/StringBuilderOptimizer.java
@@ -754,7 +754,7 @@
         return legitimate;
       }
       if (escapeRoute.isStaticPut()) {
-        legitimate = isUsingToStringAlias(escapeAnalysis, escapeRoute.asStaticPut().inValue());
+        legitimate = isUsingToStringAlias(escapeAnalysis, escapeRoute.asStaticPut().value());
         logEscapingRoute(legitimate);
         return legitimate;
       }
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 85ed54a..c3aa1cd 100644
--- a/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
+++ b/src/main/java/com/android/tools/r8/naming/IdentifierNameStringMarker.java
@@ -140,10 +140,7 @@
     if (!identifierNameStrings.containsKey(field)) {
       return iterator;
     }
-    Value in =
-        instruction.isStaticPut()
-            ? instruction.asStaticPut().inValue()
-            : instruction.asInstancePut().value();
+    Value in = instruction.value();
     if (!in.isConstString()) {
       warnUndeterminedIdentifierIfNecessary(field, method.method.holder, instruction, null);
       return iterator;