Refactor code to use Instruction.getOutType()
Change-Id: Ib3915b29f72c726b7a8767f63a8b3495511fd589
diff --git a/src/main/java/com/android/tools/r8/ir/code/Assume.java b/src/main/java/com/android/tools/r8/ir/code/Assume.java
index 6611bc7..9fb9f27 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Assume.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Assume.java
@@ -279,7 +279,7 @@
assert super.verifyTypes(appView);
TypeElement inType = src().getType();
- TypeElement outType = outValue().getType();
+ TypeElement outType = getOutType();
if (isAssumeNone() || isAssumeDynamicType()) {
assert inType.isReferenceType() : inType;
assert outType.equals(inType)
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
index 37d9b9e..e36adab 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlock.java
@@ -1750,7 +1750,7 @@
if (hasMoveException) {
// Remove the move-exception instruction.
move = entry().asMoveException();
- exceptionTypeLattice = move.outValue().getType();
+ exceptionTypeLattice = move.getOutType();
exceptionType = move.getExceptionType();
assert move.getDebugValues().isEmpty();
getInstructions().remove(0);
diff --git a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
index 65a8acc..1537f85 100644
--- a/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
+++ b/src/main/java/com/android/tools/r8/ir/code/BasicBlockInstructionListIterator.java
@@ -228,7 +228,7 @@
throw new IllegalStateException();
}
- assert !current.hasOutValue() || current.outValue().getType().isInt();
+ assert !current.hasOutValue() || current.getOutType().isInt();
// Replace the instruction by const-number.
ConstNumber constNumber = code.createIntConstant(value, current.getLocalInfo());
@@ -250,7 +250,7 @@
// Replace the instruction by static-get.
TypeElement newType = TypeElement.fromDexType(field.type, maybeNull(), appView);
- TypeElement oldType = current.hasOutValue() ? current.outValue().getType() : null;
+ TypeElement oldType = current.getOutType();
Value value = code.createValue(newType, current.getLocalInfo());
StaticGet staticGet = new StaticGet(value, field);
for (Value inValue : current.inValues()) {
diff --git a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
index 2d7e409..da952bd 100644
--- a/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
+++ b/src/main/java/com/android/tools/r8/ir/code/CheckCast.java
@@ -171,7 +171,7 @@
assert inType.isPreciseType();
- TypeElement outType = outValue().getType();
+ TypeElement outType = getOutType();
TypeElement castType = TypeElement.fromDexType(getType(), inType.nullability(), appView);
if (inType.lessThanOrEqual(castType, appView)) {
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
index a97ce72..bb5788b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstClass.java
@@ -44,10 +44,7 @@
public static ConstClass copyOf(IRCode code, ConstClass original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java b/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
index 996bf38..a390b3f 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstMethodHandle.java
@@ -38,10 +38,7 @@
public static ConstMethodHandle copyOf(IRCode code, ConstMethodHandle original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java b/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
index 6cd4d0b..774475d 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstMethodType.java
@@ -38,10 +38,7 @@
public static ConstMethodType copyOf(IRCode code, ConstMethodType original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
index 2683b66..06aef0a 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstNumber.java
@@ -55,10 +55,7 @@
public static ConstNumber copyOf(IRCode code, ConstNumber original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
@@ -251,7 +248,7 @@
@Override
public String toString() {
if (outValue != null) {
- return super.toString() + " " + value + " (" + outValue().getType() + ")";
+ return super.toString() + " " + value + " (" + getOutType() + ")";
} else {
return super.toString() + " " + value + " (dead)";
}
@@ -316,13 +313,13 @@
@Override
public TypeElement evaluate(AppView<?> appView) {
- return outValue().getType();
+ return getOutType();
}
@Override
public boolean verifyTypes(AppView<?> appView) {
assert super.verifyTypes(appView);
- assert !isZero() || outValue().getType().isPrimitiveType() || outValue().getType().isNullType();
+ assert !isZero() || getOutType().isPrimitiveType() || getOutType().isNullType();
return true;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/ConstString.java b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
index c98d8b7..a90a67e 100644
--- a/src/main/java/com/android/tools/r8/ir/code/ConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/ConstString.java
@@ -42,10 +42,7 @@
public static ConstString copyOf(IRCode code, ConstString original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DebugLocalWrite.java b/src/main/java/com/android/tools/r8/ir/code/DebugLocalWrite.java
index 5884660..f8a36db 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DebugLocalWrite.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DebugLocalWrite.java
@@ -79,7 +79,7 @@
@Override
public boolean verifyTypes(AppView<?> appView) {
super.verifyTypes(appView);
- assert src().getType().lessThanOrEqual(outValue().getType(), appView);
+ assert src().getType().lessThanOrEqual(getOutType(), appView);
return true;
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
index 70ebd80..bc29749 100644
--- a/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
+++ b/src/main/java/com/android/tools/r8/ir/code/DexItemBasedConstString.java
@@ -48,10 +48,7 @@
public static DexItemBasedConstString copyOf(IRCode code, DexItemBasedConstString original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/If.java b/src/main/java/com/android/tools/r8/ir/code/If.java
index da0592d..42068de 100644
--- a/src/main/java/com/android/tools/r8/ir/code/If.java
+++ b/src/main/java/com/android/tools/r8/ir/code/If.java
@@ -199,14 +199,14 @@
public BasicBlock targetFromCondition(ConstNumber value) {
assert isZeroTest();
- assert verifyTypeCompatible(value.outValue().getType(), type);
+ assert verifyTypeCompatible(value.getOutType(), type);
return targetFromCondition(Long.signum(value.getRawValue()));
}
public BasicBlock targetFromCondition(ConstNumber left, ConstNumber right) {
assert !isZeroTest();
assert left.outType() == right.outType();
- assert verifyTypeCompatible(left.outValue().getType(), type);
+ assert verifyTypeCompatible(left.getOutType(), type);
return targetFromCondition(Long.signum(left.getRawValue() - right.getRawValue()));
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Move.java b/src/main/java/com/android/tools/r8/ir/code/Move.java
index adcc848..24e831c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Move.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Move.java
@@ -73,7 +73,7 @@
@Override
public String toString() {
- return super.toString() + " (" + outValue().getType() + ")";
+ return super.toString() + " (" + getOutType() + ")";
}
@Override
@@ -128,7 +128,7 @@
super.verifyTypes(appView);
// DebugLocalWrite defines it's own verification of types but should be allowed to call super.
if (!this.isDebugLocalWrite()) {
- assert src().getType().equals(outValue().getType());
+ assert src().getType().equals(getOutType());
}
return true;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/NewInstance.java b/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
index b59a2c2..1090554 100644
--- a/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
+++ b/src/main/java/com/android/tools/r8/ir/code/NewInstance.java
@@ -226,7 +226,7 @@
@Override
public boolean verifyTypes(AppView<?> appView) {
- TypeElement type = outValue().getType();
+ TypeElement type = getOutType();
assert type.isClassType();
assert type.asClassType().getClassType() == clazz || appView.options().testing.allowTypeErrors;
assert type.isDefinitelyNotNull();
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 2b705fa..84a86f2 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
@@ -38,10 +38,7 @@
public static StaticGet copyOf(IRCode code, StaticGet original) {
Value newValue =
- new Value(
- code.valueNumberGenerator.next(),
- original.outValue().getType(),
- original.getLocalInfo());
+ new Value(code.valueNumberGenerator.next(), original.getOutType(), original.getLocalInfo());
return copyOf(newValue, original);
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Value.java b/src/main/java/com/android/tools/r8/ir/code/Value.java
index e84f64a..57c923c 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Value.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Value.java
@@ -826,7 +826,7 @@
builder.append("(");
if (isConstant && definition.asConstNumber().outValue != null) {
ConstNumber constNumber = definition.asConstNumber();
- if (constNumber.outValue().getType().isSinglePrimitive()) {
+ if (constNumber.getOutType().isSinglePrimitive()) {
builder.append((int) constNumber.getRawValue());
} else {
builder.append(constNumber.getRawValue());
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
index bbcd3c8..74f24c8 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfBuilder.java
@@ -386,7 +386,7 @@
|| constNumber == null
|| add == null
|| store == null
- || constNumber.outValue().getType() != TypeElement.getInt()) {
+ || constNumber.getOutType() != TypeElement.getInt()) {
it.next();
continue;
}
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 a4ca85a..6e47281 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
@@ -1404,7 +1404,7 @@
@Override
public void addInstructions(DexBuilder builder, List<Instruction> instructions) {
Move move = getMove();
- TypeElement moveType = move.outValue().getType();
+ TypeElement moveType = move.getOutType();
int src = srcRegister(builder);
int dest = destRegister(builder);
Instruction instruction;
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
index d5f28d4..35250d1 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/IRBuilder.java
@@ -2332,7 +2332,7 @@
private void addInstruction(Instruction ir, Position position) {
assert verifyOutValueType(ir);
- hasImpreciseValues |= ir.outValue() != null && !ir.outValue().getType().isPreciseType();
+ hasImpreciseValues |= ir.outValue() != null && !ir.getOutType().isPreciseType();
ir.setPosition(position);
attachLocalValues(ir);
currentBlock.add(ir, metadata);
@@ -2363,13 +2363,11 @@
}
private boolean verifyOutValueType(Instruction ir) {
- assert ir.outValue() == null
- || ir.isArrayGet()
- || ir.evaluate(appView) == ir.outValue().getType();
+ assert ir.outValue() == null || ir.isArrayGet() || ir.evaluate(appView) == ir.getOutType();
assert ir.outValue() == null
|| !ir.isArrayGet()
- || ir.evaluate(appView) == ir.outValue().getType()
- || (ir.outValue().getType().isBottom() && ir.evaluate(appView).isReferenceType());
+ || ir.evaluate(appView) == ir.getOutType()
+ || (ir.getOutType().isBottom() && ir.evaluate(appView).isReferenceType());
return true;
}
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 bb541cf..9346936 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
@@ -86,7 +86,7 @@
private Value makeOutValue(Instruction insn, IRCode code) {
if (insn.outValue() != null) {
- TypeElement oldType = insn.outValue().getType();
+ TypeElement oldType = insn.getOutType();
TypeElement newType =
oldType.fixupClassTypeReferences(appView.graphLense()::lookupType, appView);
return code.createValue(newType, insn.getLocalInfo());
@@ -123,7 +123,7 @@
InvokeCustom newInvokeCustom =
new InvokeCustom(newCallSite, newOutValue, invokeCustom.inValues());
iterator.replaceCurrentInstruction(newInvokeCustom);
- if (newOutValue != null && newOutValue.getType() != invokeCustom.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != invokeCustom.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
}
@@ -134,7 +134,7 @@
if (newHandle != handle) {
Value newOutValue = makeOutValue(current, code);
iterator.replaceCurrentInstruction(new ConstMethodHandle(newOutValue, newHandle));
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
}
@@ -248,7 +248,7 @@
Invoke newInvoke =
Invoke.create(actualInvokeType, actualTarget, null, newOutValue, newInValues);
iterator.replaceCurrentInstruction(newInvoke);
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
@@ -284,14 +284,14 @@
Value newOutValue = makeOutValue(current, code);
iterator.replaceCurrentInstruction(
new InvokeStatic(replacementMethod, newOutValue, current.inValues()));
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(current.outValue().uniquePhiUsers());
}
} else if (actualField != field) {
Value newOutValue = makeOutValue(instanceGet, code);
iterator.replaceCurrentInstruction(
new InstanceGet(newOutValue, instanceGet.object(), actualField));
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
}
@@ -323,13 +323,13 @@
Value newOutValue = makeOutValue(current, code);
iterator.replaceCurrentInstruction(
new InvokeStatic(replacementMethod, newOutValue, current.inValues()));
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
} else if (actualField != field) {
Value newOutValue = makeOutValue(staticGet, code);
iterator.replaceCurrentInstruction(new StaticGet(newOutValue, actualField));
- if (newOutValue != null && newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue != null && newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
}
}
@@ -392,10 +392,9 @@
.replaceInstructionIfTypeChanged(type, NewInstance::new);
} else if (current.outValue() != null) {
// For all other instructions, substitute any changed type.
- TypeElement typeLattice = current.outValue().getType();
- TypeElement substituted =
- typeLattice.fixupClassTypeReferences(graphLense::lookupType, appView);
- if (substituted != typeLattice) {
+ TypeElement type = current.getOutType();
+ TypeElement substituted = type.fixupClassTypeReferences(graphLense::lookupType, appView);
+ if (substituted != type) {
current.outValue().setType(substituted);
affectedPhis.addAll(current.outValue().uniquePhiUsers());
}
@@ -685,7 +684,7 @@
Instruction newInstruction = constructor.apply(newType, newOutValue);
iterator.replaceCurrentInstruction(newInstruction);
if (newOutValue != null) {
- if (newOutValue.getType() != current.outValue().getType()) {
+ if (newOutValue.getType() != current.getOutType()) {
affectedPhis.addAll(newOutValue.uniquePhiUsers());
} else {
assert current.hasInvariantOutType();
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
index d7edc8a..58f7155 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/TypeConstraintResolver.java
@@ -114,7 +114,7 @@
}
}
for (Instruction instruction : block.getInstructions()) {
- if (instruction.outValue() != null && !instruction.outValue().getType().isPreciseType()) {
+ if (instruction.outValue() != null && !instruction.getOutType().isPreciseType()) {
impreciseValues.add(instruction.outValue());
}
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 c390d5a..fee1f02 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
@@ -2050,8 +2050,7 @@
for (ConstInstruction value : values) {
stringValues.add(value.outValue());
}
- Value invokeValue =
- code.createValue(newArray.outValue().getType(), newArray.getLocalInfo());
+ Value invokeValue = code.createValue(newArray.getOutType(), newArray.getLocalInfo());
InvokeNewArray invoke =
new InvokeNewArray(dexItemFactory.stringArrayType, invokeValue, stringValues);
for (Value value : newArray.inValues()) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizer.java b/src/main/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizer.java
index f59a458..76ca615 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizer.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/IdempotentFunctionCallCanonicalizer.java
@@ -207,7 +207,7 @@
}
}
Value canonicalizedValue =
- code.createValue(invoke.outValue().getType(), invoke.outValue().getLocalInfo());
+ code.createValue(invoke.getOutType(), invoke.outValue().getLocalInfo());
Invoke canonicalizedInvoke =
Invoke.create(
invoke.getType(),
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
index 4bf7a6d..bf7aa9b 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/MemberValuePropagation.java
@@ -4,6 +4,7 @@
package com.android.tools.r8.ir.optimize;
import static com.android.tools.r8.graph.DexProgramClass.asProgramClassOrNull;
+import static com.android.tools.r8.ir.analysis.type.Nullability.maybeNull;
import com.android.tools.r8.graph.AppView;
import com.android.tools.r8.graph.DexDefinition;
@@ -14,7 +15,6 @@
import com.android.tools.r8.graph.DexProgramClass;
import com.android.tools.r8.graph.DexReference;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.analysis.type.Nullability;
import com.android.tools.r8.ir.analysis.type.TypeAnalysis;
import com.android.tools.r8.ir.analysis.type.TypeElement;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
@@ -139,10 +139,9 @@
.createMaterializingInstruction(appView, code, instruction);
}
- TypeElement typeLattice = instruction.outValue().getType();
if (returnValueRule.isField()) {
DexField field = returnValueRule.getField();
- assert typeLattice == TypeElement.fromDexType(field.type, Nullability.maybeNull(), appView);
+ assert instruction.getOutType() == TypeElement.fromDexType(field.type, maybeNull(), appView);
DexEncodedField staticField = appView.appInfo().lookupStaticTarget(field.holder, field);
if (staticField == null) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
index 0d065ff..6793ec6 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingRewriter.java
@@ -164,11 +164,10 @@
if (instruction.outValue() == null) {
return true;
}
- TypeElement typeLattice = instruction.outValue().getType();
- assert !typeLattice.isClassType()
- || !enumsToUnbox.containsEnum(typeLattice.asClassType().getClassType());
- if (typeLattice.isArrayType()) {
- TypeElement arrayBaseTypeLattice = typeLattice.asArrayType().getBaseType();
+ TypeElement type = instruction.getOutType();
+ assert !type.isClassType() || !enumsToUnbox.containsEnum(type.asClassType().getClassType());
+ if (type.isArrayType()) {
+ TypeElement arrayBaseTypeLattice = type.asArrayType().getBaseType();
assert !arrayBaseTypeLattice.isClassType()
|| !enumsToUnbox.containsEnum(arrayBaseTypeLattice.asClassType().getClassType());
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/peepholes/MoveLoadUpPeephole.java b/src/main/java/com/android/tools/r8/ir/optimize/peepholes/MoveLoadUpPeephole.java
index 127b144..3b93c50 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/peepholes/MoveLoadUpPeephole.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/peepholes/MoveLoadUpPeephole.java
@@ -113,7 +113,7 @@
Instruction current = it.next();
if (position != current.getPosition()
|| !current.isConstNumber()
- || current.outValue().getType() != TypeElement.getInt()
+ || current.getOutType() != TypeElement.getInt()
|| current.asConstNumber().getIntValue() < -128
|| current.asConstNumber().getIntValue() > 127
|| !it.hasNext()) {
diff --git a/src/main/java/com/android/tools/r8/ir/regalloc/RegisterMoveScheduler.java b/src/main/java/com/android/tools/r8/ir/regalloc/RegisterMoveScheduler.java
index 1cb6482..f7e377d 100644
--- a/src/main/java/com/android/tools/r8/ir/regalloc/RegisterMoveScheduler.java
+++ b/src/main/java/com/android/tools/r8/ir/regalloc/RegisterMoveScheduler.java
@@ -139,14 +139,14 @@
if (move.definition.isArgument()) {
Argument argument = move.definition.asArgument();
int argumentRegister = argument.outValue().getLiveIntervals().getRegister();
- Value to = new FixedRegisterValue(argument.outValue().getType(), move.dst);
- Value from = new FixedRegisterValue(argument.outValue().getType(), argumentRegister);
+ Value to = new FixedRegisterValue(argument.getOutType(), move.dst);
+ Value from = new FixedRegisterValue(argument.getOutType(), argumentRegister);
instruction = new Move(to, from);
} else {
assert move.definition.isOutConstant();
ConstInstruction definition = move.definition.getOutConstantConstInstruction();
if (definition.isConstNumber()) {
- Value to = new FixedRegisterValue(move.definition.outValue().getType(), move.dst);
+ Value to = new FixedRegisterValue(move.definition.getOutType(), move.dst);
instruction = new ConstNumber(to, definition.asConstNumber().getRawValue());
} else {
throw new Unreachable("Unexpected definition");
diff --git a/src/test/java/com/android/tools/r8/ir/LinearFlowIteratorTest.java b/src/test/java/com/android/tools/r8/ir/LinearFlowIteratorTest.java
index 0d31dca..f191b3b 100644
--- a/src/test/java/com/android/tools/r8/ir/LinearFlowIteratorTest.java
+++ b/src/test/java/com/android/tools/r8/ir/LinearFlowIteratorTest.java
@@ -153,7 +153,7 @@
IRCode code = simpleCode();
InstructionListIterator it = new LinearFlowInstructionListIterator(code, code.blocks.get(1));
Instruction current = it.previous();
- assertTrue(current.isConstNumber() && current.outValue().getType().isReferenceType());
+ assertTrue(current.isConstNumber() && current.getOutType().isReferenceType());
it.next();
current = it.next();
assertTrue(current.isArrayGet());
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/ArrayTypeTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/ArrayTypeTest.java
index a644df9..bdeda3c 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/ArrayTypeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/ArrayTypeTest.java
@@ -104,7 +104,7 @@
code,
instruction ->
instruction.isConstNumber() && instruction.asConstNumber().getRawValue() != 0);
- assertEquals(getFloat(), constNumberInstruction.outValue().getType());
+ assertEquals(getFloat(), constNumberInstruction.getOutType());
}
};
}
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/ConstrainedPrimitiveTypeTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/ConstrainedPrimitiveTypeTest.java
index e3b40cb..e421309 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/ConstrainedPrimitiveTypeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/ConstrainedPrimitiveTypeTest.java
@@ -98,7 +98,7 @@
for (Instruction instruction : code.instructions()) {
if (instruction.isConstNumber()) {
ConstNumber constNumberInstruction = instruction.asConstNumber();
- assertEquals(expectedType, constNumberInstruction.outValue().getType());
+ assertEquals(expectedType, constNumberInstruction.getOutType());
}
}
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/TypeConstraintOnTrivialPhiTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/TypeConstraintOnTrivialPhiTest.java
index 0f40b4b..9fb2f9b 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/TypeConstraintOnTrivialPhiTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/TypeConstraintOnTrivialPhiTest.java
@@ -111,7 +111,7 @@
private static Consumer<IRCode> testInspector(TypeElement expectedType) {
return code -> {
ConstNumber constNumberInstruction = getMatchingInstruction(code, Instruction::isConstNumber);
- assertEquals(expectedType, constNumberInstruction.outValue().getType());
+ assertEquals(expectedType, constNumberInstruction.getOutType());
};
}
}
diff --git a/src/test/java/com/android/tools/r8/ir/analysis/type/UnconstrainedPrimitiveTypeTest.java b/src/test/java/com/android/tools/r8/ir/analysis/type/UnconstrainedPrimitiveTypeTest.java
index f6ad83a..961827a 100644
--- a/src/test/java/com/android/tools/r8/ir/analysis/type/UnconstrainedPrimitiveTypeTest.java
+++ b/src/test/java/com/android/tools/r8/ir/analysis/type/UnconstrainedPrimitiveTypeTest.java
@@ -116,7 +116,7 @@
for (Instruction instruction : code.instructions()) {
if (instruction.isConstNumber()) {
ConstNumber constNumberInstruction = instruction.asConstNumber();
- assertEquals(expectedType, constNumberInstruction.outValue().getType());
+ assertEquals(expectedType, constNumberInstruction.getOutType());
}
}