Rename NonNull instruction to Assume
Bug: 129860265
Change-Id: Ib9d8bbc01c38ff0f1de85bfb0d3a412ba2bad88f
diff --git a/src/main/java/com/android/tools/r8/ir/code/NonNull.java b/src/main/java/com/android/tools/r8/ir/code/Assume.java
similarity index 95%
rename from src/main/java/com/android/tools/r8/ir/code/NonNull.java
rename to src/main/java/com/android/tools/r8/ir/code/Assume.java
index 4074c11..f5d95bf 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NonNull.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Assume.java
@@ -14,12 +14,12 @@
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.InliningConstraints;
-public class NonNull extends Instruction {
+public class Assume extends Instruction {
private final static String ERROR_MESSAGE = "This fake IR should be removed after inlining.";
final Instruction origin;
- public NonNull(Value dest, Value src, Instruction origin) {
+ public Assume(Value dest, Value src, Instruction origin) {
super(dest, src);
assert !src.isNeverNull();
this.origin = origin;
@@ -48,7 +48,7 @@
}
@Override
- public NonNull asNonNull() {
+ public Assume asNonNull() {
return this;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DefaultInstructionVisitor.java b/src/main/java/com/android/tools/r8/ir/code/DefaultInstructionVisitor.java
index bcbae23..5ec29e4 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DefaultInstructionVisitor.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DefaultInstructionVisitor.java
@@ -260,7 +260,7 @@
}
@Override
- public T visit(NonNull instruction) {
+ public T visit(Assume instruction) {
return null;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Instruction.java b/src/main/java/com/android/tools/r8/ir/code/Instruction.java
index 85ccb4e..7bf9eed 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Instruction.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Instruction.java
@@ -836,7 +836,7 @@
return false;
}
- public NonNull asNonNull() {
+ public Assume asNonNull() {
return null;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InstructionVisitor.java b/src/main/java/com/android/tools/r8/ir/code/InstructionVisitor.java
index ec7ea00..d6160d7 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InstructionVisitor.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InstructionVisitor.java
@@ -104,7 +104,7 @@
T visit(NewInstance instruction);
- T visit(NonNull instruction);
+ T visit(Assume instruction);
T visit(Not instruction);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java b/src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java
index 511d3d0..38f7d27 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Devirtualizer.java
@@ -9,6 +9,7 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.analysis.type.TypeAnalysis;
import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
+import com.android.tools.r8.ir.code.Assume;
import com.android.tools.r8.ir.code.BasicBlock;
import com.android.tools.r8.ir.code.CheckCast;
import com.android.tools.r8.ir.code.DominatorTree;
@@ -17,7 +18,6 @@
import com.android.tools.r8.ir.code.InstructionListIterator;
import com.android.tools.r8.ir.code.InvokeInterface;
import com.android.tools.r8.ir.code.InvokeVirtual;
-import com.android.tools.r8.ir.code.NonNull;
import com.android.tools.r8.ir.code.Value;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -66,7 +66,7 @@
// ...
// non_null_rcv <- non-null rcv_c // <- Update the input rcv to the non-null, too.
if (current.isNonNull()) {
- NonNull nonNull = current.asNonNull();
+ Assume nonNull = current.asNonNull();
Instruction origin = nonNull.origin();
if (origin.isInvokeInterface()
&& !origin.asInvokeInterface().getReceiver().hasLocalInfo()
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
index ee6b4b8..94bf914 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/NonNullTracker.java
@@ -12,6 +12,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.ir.analysis.type.TypeAnalysis;
import com.android.tools.r8.ir.analysis.type.TypeLatticeElement;
+import com.android.tools.r8.ir.code.Assume;
import com.android.tools.r8.ir.code.BasicBlock;
import com.android.tools.r8.ir.code.DominatorTree;
import com.android.tools.r8.ir.code.IRCode;
@@ -20,7 +21,6 @@
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionIterator;
import com.android.tools.r8.ir.code.InstructionListIterator;
-import com.android.tools.r8.ir.code.NonNull;
import com.android.tools.r8.ir.code.Phi;
import com.android.tools.r8.ir.code.Value;
import com.android.tools.r8.ir.conversion.OptimizationFeedback;
@@ -225,7 +225,7 @@
typeLattice.asReferenceTypeLatticeElement().asNotNull(),
knownToBeNonNullValue.getLocalInfo());
affectedValues.addAll(knownToBeNonNullValue.affectedValues());
- NonNull nonNull = new NonNull(nonNullValue, knownToBeNonNullValue, theIf);
+ Assume nonNull = new Assume(nonNullValue, knownToBeNonNullValue, theIf);
InstructionListIterator targetIterator = target.listIterator();
nonNull.setPosition(targetIterator.next().getPosition());
targetIterator.previous();
@@ -318,7 +318,7 @@
typeLattice.asReferenceTypeLatticeElement().asNotNull(),
knownToBeNonNullValue.getLocalInfo());
affectedValues.addAll(knownToBeNonNullValue.affectedValues());
- NonNull nonNull = new NonNull(nonNullValue, knownToBeNonNullValue, current);
+ Assume nonNull = new Assume(nonNullValue, knownToBeNonNullValue, current);
nonNull.setPosition(current.getPosition());
if (blockWithNonNullInstruction != block) {
// If we split, add non-null IR on top of the new split block.
@@ -484,7 +484,7 @@
//
// rcv#foo
if (instruction.isNonNull()) {
- NonNull nonNull = instruction.asNonNull();
+ Assume nonNull = instruction.asNonNull();
Value src = nonNull.src();
Value dest = nonNull.dest();
affectedValues.addAll(dest.affectedValues());
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
index 8759603..74e7cc3 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/NullabilityTest.java
@@ -17,6 +17,7 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.code.Argument;
import com.android.tools.r8.ir.code.ArrayGet;
+import com.android.tools.r8.ir.code.Assume;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.InstanceGet;
import com.android.tools.r8.ir.code.Instruction;
@@ -24,7 +25,6 @@
import com.android.tools.r8.ir.code.InvokeMethodWithReceiver;
import com.android.tools.r8.ir.code.InvokeVirtual;
import com.android.tools.r8.ir.code.NewInstance;
-import com.android.tools.r8.ir.code.NonNull;
import com.android.tools.r8.ir.code.Value;
import com.android.tools.r8.ir.optimize.NonNullTracker;
import com.android.tools.r8.ir.optimize.NonNullTrackerTestBase;
@@ -133,7 +133,7 @@
Map<Class<? extends Instruction>, TypeLatticeElement> expectedLattices =
ImmutableMap.of(
InvokeVirtual.class, stringClassType(appInfo, maybeNull()),
- NonNull.class, stringClassType(appInfo, definitelyNotNull()),
+ Assume.class, stringClassType(appInfo, definitelyNotNull()),
NewInstance.class, fromDexType(assertionErrorType, definitelyNotNull(), appInfo));
forEachOutValue(
irCode, (v, l) -> verifyClassTypeLattice(expectedLattices, mainClass, v, l));
@@ -160,7 +160,7 @@
Map<Class<? extends Instruction>, TypeLatticeElement> expectedLattices =
ImmutableMap.of(
InvokeVirtual.class, stringClassType(appInfo, maybeNull()),
- NonNull.class, stringClassType(appInfo, definitelyNotNull()),
+ Assume.class, stringClassType(appInfo, definitelyNotNull()),
NewInstance.class, fromDexType(assertionErrorType, definitelyNotNull(), appInfo));
forEachOutValue(
irCode, (v, l) -> verifyClassTypeLattice(expectedLattices, mainClass, v, l));
@@ -277,7 +277,7 @@
Map<Class<? extends Instruction>, TypeLatticeElement> expectedLattices =
ImmutableMap.of(
Argument.class, fromDexType(testClass, maybeNull(), appInfo),
- NonNull.class, fromDexType(testClass, definitelyNotNull(), appInfo),
+ Assume.class, fromDexType(testClass, definitelyNotNull(), appInfo),
// instance may not be initialized.
InstanceGet.class,
fromDexType(appInfo.dexItemFactory().stringType, maybeNull(), appInfo),
@@ -313,7 +313,7 @@
Map<Class<? extends Instruction>, TypeLatticeElement> expectedLattices =
ImmutableMap.of(
Argument.class, fromDexType(testClass, maybeNull(), appInfo),
- NonNull.class, fromDexType(testClass, definitelyNotNull(), appInfo),
+ Assume.class, fromDexType(testClass, definitelyNotNull(), appInfo),
// instance may not be initialized.
InstanceGet.class,
fromDexType(appInfo.dexItemFactory().stringType, maybeNull(), appInfo),