commit | 20d94011b78682ee529554fad7782bb54315b7d7 | [log] [tgz] |
---|---|---|
author | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Jan 16 09:25:05 2020 +0100 |
committer | Christoffer Quist Adamsen <christofferqa@google.com> | Thu Jan 16 09:56:56 2020 +0000 |
tree | 5800bf9814147539bd95a3d3a8f713996d37a4bd | |
parent | 63e83c1c0a3991b5cc13be3747a773ed45f433a4 [diff] |
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) {