Replace EmptyFieldSet by ConcreteMutableFieldSet in FieldValueAnalysis

Change-Id: Ic3a35f2a189a3043b688932631b51a7b307b79c2
Bug: 147769087
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/fieldvalueanalysis/FieldValueAnalysis.java b/src/main/java/com/android/tools/r8/ir/analysis/fieldvalueanalysis/FieldValueAnalysis.java
index 7b861b2..e9060a4 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/fieldvalueanalysis/FieldValueAnalysis.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/fieldvalueanalysis/FieldValueAnalysis.java
@@ -261,9 +261,14 @@
         // Record that this block reads all fields.
         result.put(block, UnknownFieldSet.getInstance());
         changed = true;
-      } else if (knownReadSet.size() != oldSize) {
-        assert knownReadSet.size() > oldSize;
-        changed = true;
+      } else {
+        if (knownReadSet != readSet) {
+          result.put(block, knownReadSet.asConcreteFieldSet());
+        }
+        if (knownReadSet.size() != oldSize) {
+          assert knownReadSet.size() > oldSize;
+          changed = true;
+        }
       }
 
       if (changed) {