Refactor various Type enums to qualified top-level enums.
This refactoring avoids the often unclear Type and the warning that
errorprone reports for unqualified usages.
Bug: b/270534077
Change-Id: Iaeb31e011972c834b72ca09ac08ef7cb69acabb4
diff --git a/src/main/java/com/android/tools/r8/cf/CfCodePrinter.java b/src/main/java/com/android/tools/r8/cf/CfCodePrinter.java
index f00f611..e3eb9da 100644
--- a/src/main/java/com/android/tools/r8/cf/CfCodePrinter.java
+++ b/src/main/java/com/android/tools/r8/cf/CfCodePrinter.java
@@ -60,9 +60,9 @@
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
-import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.utils.StringUtils;
@@ -267,7 +267,7 @@
return irType("MemberType") + "." + type.name();
}
- private String ifTypeKind(Type kind) {
+ private String ifTypeKind(IfType kind) {
return irType("If") + ".Type." + kind.name();
}
@@ -360,7 +360,7 @@
printNewInstruction(name, valueType(type), "" + index);
}
- private void printNewJumpInstruction(String name, Type kind, ValueType type, CfLabel target) {
+ private void printNewJumpInstruction(String name, IfType kind, ValueType type, CfLabel target) {
printNewInstruction(name, ifTypeKind(kind), valueType(type), labelName(target));
}
@@ -417,7 +417,7 @@
public void print(CfMonitor monitor) {
printNewInstruction(
"CfMonitor",
- monitor.getType() == Monitor.Type.ENTER
+ monitor.getType() == MonitorType.ENTER
? monitorType() + ".Type.ENTER"
: monitorType() + ".Type.EXIT");
}
diff --git a/src/main/java/com/android/tools/r8/cf/CfPrinter.java b/src/main/java/com/android/tools/r8/cf/CfPrinter.java
index 65572c8..5bab5e9 100644
--- a/src/main/java/com/android/tools/r8/cf/CfPrinter.java
+++ b/src/main/java/com/android/tools/r8/cf/CfPrinter.java
@@ -69,9 +69,9 @@
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.DexValue;
import com.android.tools.r8.ir.analysis.type.TypeElement;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
-import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.ValueType;
@@ -361,7 +361,7 @@
}
public void print(CfMonitor monitor) {
- print(monitor.getType() == Monitor.Type.ENTER ? "monitorenter" : "monitorexit");
+ print(monitor.getType() == MonitorType.ENTER ? "monitorenter" : "monitorexit");
}
public void print(CfArithmeticBinop arithmeticBinop) {
@@ -596,14 +596,14 @@
builder.append("goto ").append(getLabel(jump.getTarget()));
}
- private String ifPostfix(If.Type kind) {
+ private String ifPostfix(IfType kind) {
return kind.toString().toLowerCase();
}
public void print(CfIf conditional) {
indent();
if (conditional.getType().isObject()) {
- builder.append("if").append(conditional.getKind() == If.Type.EQ ? "null" : "nonnull");
+ builder.append("if").append(conditional.getKind() == IfType.EQ ? "null" : "nonnull");
} else {
builder.append("if").append(ifPostfix(conditional.getKind()));
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfConditionalJumpInstruction.java b/src/main/java/com/android/tools/r8/cf/code/CfConditionalJumpInstruction.java
index 38dd4f3..def3dd4 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfConditionalJumpInstruction.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfConditionalJumpInstruction.java
@@ -6,19 +6,18 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.InliningConstraints;
public abstract class CfConditionalJumpInstruction extends CfJumpInstruction {
- final If.Type kind;
+ final IfType kind;
final ValueType type;
final CfLabel target;
- CfConditionalJumpInstruction(If.Type kind, ValueType type, CfLabel target) {
+ CfConditionalJumpInstruction(IfType kind, ValueType type, CfLabel target) {
this.kind = kind;
this.type = type;
this.target = target;
@@ -45,7 +44,7 @@
return true;
}
- public final Type getKind() {
+ public final IfType getKind() {
return kind;
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfIf.java b/src/main/java/com/android/tools/r8/cf/code/CfIf.java
index ffb1329..a12fd3ed 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfIf.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfIf.java
@@ -11,7 +11,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.InitClassLens;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.conversion.CfSourceCode;
import com.android.tools.r8.ir.conversion.CfState;
@@ -29,7 +29,7 @@
public class CfIf extends CfConditionalJumpInstruction {
- public CfIf(If.Type kind, ValueType type, CfLabel target) {
+ public CfIf(IfType kind, ValueType type, CfLabel target) {
super(kind, type, target);
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfIfCmp.java b/src/main/java/com/android/tools/r8/cf/code/CfIfCmp.java
index 883ee0e..510975f 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfIfCmp.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfIfCmp.java
@@ -11,7 +11,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.InitClassLens;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.conversion.CfSourceCode;
import com.android.tools.r8.ir.conversion.CfState;
@@ -29,7 +29,7 @@
public class CfIfCmp extends CfConditionalJumpInstruction {
- public CfIfCmp(If.Type kind, ValueType type, CfLabel target) {
+ public CfIfCmp(IfType kind, ValueType type, CfLabel target) {
super(kind, type, target);
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java b/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
index c4e0493..d18bcc7 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfInvoke.java
@@ -21,8 +21,7 @@
import com.android.tools.r8.graph.InitClassLens;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.conversion.CfSourceCode;
import com.android.tools.r8.ir.conversion.CfState;
@@ -111,8 +110,8 @@
NamingLens namingLens,
LensCodeRewriterUtils rewriter,
MethodVisitor visitor) {
- Invoke.Type invokeType = Invoke.Type.fromCfOpcode(opcode, method, context, appView);
- if (invokeType == Type.POLYMORPHIC) {
+ InvokeType invokeType = InvokeType.fromCfOpcode(opcode, method, context, appView);
+ if (invokeType == InvokeType.POLYMORPHIC) {
assert dexItemFactory.polymorphicMethods.isPolymorphicInvoke(method);
// The method is one of java.lang.MethodHandle.invoke/invokeExact.
// Only the method signature (getProto()) is to be type rewritten.
@@ -126,7 +125,7 @@
} else {
MethodLookupResult lookup =
graphLens.lookupMethod(method, context.getReference(), invokeType);
- Invoke.Type rewrittenType = lookup.getType();
+ InvokeType rewrittenType = lookup.getType();
DexMethod rewrittenMethod = lookup.getReference();
String owner = namingLens.lookupInternalName(rewrittenMethod.holder);
String name = namingLens.lookupName(rewrittenMethod).toString();
@@ -206,28 +205,28 @@
@Override
public void buildIR(IRBuilder builder, CfState state, CfSourceCode code) {
- Invoke.Type type;
+ InvokeType type;
DexMethod canonicalMethod;
DexProto callSiteProto = null;
switch (opcode) {
case Opcodes.INVOKEINTERFACE:
{
canonicalMethod = method;
- type = Type.INTERFACE;
+ type = InvokeType.INTERFACE;
break;
}
case Opcodes.INVOKEVIRTUAL:
{
canonicalMethod = builder.dexItemFactory().polymorphicMethods.canonicalize(method);
if (canonicalMethod == null) {
- type = Type.VIRTUAL;
+ type = InvokeType.VIRTUAL;
canonicalMethod = method;
} else {
if (builder.appView.options().shouldDesugarVarHandle()) {
- type = Type.VIRTUAL;
+ type = InvokeType.VIRTUAL;
canonicalMethod = method;
} else {
- type = Type.POLYMORPHIC;
+ type = InvokeType.POLYMORPHIC;
callSiteProto = method.proto;
}
}
@@ -249,13 +248,13 @@
AppView<?> appView = builder.appView;
ProgramMethod context = builder.getProgramMethod();
canonicalMethod = method;
- type = Invoke.Type.fromInvokeSpecial(method, context, appView, builder.getCodeLens());
+ type = InvokeType.fromInvokeSpecial(method, context, appView, builder.getCodeLens());
break;
}
case Opcodes.INVOKESTATIC:
{
canonicalMethod = method;
- type = Type.STATIC;
+ type = InvokeType.STATIC;
break;
}
default:
@@ -263,7 +262,7 @@
}
int parameterCount = method.getParameters().size();
- if (type != Type.STATIC) {
+ if (type != InvokeType.STATIC) {
parameterCount += 1;
}
ValueType[] types = new ValueType[parameterCount];
@@ -279,7 +278,7 @@
builder.addMoveResult(state.push(method.getReturnType()).register);
}
assert type
- == Invoke.Type.fromCfOpcode(
+ == InvokeType.fromCfOpcode(
opcode, method, builder.getProgramMethod(), builder.appView, builder.getCodeLens());
}
@@ -290,18 +289,19 @@
AppView<?> appView = inliningConstraints.getAppView();
DexMethod target = method;
// Find the DEX invocation type.
- Type type;
+ InvokeType type;
switch (opcode) {
case Opcodes.INVOKEINTERFACE:
// Could have changed to an invoke-virtual instruction due to vertical class merging
// (if an interface is merged into a class).
- type = graphLens.lookupMethod(target, context.getReference(), Type.INTERFACE).getType();
- assert type == Type.INTERFACE || type == Type.VIRTUAL;
+ type =
+ graphLens.lookupMethod(target, context.getReference(), InvokeType.INTERFACE).getType();
+ assert type == InvokeType.INTERFACE || type == InvokeType.VIRTUAL;
break;
case Opcodes.INVOKESPECIAL:
{
- Type actualInvokeType =
+ InvokeType actualInvokeType =
computeInvokeTypeForInvokeSpecial(appView, method, context, code.getOriginalHolder());
type = graphLens.lookupMethod(target, context.getReference(), actualInvokeType).getType();
}
@@ -311,7 +311,7 @@
{
// Static invokes may have changed as a result of horizontal class merging.
MethodLookupResult lookup =
- graphLens.lookupMethod(target, context.getReference(), Type.STATIC);
+ graphLens.lookupMethod(target, context.getReference(), InvokeType.STATIC);
target = lookup.getReference();
type = lookup.getType();
}
@@ -319,13 +319,13 @@
case Opcodes.INVOKEVIRTUAL:
{
- type = Type.VIRTUAL;
+ type = InvokeType.VIRTUAL;
// Instructions that target a private method in the same class translates to
// invoke-direct.
if (target.holder == context.getHolderType()) {
DexClass clazz = appView.definitionFor(target.holder);
if (clazz != null && clazz.lookupDirectMethod(target) != null) {
- type = Type.DIRECT;
+ type = InvokeType.DIRECT;
}
}
@@ -368,31 +368,31 @@
return frame.push(config, method.getReturnType());
}
- private Type computeInvokeTypeForInvokeSpecial(
+ private InvokeType computeInvokeTypeForInvokeSpecial(
AppView<?> appView, DexMethod method, ProgramMethod context, DexType originalHolder) {
if (appView.dexItemFactory().isConstructor(method)) {
- return Type.DIRECT;
+ return InvokeType.DIRECT;
}
if (originalHolder != method.getHolderType()) {
- return Type.SUPER;
+ return InvokeType.SUPER;
}
return invokeTypeForInvokeSpecialToNonInitMethodOnHolder(context, appView.graphLens());
}
- private Type invokeTypeForInvokeSpecialToNonInitMethodOnHolder(
+ private InvokeType invokeTypeForInvokeSpecialToNonInitMethodOnHolder(
ProgramMethod context, GraphLens graphLens) {
MethodLookupResult lookupResult =
- graphLens.lookupMethod(method, context.getReference(), Type.DIRECT);
+ graphLens.lookupMethod(method, context.getReference(), InvokeType.DIRECT);
DexEncodedMethod definition = context.getHolder().lookupMethod(lookupResult.getReference());
if (definition == null) {
- return Type.SUPER;
+ return InvokeType.SUPER;
}
if (context.getHolder().isInterface()) {
// On interfaces invoke-special should be mapped to invoke-super if the invoke-special
// instruction is used to target a default interface method.
if (definition.belongsToVirtualPool()) {
- return Type.SUPER;
+ return InvokeType.SUPER;
}
} else {
// Due to desugaring of invoke-special instructions that target virtual methods, this invoke
@@ -401,6 +401,6 @@
assert definition.isPrivate() || lookupResult.getType().isVirtual();
}
- return Type.DIRECT;
+ return InvokeType.DIRECT;
}
}
diff --git a/src/main/java/com/android/tools/r8/cf/code/CfMonitor.java b/src/main/java/com/android/tools/r8/cf/code/CfMonitor.java
index 98a73e5..c0c62d9 100644
--- a/src/main/java/com/android/tools/r8/cf/code/CfMonitor.java
+++ b/src/main/java/com/android/tools/r8/cf/code/CfMonitor.java
@@ -11,7 +11,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.InitClassLens;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Monitor.Type;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.conversion.CfSourceCode;
import com.android.tools.r8.ir.conversion.CfState;
import com.android.tools.r8.ir.conversion.CfState.Slot;
@@ -29,13 +29,13 @@
public class CfMonitor extends CfInstruction {
- private final Type type;
+ private final MonitorType type;
- public CfMonitor(Type type) {
+ public CfMonitor(MonitorType type) {
this.type = type;
}
- public Type getType() {
+ public MonitorType getType() {
return type;
}
@@ -74,7 +74,7 @@
}
private int getAsmOpcode() {
- return type == Type.ENTER ? Opcodes.MONITORENTER : Opcodes.MONITOREXIT;
+ return type == MonitorType.ENTER ? Opcodes.MONITORENTER : Opcodes.MONITOREXIT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
index c2fad2b..fa27f2c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat21t.java
@@ -9,7 +9,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
import com.android.tools.r8.ir.conversion.IRBuilder;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
@@ -69,7 +69,7 @@
visitor.visit(this, DexFormat21t::specify);
}
- public abstract Type getType();
+ public abstract IfType getType();
protected abstract ValueTypeConstraint getOperandTypeConstraint();
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
index 4ca9fcf..37257b1 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat22t.java
@@ -9,7 +9,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
import com.android.tools.r8.ir.conversion.IRBuilder;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
@@ -73,7 +73,7 @@
visitor.visit(this, DexFormat22t::specify);
}
- public abstract Type getType();
+ public abstract IfType getType();
public abstract ValueTypeConstraint getOperandTypeConstraint();
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
index 91657d8..3a9dff4 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat45cc.java
@@ -13,7 +13,7 @@
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.CompareToVisitor;
@@ -106,8 +106,10 @@
ProgramMethod context,
LensCodeRewriterUtils rewriter) {
MethodLookupResult lookup =
- appView.graphLens().lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
- assert lookup.getType() == Type.POLYMORPHIC;
+ appView
+ .graphLens()
+ .lookupMethod(getMethod(), context.getReference(), InvokeType.POLYMORPHIC);
+ assert lookup.getType() == InvokeType.POLYMORPHIC;
lookup.getReference().collectIndexedItems(appView, indexedItems);
DexProto rewrittenProto = rewriter.rewriteProto(getProto());
@@ -127,7 +129,7 @@
assert rewriter.dexItemFactory().polymorphicMethods.isPolymorphicInvoke(getMethod());
assert getMethod()
== graphLens
- .lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC)
+ .lookupMethod(getMethod(), context.getReference(), InvokeType.POLYMORPHIC)
.getReference();
DexProto rewrittenProto = rewriter.rewriteProto(getProto());
writeFirst(A, G, dest);
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java b/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
index 0bf1e92..7e887dc 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexFormat4rcc.java
@@ -13,7 +13,7 @@
import com.android.tools.r8.graph.IndexedDexItem;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import com.android.tools.r8.utils.RetracerForCodePrinting;
import com.android.tools.r8.utils.structural.CompareToVisitor;
@@ -65,7 +65,7 @@
assert rewriter.dexItemFactory().polymorphicMethods.isPolymorphicInvoke(getMethod());
assert getMethod()
== graphLens
- .lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC)
+ .lookupMethod(getMethod(), context.getReference(), InvokeType.POLYMORPHIC)
.getReference();
DexProto rewrittenProto = rewriter.rewriteProto(getProto());
writeFirst(AA, dest);
@@ -119,8 +119,10 @@
ProgramMethod context,
LensCodeRewriterUtils rewriter) {
MethodLookupResult lookup =
- appView.graphLens().lookupMethod(getMethod(), context.getReference(), Type.POLYMORPHIC);
- assert lookup.getType() == Type.POLYMORPHIC;
+ appView
+ .graphLens()
+ .lookupMethod(getMethod(), context.getReference(), InvokeType.POLYMORPHIC);
+ assert lookup.getType() == InvokeType.POLYMORPHIC;
lookup.getReference().collectIndexedItems(appView, indexedItems);
DexProto rewrittenProto = rewriter.rewriteProto(getProto());
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfEq.java b/src/main/java/com/android/tools/r8/dex/code/DexIfEq.java
index 345328f..1db067f 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfEq.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfEq.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfEq extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.EQ;
+ public IfType getType() {
+ return IfType.EQ;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfEqz.java b/src/main/java/com/android/tools/r8/dex/code/DexIfEqz.java
index 517576c..84b526e 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfEqz.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfEqz.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfEqz extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.EQ;
+ public IfType getType() {
+ return IfType.EQ;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfGe.java b/src/main/java/com/android/tools/r8/dex/code/DexIfGe.java
index 4c49892..ef38085 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfGe.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfGe.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfGe extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.GE;
+ public IfType getType() {
+ return IfType.GE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfGez.java b/src/main/java/com/android/tools/r8/dex/code/DexIfGez.java
index 6a9b49e..4765685 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfGez.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfGez.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfGez extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.GE;
+ public IfType getType() {
+ return IfType.GE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfGt.java b/src/main/java/com/android/tools/r8/dex/code/DexIfGt.java
index 20abfdc..ea24dc4 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfGt.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfGt.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfGt extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.GT;
+ public IfType getType() {
+ return IfType.GT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfGtz.java b/src/main/java/com/android/tools/r8/dex/code/DexIfGtz.java
index c3a8348..2b4854e 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfGtz.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfGtz.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfGtz extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.GT;
+ public IfType getType() {
+ return IfType.GT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfLe.java b/src/main/java/com/android/tools/r8/dex/code/DexIfLe.java
index 9fde6a5..1410c10 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfLe.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfLe.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfLe extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.LE;
+ public IfType getType() {
+ return IfType.LE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfLez.java b/src/main/java/com/android/tools/r8/dex/code/DexIfLez.java
index 04ebeff..3d24d4d 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfLez.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfLez.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfLez extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.LE;
+ public IfType getType() {
+ return IfType.LE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfLt.java b/src/main/java/com/android/tools/r8/dex/code/DexIfLt.java
index 728ba10..cd9cbec 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfLt.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfLt.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfLt extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.LT;
+ public IfType getType() {
+ return IfType.LT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfLtz.java b/src/main/java/com/android/tools/r8/dex/code/DexIfLtz.java
index 0aba44f..5ff2129 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfLtz.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfLtz.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfLtz extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.LT;
+ public IfType getType() {
+ return IfType.LT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfNe.java b/src/main/java/com/android/tools/r8/dex/code/DexIfNe.java
index 9919538..d403a22 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfNe.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfNe.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfNe extends DexFormat22t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.NE;
+ public IfType getType() {
+ return IfType.NE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexIfNez.java b/src/main/java/com/android/tools/r8/dex/code/DexIfNez.java
index cb74246..b2d79a9 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexIfNez.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexIfNez.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueTypeConstraint;
public class DexIfNez extends DexFormat21t {
@@ -36,8 +36,8 @@
}
@Override
- public Type getType() {
- return Type.NE;
+ public IfType getType() {
+ return IfType.NE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirect.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirect.java
index b918754..00eff75 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirect.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirect.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeDirect extends DexInvokeMethod {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.DIRECT;
+ public InvokeType getInvokeType() {
+ return InvokeType.DIRECT;
}
@Override
@@ -50,7 +50,8 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRegisters(Type.DIRECT, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ builder.addInvokeRegisters(
+ InvokeType.DIRECT, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirectRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirectRange.java
index 9134e4a..82bb5d3 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirectRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeDirectRange.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeDirectRange extends DexInvokeMethodRange {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.DIRECT;
+ public InvokeType getInvokeType() {
+ return InvokeType.DIRECT;
}
@Override
@@ -50,7 +50,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.DIRECT, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.DIRECT, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterface.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterface.java
index d7a64be..d7db325 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterface.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterface.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeInterface extends DexInvokeMethod {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.INTERFACE;
+ public InvokeType getInvokeType() {
+ return InvokeType.INTERFACE;
}
@Override
@@ -51,7 +51,7 @@
@Override
public void buildIR(IRBuilder builder) {
builder.addInvokeRegisters(
- Type.INTERFACE, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ InvokeType.INTERFACE, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterfaceRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterfaceRange.java
index b8dfc7b..5313e9b 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterfaceRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeInterfaceRange.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeInterfaceRange extends DexInvokeMethodRange {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.INTERFACE;
+ public InvokeType getInvokeType() {
+ return InvokeType.INTERFACE;
}
@Override
@@ -50,7 +50,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.INTERFACE, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.INTERFACE, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
index a390eff..c59579b 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethod.java
@@ -10,7 +10,7 @@
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import java.nio.ShortBuffer;
@@ -43,7 +43,7 @@
return BBBB;
}
- public abstract Invoke.Type getInvokeType();
+ public abstract InvokeType getInvokeType();
@Override
public void write(
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
index 3c1ffc7..7dc8a6c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeMethodRange.java
@@ -10,7 +10,7 @@
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
import com.android.tools.r8.graph.ObjectToOffsetMapping;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import java.nio.ShortBuffer;
@@ -43,7 +43,7 @@
return BBBB;
}
- public abstract Type getInvokeType();
+ public abstract InvokeType getInvokeType();
@Override
public void write(
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphic.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphic.java
index 72678f0..1857048 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphic.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphic.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.OffsetToObjectMapping;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
/**
@@ -31,7 +31,7 @@
@Override
public void buildIR(IRBuilder builder) {
builder.addInvokeRegisters(
- Type.POLYMORPHIC, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ InvokeType.POLYMORPHIC, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphicRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphicRange.java
index 186952b..629e73c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphicRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokePolymorphicRange.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
/** An invoke-polymorphic range instruction used to call method with polymorphic signature. */
@@ -53,7 +53,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.POLYMORPHIC, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.POLYMORPHIC, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeStatic.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeStatic.java
index b645556..7286ac4 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeStatic.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeStatic.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeStatic extends DexInvokeMethod {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.STATIC;
+ public InvokeType getInvokeType() {
+ return InvokeType.STATIC;
}
@Override
@@ -50,7 +50,8 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRegisters(Type.STATIC, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ builder.addInvokeRegisters(
+ InvokeType.STATIC, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeStaticRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeStaticRange.java
index 512632f..609e4e8 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeStaticRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeStaticRange.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeStaticRange extends DexInvokeMethodRange {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.STATIC;
+ public InvokeType getInvokeType() {
+ return InvokeType.STATIC;
}
@Override
@@ -50,7 +50,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.STATIC, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.STATIC, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuper.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuper.java
index 3be61ac..c9b605f 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuper.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuper.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeSuper extends DexInvokeMethod {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.SUPER;
+ public InvokeType getInvokeType() {
+ return InvokeType.SUPER;
}
@Override
@@ -50,7 +50,8 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRegisters(Type.SUPER, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ builder.addInvokeRegisters(
+ InvokeType.SUPER, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuperRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuperRange.java
index 206e74f..a34f0f1 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuperRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeSuperRange.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeSuperRange extends DexInvokeMethodRange {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.SUPER;
+ public InvokeType getInvokeType() {
+ return InvokeType.SUPER;
}
@Override
@@ -50,7 +50,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.SUPER, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.SUPER, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtual.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtual.java
index f1704e5..fbc844c 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtual.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtual.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeVirtual extends DexInvokeMethod {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.VIRTUAL;
+ public InvokeType getInvokeType() {
+ return InvokeType.VIRTUAL;
}
@Override
@@ -60,7 +60,8 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRegisters(Type.VIRTUAL, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
+ builder.addInvokeRegisters(
+ InvokeType.VIRTUAL, getMethod(), getProto(), A, new int[] {C, D, E, F, G});
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtualRange.java b/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtualRange.java
index 97a87f8..27662f8 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtualRange.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexInvokeVirtualRange.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.OffsetToObjectMapping;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexInvokeVirtualRange extends DexInvokeMethodRange {
@@ -24,8 +24,8 @@
}
@Override
- public Type getInvokeType() {
- return Type.VIRTUAL;
+ public InvokeType getInvokeType() {
+ return InvokeType.VIRTUAL;
}
@Override
@@ -60,7 +60,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addInvokeRange(Type.VIRTUAL, getMethod(), getProto(), AA, CCCC);
+ builder.addInvokeRange(InvokeType.VIRTUAL, getMethod(), getProto(), AA, CCCC);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexMonitorEnter.java b/src/main/java/com/android/tools/r8/dex/code/DexMonitorEnter.java
index 620c557..b8f8936 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexMonitorEnter.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexMonitorEnter.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.Monitor.Type;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexMonitorEnter extends DexFormat11x {
@@ -37,7 +37,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addMonitor(Type.ENTER, AA);
+ builder.addMonitor(MonitorType.ENTER, AA);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/dex/code/DexMonitorExit.java b/src/main/java/com/android/tools/r8/dex/code/DexMonitorExit.java
index d001e32..9fb94cf 100644
--- a/src/main/java/com/android/tools/r8/dex/code/DexMonitorExit.java
+++ b/src/main/java/com/android/tools/r8/dex/code/DexMonitorExit.java
@@ -3,7 +3,7 @@
// BSD-style license that can be found in the LICENSE file.
package com.android.tools.r8.dex.code;
-import com.android.tools.r8.ir.code.Monitor.Type;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.conversion.IRBuilder;
public class DexMonitorExit extends DexFormat11x {
@@ -37,7 +37,7 @@
@Override
public void buildIR(IRBuilder builder) {
- builder.addMonitor(Type.EXIT, AA);
+ builder.addMonitor(MonitorType.EXIT, AA);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java b/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
index 610a0c8..0e72940 100644
--- a/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
+++ b/src/main/java/com/android/tools/r8/graph/DexMethodHandle.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.IndexedItemCollection;
import com.android.tools.r8.errors.Unreachable;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.naming.NamingLens;
import com.android.tools.r8.utils.structural.StructuralMapping;
import com.android.tools.r8.utils.structural.StructuralSpecification;
@@ -165,21 +165,21 @@
return this == MethodHandleType.INVOKE_CONSTRUCTOR;
}
- public Type toInvokeType() {
+ public InvokeType toInvokeType() {
assert isMethodType();
switch (this) {
case INVOKE_STATIC:
- return Type.STATIC;
+ return InvokeType.STATIC;
case INVOKE_INSTANCE:
- return Type.VIRTUAL;
+ return InvokeType.VIRTUAL;
case INVOKE_CONSTRUCTOR:
- return Type.DIRECT;
+ return InvokeType.DIRECT;
case INVOKE_DIRECT:
- return Type.DIRECT;
+ return InvokeType.DIRECT;
case INVOKE_INTERFACE:
- return Type.INTERFACE;
+ return InvokeType.INTERFACE;
case INVOKE_SUPER:
- return Type.SUPER;
+ return InvokeType.SUPER;
default:
throw new Unreachable(
"Conversion to invoke type with unexpected method handle: " + this);
diff --git a/src/main/java/com/android/tools/r8/graph/GraphLens.java b/src/main/java/com/android/tools/r8/graph/GraphLens.java
index b43256b..95921b3 100644
--- a/src/main/java/com/android/tools/r8/graph/GraphLens.java
+++ b/src/main/java/com/android/tools/r8/graph/GraphLens.java
@@ -7,7 +7,7 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.LensCodeRewriterUtils;
import com.android.tools.r8.ir.optimize.enums.EnumUnboxingLens;
import com.android.tools.r8.optimize.MemberRebindingIdentityLens;
@@ -202,13 +202,13 @@
*/
public static class MethodLookupResult extends MemberLookupResult<DexMethod> {
- private final Type type;
+ private final InvokeType type;
private final RewrittenPrototypeDescription prototypeChanges;
public MethodLookupResult(
DexMethod reference,
DexMethod reboundReference,
- Type type,
+ InvokeType type,
RewrittenPrototypeDescription prototypeChanges) {
super(reference, reboundReference);
this.type = type;
@@ -219,7 +219,7 @@
return new Builder(lens);
}
- public Type getType() {
+ public InvokeType getType() {
return type;
}
@@ -231,7 +231,7 @@
private final GraphLens lens;
private RewrittenPrototypeDescription prototypeChanges = RewrittenPrototypeDescription.none();
- private Type type;
+ private InvokeType type;
private Builder(GraphLens lens) {
this.lens = lens;
@@ -242,7 +242,7 @@
return this;
}
- public Builder setType(Type type) {
+ public Builder setType(InvokeType type) {
this.type = type;
return this;
}
@@ -440,51 +440,52 @@
}
public final MethodLookupResult lookupInvokeDirect(DexMethod method, ProgramMethod context) {
- return lookupMethod(method, context.getReference(), Type.DIRECT);
+ return lookupMethod(method, context.getReference(), InvokeType.DIRECT);
}
public final MethodLookupResult lookupInvokeDirect(
DexMethod method, ProgramMethod context, GraphLens codeLens) {
- return lookupMethod(method, context.getReference(), Type.DIRECT, codeLens);
+ return lookupMethod(method, context.getReference(), InvokeType.DIRECT, codeLens);
}
public final MethodLookupResult lookupInvokeInterface(DexMethod method, ProgramMethod context) {
- return lookupMethod(method, context.getReference(), Type.INTERFACE);
+ return lookupMethod(method, context.getReference(), InvokeType.INTERFACE);
}
public final MethodLookupResult lookupInvokeInterface(
DexMethod method, ProgramMethod context, GraphLens codeLens) {
- return lookupMethod(method, context.getReference(), Type.INTERFACE, codeLens);
+ return lookupMethod(method, context.getReference(), InvokeType.INTERFACE, codeLens);
}
public final MethodLookupResult lookupInvokeStatic(DexMethod method, ProgramMethod context) {
- return lookupMethod(method, context.getReference(), Type.STATIC);
+ return lookupMethod(method, context.getReference(), InvokeType.STATIC);
}
public final MethodLookupResult lookupInvokeStatic(
DexMethod method, ProgramMethod context, GraphLens codeLens) {
- return lookupMethod(method, context.getReference(), Type.STATIC, codeLens);
+ return lookupMethod(method, context.getReference(), InvokeType.STATIC, codeLens);
}
public final MethodLookupResult lookupInvokeSuper(DexMethod method, ProgramMethod context) {
- return lookupMethod(method, context.getReference(), Type.SUPER);
+ return lookupMethod(method, context.getReference(), InvokeType.SUPER);
}
public final MethodLookupResult lookupInvokeSuper(
DexMethod method, ProgramMethod context, GraphLens codeLens) {
- return lookupMethod(method, context.getReference(), Type.SUPER, codeLens);
+ return lookupMethod(method, context.getReference(), InvokeType.SUPER, codeLens);
}
public final MethodLookupResult lookupInvokeVirtual(DexMethod method, ProgramMethod context) {
- return lookupMethod(method, context.getReference(), Type.VIRTUAL);
+ return lookupMethod(method, context.getReference(), InvokeType.VIRTUAL);
}
public final MethodLookupResult lookupInvokeVirtual(
DexMethod method, ProgramMethod context, GraphLens codeLens) {
- return lookupMethod(method, context.getReference(), Type.VIRTUAL, codeLens);
+ return lookupMethod(method, context.getReference(), InvokeType.VIRTUAL, codeLens);
}
- public final MethodLookupResult lookupMethod(DexMethod method, DexMethod context, Type type) {
+ public final MethodLookupResult lookupMethod(
+ DexMethod method, DexMethod context, InvokeType type) {
return lookupMethod(method, context, type, null);
}
@@ -500,12 +501,12 @@
* should generally use the result of calling {@link AppView#codeLens()}.
*/
public abstract MethodLookupResult lookupMethod(
- DexMethod method, DexMethod context, Type type, GraphLens codeLens);
+ DexMethod method, DexMethod context, InvokeType type, GraphLens codeLens);
protected abstract MethodLookupResult internalLookupMethod(
DexMethod reference,
DexMethod context,
- Type type,
+ InvokeType type,
GraphLens codeLens,
LookupMethodContinuation continuation);
@@ -898,7 +899,7 @@
@Override
public MethodLookupResult lookupMethod(
- DexMethod method, DexMethod context, Type type, GraphLens codeLens) {
+ DexMethod method, DexMethod context, InvokeType type, GraphLens codeLens) {
if (method.getHolderType().isArrayType()) {
assert lookupType(method.getReturnType()) == method.getReturnType();
assert method.getParameters().stream()
@@ -963,7 +964,7 @@
protected MethodLookupResult internalLookupMethod(
DexMethod reference,
DexMethod context,
- Type type,
+ InvokeType type,
GraphLens codeLens,
LookupMethodContinuation continuation) {
if (this == codeLens) {
@@ -1078,7 +1079,7 @@
@Override
public MethodLookupResult lookupMethod(
- DexMethod method, DexMethod context, Type type, GraphLens codeLens) {
+ DexMethod method, DexMethod context, InvokeType type, GraphLens codeLens) {
assert codeLens == null || codeLens.isIdentityLens();
return MethodLookupResult.builder(this).setReference(method).setType(type).build();
}
@@ -1102,7 +1103,7 @@
protected MethodLookupResult internalLookupMethod(
DexMethod reference,
DexMethod context,
- Type type,
+ InvokeType type,
GraphLens codeLens,
LookupMethodContinuation continuation) {
// Passes the method reference back to the next graph lens. The identity lens intentionally
@@ -1189,7 +1190,7 @@
protected MethodLookupResult internalLookupMethod(
DexMethod reference,
DexMethod context,
- Type type,
+ InvokeType type,
GraphLens codeLens,
LookupMethodContinuation continuation) {
assert codeLens == null || codeLens == this;
diff --git a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
index c9d6437..45fed00 100644
--- a/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
+++ b/src/main/java/com/android/tools/r8/graph/LazyCfCode.java
@@ -55,9 +55,9 @@
import com.android.tools.r8.graph.JarClassFileReader.ReparseContext;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
import com.android.tools.r8.ir.code.IRCode;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
-import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.NumberGenerator;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.Position.SourcePosition;
@@ -736,10 +736,10 @@
addInstruction(new CfThrow());
break;
case Opcodes.MONITORENTER:
- addInstruction(new CfMonitor(Monitor.Type.ENTER));
+ addInstruction(new CfMonitor(MonitorType.ENTER));
break;
case Opcodes.MONITOREXIT:
- addInstruction(new CfMonitor(Monitor.Type.EXIT));
+ addInstruction(new CfMonitor(MonitorType.EXIT));
break;
default:
throw new Unreachable("Unknown instruction");
@@ -932,7 +932,7 @@
break;
case Opcodes.IFNULL:
case Opcodes.IFNONNULL:
- If.Type type = opcode == Opcodes.IFNULL ? If.Type.EQ : If.Type.NE;
+ IfType type = opcode == Opcodes.IFNULL ? IfType.EQ : IfType.NE;
addInstruction(new CfIf(type, ValueType.OBJECT, target));
break;
case Opcodes.JSR:
@@ -943,28 +943,28 @@
}
}
- private static If.Type ifType(int opcode) {
+ private static IfType ifType(int opcode) {
switch (opcode) {
case Opcodes.IFEQ:
case Opcodes.IF_ICMPEQ:
case Opcodes.IF_ACMPEQ:
- return If.Type.EQ;
+ return IfType.EQ;
case Opcodes.IFNE:
case Opcodes.IF_ICMPNE:
case Opcodes.IF_ACMPNE:
- return If.Type.NE;
+ return IfType.NE;
case Opcodes.IFLT:
case Opcodes.IF_ICMPLT:
- return If.Type.LT;
+ return IfType.LT;
case Opcodes.IFGE:
case Opcodes.IF_ICMPGE:
- return If.Type.GE;
+ return IfType.GE;
case Opcodes.IFGT:
case Opcodes.IF_ICMPGT:
- return If.Type.GT;
+ return IfType.GT;
case Opcodes.IFLE:
case Opcodes.IF_ICMPLE:
- return If.Type.LE;
+ return IfType.LE;
default:
throw new Unreachable("Unexpected If instruction opcode: " + opcode);
}
diff --git a/src/main/java/com/android/tools/r8/graph/MethodAccessInfoCollection.java b/src/main/java/com/android/tools/r8/graph/MethodAccessInfoCollection.java
index f56cc34..d6efacb 100644
--- a/src/main/java/com/android/tools/r8/graph/MethodAccessInfoCollection.java
+++ b/src/main/java/com/android/tools/r8/graph/MethodAccessInfoCollection.java
@@ -5,7 +5,7 @@
package com.android.tools.r8.graph;
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.utils.ConsumerUtils;
import com.android.tools.r8.utils.collections.ProgramMethodSet;
import com.google.common.collect.Sets;
@@ -91,11 +91,11 @@
public MethodAccessInfoCollection rewrittenWithLens(
DexDefinitionSupplier definitions, GraphLens lens) {
MethodAccessInfoCollection.Builder<?> builder = identityBuilder();
- rewriteInvokesWithLens(builder, directInvokes, definitions, lens, Type.DIRECT);
- rewriteInvokesWithLens(builder, interfaceInvokes, definitions, lens, Type.INTERFACE);
- rewriteInvokesWithLens(builder, staticInvokes, definitions, lens, Type.STATIC);
- rewriteInvokesWithLens(builder, superInvokes, definitions, lens, Type.SUPER);
- rewriteInvokesWithLens(builder, virtualInvokes, definitions, lens, Type.VIRTUAL);
+ rewriteInvokesWithLens(builder, directInvokes, definitions, lens, InvokeType.DIRECT);
+ rewriteInvokesWithLens(builder, interfaceInvokes, definitions, lens, InvokeType.INTERFACE);
+ rewriteInvokesWithLens(builder, staticInvokes, definitions, lens, InvokeType.STATIC);
+ rewriteInvokesWithLens(builder, superInvokes, definitions, lens, InvokeType.SUPER);
+ rewriteInvokesWithLens(builder, virtualInvokes, definitions, lens, InvokeType.VIRTUAL);
return builder.build();
}
@@ -104,7 +104,7 @@
Map<DexMethod, ProgramMethodSet> invokes,
DexDefinitionSupplier definitions,
GraphLens lens,
- Type type) {
+ InvokeType type) {
invokes.forEach(
(reference, contexts) -> {
ProgramMethodSet newContexts = contexts.rewrittenWithLens(definitions, lens);
@@ -112,7 +112,7 @@
MethodLookupResult methodLookupResult =
lens.lookupMethod(reference, newContext.getReference(), type);
DexMethod newReference = methodLookupResult.getReference();
- Type newType = methodLookupResult.getType();
+ InvokeType newType = methodLookupResult.getType();
builder.registerInvokeInContext(newReference, newContext, newType);
}
});
@@ -160,7 +160,7 @@
}
public boolean registerInvokeInContext(
- DexMethod invokedMethod, ProgramMethod context, Type type) {
+ DexMethod invokedMethod, ProgramMethod context, InvokeType type) {
switch (type) {
case DIRECT:
return registerInvokeDirectInContext(invokedMethod, context);
diff --git a/src/main/java/com/android/tools/r8/graph/NestedGraphLens.java b/src/main/java/com/android/tools/r8/graph/NestedGraphLens.java
index 4c61282..85bd133 100644
--- a/src/main/java/com/android/tools/r8/graph/NestedGraphLens.java
+++ b/src/main/java/com/android/tools/r8/graph/NestedGraphLens.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.GraphLens.NonIdentityGraphLens;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.utils.IterableUtils;
import com.android.tools.r8.utils.collections.BidirectionalManyToManyRepresentativeMap;
import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeMap;
@@ -23,8 +23,8 @@
* <p>Subclasses can override the lookup methods.
*
* <p>For method mapping where invocation type can change just override {@link
- * #mapInvocationType(DexMethod, DexMethod, Type)} if the default name mapping applies, and only
- * invocation type might need to change.
+ * #mapInvocationType(DexMethod, DexMethod, InvokeType)} if the default name mapping applies, and
+ * only invocation type might need to change.
*/
public class NestedGraphLens extends NonIdentityGraphLens {
@@ -266,9 +266,10 @@
* Default invocation type mapping.
*
* <p>This is an identity mapping. If a subclass need invocation type mapping either override this
- * method or {@link #lookupMethod(DexMethod, DexMethod, Type)}
+ * method or {@link #lookupMethod(DexMethod, DexMethod, InvokeType)}
*/
- protected Type mapInvocationType(DexMethod newMethod, DexMethod originalMethod, Type type) {
+ protected InvokeType mapInvocationType(
+ DexMethod newMethod, DexMethod originalMethod, InvokeType type) {
return type;
}
@@ -277,9 +278,12 @@
*
* <p>Handle methods moved from interface to class or class to interface.
*/
- public static Type mapVirtualInterfaceInvocationTypes(
- DexDefinitionSupplier definitions, DexMethod newMethod, DexMethod originalMethod, Type type) {
- if (type == Type.VIRTUAL || type == Type.INTERFACE) {
+ public static InvokeType mapVirtualInterfaceInvocationTypes(
+ DexDefinitionSupplier definitions,
+ DexMethod newMethod,
+ DexMethod originalMethod,
+ InvokeType type) {
+ if (type == InvokeType.VIRTUAL || type == InvokeType.INTERFACE) {
// Get the invoke type of the actual definition.
DexClass newTargetClass = definitions.definitionFor(newMethod.getHolderType());
if (newTargetClass == null) {
@@ -287,12 +291,12 @@
}
DexClass originalTargetClass = definitions.definitionFor(originalMethod.getHolderType());
if (originalTargetClass != null
- && (originalTargetClass.isInterface() ^ (type == Type.INTERFACE))) {
+ && (originalTargetClass.isInterface() ^ (type == InvokeType.INTERFACE))) {
// The invoke was wrong to start with, so we keep it wrong. This is to ensure we get
// the IncompatibleClassChangeError the original invoke would have triggered.
- return newTargetClass.accessFlags.isInterface() ? Type.VIRTUAL : Type.INTERFACE;
+ return newTargetClass.accessFlags.isInterface() ? InvokeType.VIRTUAL : InvokeType.INTERFACE;
}
- return newTargetClass.accessFlags.isInterface() ? Type.INTERFACE : Type.VIRTUAL;
+ return newTargetClass.accessFlags.isInterface() ? InvokeType.INTERFACE : InvokeType.VIRTUAL;
}
return type;
}
diff --git a/src/main/java/com/android/tools/r8/graph/UseRegistry.java b/src/main/java/com/android/tools/r8/graph/UseRegistry.java
index 0b066d6..f5a1aad 100644
--- a/src/main/java/com/android/tools/r8/graph/UseRegistry.java
+++ b/src/main/java/com/android/tools/r8/graph/UseRegistry.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.dex.code.CfOrDexInstanceFieldRead;
import com.android.tools.r8.dex.code.CfOrDexInstruction;
import com.android.tools.r8.dex.code.CfOrDexStaticFieldRead;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.utils.TraversalContinuation;
import java.util.ListIterator;
@@ -74,7 +74,7 @@
public void registerInvokeSpecial(DexMethod method) {
DexClassAndMethod context = getMethodContext();
- Invoke.Type type = Invoke.Type.fromInvokeSpecial(method, context, appView, getCodeLens());
+ InvokeType type = InvokeType.fromInvokeSpecial(method, context, appView, getCodeLens());
if (type.isDirect()) {
registerInvokeDirect(method);
} else {
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/ConstructorEntryPoint.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/ConstructorEntryPoint.java
index d650b17..d4cb598 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/ConstructorEntryPoint.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/ConstructorEntryPoint.java
@@ -6,7 +6,7 @@
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.Value;
import com.android.tools.r8.ir.code.ValueType;
@@ -64,7 +64,8 @@
arguments.add(builder.getArgumentValues().get(i));
}
- builder.addInvoke(Type.DIRECT, typeConstructor, typeConstructor.proto, arguments, false);
+ builder.addInvoke(
+ InvokeType.DIRECT, typeConstructor, typeConstructor.proto, arguments, false);
});
}
diff --git a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java
index b8782e2..299c516 100644
--- a/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/horizontalclassmerging/HorizontalClassMerger.java
@@ -16,7 +16,7 @@
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.PrunedItems;
import com.android.tools.r8.horizontalclassmerging.code.SyntheticInitializerConverter;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.profile.art.ArtProfileCompletenessChecker;
import com.android.tools.r8.profile.art.rewriting.ArtProfileCollectionAdditions;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -233,7 +233,7 @@
horizontalClassMergerGraphLens.lookupMethod(
representative,
null,
- Type.VIRTUAL,
+ InvokeType.VIRTUAL,
horizontalClassMergerGraphLens.getPrevious());
ProgramMethod mergedMethod =
asProgramMethodOrNull(appView.definitionFor(lookupResult.getReference()));
diff --git a/src/main/java/com/android/tools/r8/ir/analysis/inlining/SimpleInliningConstraintAnalysis.java b/src/main/java/com/android/tools/r8/ir/analysis/inlining/SimpleInliningConstraintAnalysis.java
index 3d74f82..49d5674 100644
--- a/src/main/java/com/android/tools/r8/ir/analysis/inlining/SimpleInliningConstraintAnalysis.java
+++ b/src/main/java/com/android/tools/r8/ir/analysis/inlining/SimpleInliningConstraintAnalysis.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.ir.code.BasicBlock;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionIterator;
import com.android.tools.r8.ir.code.Value;
@@ -167,7 +168,7 @@
}
private SimpleInliningConstraint computeConstraintFromIfTest(
- int argumentIndex, DexType argumentType, Value otherOperand, If.Type type) {
+ int argumentIndex, DexType argumentType, Value otherOperand, IfType type) {
boolean isZeroTest = otherOperand == null;
switch (type) {
case EQ:
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 1cd76a4..a6a436e 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
@@ -21,62 +21,20 @@
public class If extends JumpInstruction {
- public enum Type {
- EQ, GE, GT, LE, LT, NE;
-
- // Returns the comparison type if the operands are swapped.
- public Type forSwappedOperands() {
- switch (this) {
- case EQ:
- case NE:
- return this;
- case GE:
- return Type.LE;
- case GT:
- return Type.LT;
- case LE:
- return Type.GE;
- case LT:
- return Type.GT;
- default:
- throw new Unreachable("Unknown if condition type.");
- }
- }
-
- public Type inverted() {
- switch (this) {
- case EQ:
- return Type.NE;
- case GE:
- return Type.LT;
- case GT:
- return Type.LE;
- case LE:
- return Type.GT;
- case LT:
- return Type.GE;
- case NE:
- return Type.EQ;
- default:
- throw new Unreachable("Unknown if condition type.");
- }
- }
- }
-
- private static boolean verifyTypeCompatible(TypeElement valueType, If.Type ifType) {
+ private static boolean verifyTypeCompatible(TypeElement valueType, IfType ifType) {
return valueType.isInt()
- || (valueType.isFloat() && (ifType == Type.EQ || ifType == Type.NE))
- || (valueType.isReferenceType() && (ifType == Type.EQ || ifType == Type.NE));
+ || (valueType.isFloat() && (ifType == IfType.EQ || ifType == IfType.NE))
+ || (valueType.isReferenceType() && (ifType == IfType.EQ || ifType == IfType.NE));
}
- private Type type;
+ private IfType type;
- public If(Type type, Value value) {
+ public If(IfType type, Value value) {
super(value);
this.type = type;
}
- public If(Type type, List<Value> values) {
+ public If(IfType type, List<Value> values) {
super(values);
this.type = type;
}
@@ -112,7 +70,7 @@
return inValues.get(1);
}
- public Type getType() {
+ public IfType getType() {
return type;
}
diff --git a/src/main/java/com/android/tools/r8/ir/code/IfType.java b/src/main/java/com/android/tools/r8/ir/code/IfType.java
new file mode 100644
index 0000000..926eac3
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/ir/code/IfType.java
@@ -0,0 +1,53 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.ir.code;
+
+import com.android.tools.r8.errors.Unreachable;
+
+public enum IfType {
+ EQ,
+ GE,
+ GT,
+ LE,
+ LT,
+ NE;
+
+ // Returns the comparison type if the operands are swapped.
+ public IfType forSwappedOperands() {
+ switch (this) {
+ case EQ:
+ case NE:
+ return this;
+ case GE:
+ return IfType.LE;
+ case GT:
+ return IfType.LT;
+ case LE:
+ return IfType.GE;
+ case LT:
+ return IfType.GT;
+ default:
+ throw new Unreachable("Unknown if condition type.");
+ }
+ }
+
+ public IfType inverted() {
+ switch (this) {
+ case EQ:
+ return IfType.NE;
+ case GE:
+ return IfType.LT;
+ case GT:
+ return IfType.LE;
+ case LE:
+ return IfType.GT;
+ case LT:
+ return IfType.GE;
+ case NE:
+ return IfType.EQ;
+ default:
+ throw new Unreachable("Unknown if condition type.");
+ }
+ }
+}
diff --git a/src/main/java/com/android/tools/r8/ir/code/Invoke.java b/src/main/java/com/android/tools/r8/ir/code/Invoke.java
index fb5d930..01f645b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Invoke.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Invoke.java
@@ -5,240 +5,26 @@
import com.android.tools.r8.dex.Constants;
import com.android.tools.r8.dex.code.DexInstruction;
-import com.android.tools.r8.dex.code.DexInvokeCustom;
-import com.android.tools.r8.dex.code.DexInvokeCustomRange;
-import com.android.tools.r8.dex.code.DexInvokeDirect;
-import com.android.tools.r8.dex.code.DexInvokeDirectRange;
-import com.android.tools.r8.dex.code.DexInvokeInterface;
-import com.android.tools.r8.dex.code.DexInvokeInterfaceRange;
-import com.android.tools.r8.dex.code.DexInvokePolymorphic;
-import com.android.tools.r8.dex.code.DexInvokePolymorphicRange;
-import com.android.tools.r8.dex.code.DexInvokeStatic;
-import com.android.tools.r8.dex.code.DexInvokeStaticRange;
-import com.android.tools.r8.dex.code.DexInvokeSuper;
-import com.android.tools.r8.dex.code.DexInvokeSuperRange;
-import com.android.tools.r8.dex.code.DexInvokeVirtual;
-import com.android.tools.r8.dex.code.DexInvokeVirtualRange;
import com.android.tools.r8.dex.code.DexMoveResult;
import com.android.tools.r8.dex.code.DexMoveResultObject;
import com.android.tools.r8.dex.code.DexMoveResultWide;
-import com.android.tools.r8.dex.code.DexNewArray;
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.AppView;
-import com.android.tools.r8.graph.DexClass;
-import com.android.tools.r8.graph.DexClassAndMethod;
-import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.graph.DexItem;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.graph.DexMethodHandle.MethodHandleType;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.graph.GraphLens;
-import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
import com.android.tools.r8.ir.analysis.type.Nullability;
import com.android.tools.r8.ir.analysis.type.TypeElement;
import com.android.tools.r8.ir.conversion.DexBuilder;
import com.android.tools.r8.utils.BooleanUtils;
import java.util.List;
import java.util.Set;
-import org.objectweb.asm.Opcodes;
public abstract class Invoke extends Instruction {
- private static final int NO_SUCH_DEX_INSTRUCTION = -1;
-
- public enum Type {
- DIRECT(DexInvokeDirect.OPCODE, DexInvokeDirectRange.OPCODE),
- INTERFACE(DexInvokeInterface.OPCODE, DexInvokeInterfaceRange.OPCODE),
- STATIC(DexInvokeStatic.OPCODE, DexInvokeStaticRange.OPCODE),
- SUPER(DexInvokeSuper.OPCODE, DexInvokeSuperRange.OPCODE),
- VIRTUAL(DexInvokeVirtual.OPCODE, DexInvokeVirtualRange.OPCODE),
- NEW_ARRAY(DexNewArray.OPCODE, NO_SUCH_DEX_INSTRUCTION),
- MULTI_NEW_ARRAY(NO_SUCH_DEX_INSTRUCTION, NO_SUCH_DEX_INSTRUCTION),
- CUSTOM(DexInvokeCustom.OPCODE, DexInvokeCustomRange.OPCODE),
- POLYMORPHIC(DexInvokePolymorphic.OPCODE, DexInvokePolymorphicRange.OPCODE);
-
- private final int dexOpcode;
- private final int dexOpcodeRange;
-
- Type(int dexOpcode, int dexOpcodeRange) {
- this.dexOpcode = dexOpcode;
- this.dexOpcodeRange = dexOpcodeRange;
- }
-
- public static Type fromCfOpcode(
- int opcode, DexMethod invokedMethod, DexClassAndMethod context, AppView<?> appView) {
- return fromCfOpcode(opcode, invokedMethod, context, appView, appView.codeLens());
- }
-
- public static Type fromCfOpcode(
- int opcode,
- DexMethod invokedMethod,
- DexClassAndMethod context,
- AppView<?> appView,
- GraphLens codeLens) {
- switch (opcode) {
- case Opcodes.INVOKEINTERFACE:
- return Type.INTERFACE;
- case Opcodes.INVOKESPECIAL:
- return fromInvokeSpecial(invokedMethod, context, appView, codeLens);
- case Opcodes.INVOKESTATIC:
- return Type.STATIC;
- case Opcodes.INVOKEVIRTUAL:
- return appView.dexItemFactory().polymorphicMethods.isPolymorphicInvoke(invokedMethod)
- && !appView.options().shouldDesugarVarHandle()
- ? Type.POLYMORPHIC
- : Type.VIRTUAL;
- default:
- throw new Unreachable("unknown CfInvoke opcode " + opcode);
- }
- }
-
- public static Type fromInvokeSpecial(
- DexMethod invokedMethod,
- DexClassAndMethod context,
- AppView<?> appView,
- GraphLens codeLens) {
- if (invokedMethod.isInstanceInitializer(appView.dexItemFactory())) {
- return Type.DIRECT;
- }
-
- GraphLens graphLens = appView.graphLens();
- DexMethod originalContext =
- graphLens.getOriginalMethodSignature(context.getReference(), codeLens);
- if (invokedMethod.getHolderType() != originalContext.getHolderType()) {
- if (appView.options().isGeneratingDex()
- && appView.options().canUseNestBasedAccess()
- && context.getHolder().isInANest()) {
- DexClass holderType = appView.definitionFor(invokedMethod.getHolderType());
- if (holderType != null
- && holderType.isInANest()
- && holderType.isInSameNest(context.getHolder())) {
- return Type.DIRECT;
- }
- }
- return Type.SUPER;
- }
-
- MethodLookupResult lookupResult =
- graphLens.lookupMethod(invokedMethod, context.getReference(), Type.DIRECT);
- if (lookupResult.getType().isStatic()) {
- // This method has been staticized. The original invoke-type is DIRECT.
- return Type.DIRECT;
- }
- if (lookupResult.getType().isVirtual()) {
- // This method has been publicized. The original invoke-type is DIRECT.
- return Type.DIRECT;
- }
-
- DexEncodedMethod definition = context.getHolder().lookupMethod(lookupResult.getReference());
- if (definition == null) {
- return Type.SUPER;
- }
-
- // If the definition was moved to the current context from a super class due to vertical class
- // merging, then this used to be an invoke-super.
- DexType originalHolderOfDefinition =
- graphLens.getOriginalMethodSignature(definition.getReference(), codeLens).getHolderType();
- if (originalHolderOfDefinition != originalContext.getHolderType()) {
- return Type.SUPER;
- }
-
- boolean originalContextIsInterface =
- context.getHolder().isInterface()
- || (appView.hasVerticallyMergedClasses()
- && appView
- .verticallyMergedClasses()
- .hasInterfaceBeenMergedIntoSubtype(originalContext.getHolderType()));
- if (originalContextIsInterface) {
- // On interfaces invoke-special should be mapped to invoke-super if the invoke-special
- // instruction is used to target a default interface method.
- if (definition.belongsToVirtualPool()) {
- return Type.SUPER;
- }
- } else {
- // Due to desugaring of invoke-special instructions that target virtual methods, this should
- // never target a virtual method.
- assert definition.isPrivate() || lookupResult.getType().isVirtual();
- }
-
- return Type.DIRECT;
- }
-
- public int getCfOpcode() {
- switch (this) {
- case DIRECT:
- return Opcodes.INVOKESPECIAL;
- case INTERFACE:
- return Opcodes.INVOKEINTERFACE;
- case POLYMORPHIC:
- return Opcodes.INVOKEVIRTUAL;
- case STATIC:
- return Opcodes.INVOKESTATIC;
- case SUPER:
- return Opcodes.INVOKESPECIAL;
- case VIRTUAL:
- return Opcodes.INVOKEVIRTUAL;
- case NEW_ARRAY:
- case MULTI_NEW_ARRAY:
- default:
- throw new Unreachable();
- }
- }
-
- public int getDexOpcode() {
- assert dexOpcode >= 0;
- return dexOpcode;
- }
-
- public int getDexOpcodeRange() {
- assert dexOpcodeRange >= 0;
- return dexOpcodeRange;
- }
-
- public boolean isDirect() {
- return this == DIRECT;
- }
-
- public boolean isInterface() {
- return this == INTERFACE;
- }
-
- public boolean isStatic() {
- return this == STATIC;
- }
-
- public boolean isSuper() {
- return this == SUPER;
- }
-
- public boolean isVirtual() {
- return this == VIRTUAL;
- }
-
- public MethodHandleType toMethodHandle(DexMethod targetMethod) {
- switch (this) {
- case STATIC:
- return MethodHandleType.INVOKE_STATIC;
- case VIRTUAL:
- return MethodHandleType.INVOKE_INSTANCE;
- case DIRECT:
- if (targetMethod.name.toString().equals("<init>")) {
- return MethodHandleType.INVOKE_CONSTRUCTOR;
- } else {
- return MethodHandleType.INVOKE_DIRECT;
- }
- case INTERFACE:
- return MethodHandleType.INVOKE_INTERFACE;
- case SUPER:
- return MethodHandleType.INVOKE_SUPER;
- default:
- throw new Unreachable(
- "Conversion to method handle with unexpected invoke type: " + this);
- }
- }
- }
+ static final int NO_SUCH_DEX_INSTRUCTION = -1;
protected Invoke(Value result, List<Value> arguments) {
super(result, arguments);
@@ -246,12 +32,17 @@
@Deprecated
public static Invoke create(
- Type type, DexItem target, DexProto proto, Value result, List<Value> arguments) {
+ InvokeType type, DexItem target, DexProto proto, Value result, List<Value> arguments) {
return create(type, target, proto, result, arguments, false);
}
public static Invoke create(
- Type type, DexItem target, DexProto proto, Value result, List<Value> arguments, boolean itf) {
+ InvokeType type,
+ DexItem target,
+ DexProto proto,
+ Value result,
+ List<Value> arguments,
+ boolean itf) {
switch (type) {
case DIRECT:
return new InvokeDirect((DexMethod) target, result, arguments, itf);
@@ -275,7 +66,7 @@
throw new Unreachable("Unknown invoke type: " + type);
}
- abstract public Type getType();
+ public abstract InvokeType getType();
abstract public DexType getReturnType();
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
index 75a13c9..4fa5742 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeCustom.java
@@ -111,8 +111,8 @@
}
@Override
- public Type getType() {
- return Type.CUSTOM;
+ public InvokeType getType() {
+ return InvokeType.CUSTOM;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java b/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
index 14fdd11..e200a72 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeDirect.java
@@ -69,8 +69,8 @@
}
@Override
- public Type getType() {
- return Type.DIRECT;
+ public InvokeType getType() {
+ return InvokeType.DIRECT;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java b/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
index 0f0deab..94ba6c4 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeInterface.java
@@ -51,8 +51,8 @@
}
@Override
- public Type getType() {
- return Type.INTERFACE;
+ public InvokeType getType() {
+ return InvokeType.INTERFACE;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
index ec23162..7f5c809 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeMethod.java
@@ -51,7 +51,7 @@
}
public static InvokeMethod create(
- Type type, DexMethod target, Value result, List<Value> arguments, boolean itf) {
+ InvokeType type, DexMethod target, Value result, List<Value> arguments, boolean itf) {
switch (type) {
case DIRECT:
return new InvokeDirect(target, result, arguments, itf);
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java b/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
index de12658..47fc4f9 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeMultiNewArray.java
@@ -54,8 +54,8 @@
}
@Override
- public Type getType() {
- return Type.MULTI_NEW_ARRAY;
+ public InvokeType getType() {
+ return InvokeType.MULTI_NEW_ARRAY;
}
public DexType getArrayType() {
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java b/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
index f0715b5..52d38b3 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeNewArray.java
@@ -57,8 +57,8 @@
}
@Override
- public Type getType() {
- return Type.NEW_ARRAY;
+ public InvokeType getType() {
+ return InvokeType.NEW_ARRAY;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java b/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
index c09c441..08b3ab8 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokePolymorphic.java
@@ -58,8 +58,8 @@
}
@Override
- public Type getType() {
- return Type.POLYMORPHIC;
+ public InvokeType getType() {
+ return InvokeType.POLYMORPHIC;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java b/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
index ecc7327..1bf7eb7 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeStatic.java
@@ -66,8 +66,8 @@
}
@Override
- public Type getType() {
- return Type.STATIC;
+ public InvokeType getType() {
+ return InvokeType.STATIC;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
index ae47eb6..0b7dce8 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeSuper.java
@@ -50,8 +50,8 @@
}
@Override
- public Type getType() {
- return Type.SUPER;
+ public InvokeType getType() {
+ return InvokeType.SUPER;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeType.java b/src/main/java/com/android/tools/r8/ir/code/InvokeType.java
new file mode 100644
index 0000000..214b6db
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeType.java
@@ -0,0 +1,219 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.ir.code;
+
+import com.android.tools.r8.dex.code.DexInvokeCustom;
+import com.android.tools.r8.dex.code.DexInvokeCustomRange;
+import com.android.tools.r8.dex.code.DexInvokeDirect;
+import com.android.tools.r8.dex.code.DexInvokeDirectRange;
+import com.android.tools.r8.dex.code.DexInvokeInterface;
+import com.android.tools.r8.dex.code.DexInvokeInterfaceRange;
+import com.android.tools.r8.dex.code.DexInvokePolymorphic;
+import com.android.tools.r8.dex.code.DexInvokePolymorphicRange;
+import com.android.tools.r8.dex.code.DexInvokeStatic;
+import com.android.tools.r8.dex.code.DexInvokeStaticRange;
+import com.android.tools.r8.dex.code.DexInvokeSuper;
+import com.android.tools.r8.dex.code.DexInvokeSuperRange;
+import com.android.tools.r8.dex.code.DexInvokeVirtual;
+import com.android.tools.r8.dex.code.DexInvokeVirtualRange;
+import com.android.tools.r8.dex.code.DexNewArray;
+import com.android.tools.r8.errors.Unreachable;
+import com.android.tools.r8.graph.AppView;
+import com.android.tools.r8.graph.DexClass;
+import com.android.tools.r8.graph.DexClassAndMethod;
+import com.android.tools.r8.graph.DexEncodedMethod;
+import com.android.tools.r8.graph.DexMethod;
+import com.android.tools.r8.graph.DexMethodHandle.MethodHandleType;
+import com.android.tools.r8.graph.DexType;
+import com.android.tools.r8.graph.GraphLens;
+import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
+import org.objectweb.asm.Opcodes;
+
+public enum InvokeType {
+ DIRECT(DexInvokeDirect.OPCODE, DexInvokeDirectRange.OPCODE),
+ INTERFACE(DexInvokeInterface.OPCODE, DexInvokeInterfaceRange.OPCODE),
+ STATIC(DexInvokeStatic.OPCODE, DexInvokeStaticRange.OPCODE),
+ SUPER(DexInvokeSuper.OPCODE, DexInvokeSuperRange.OPCODE),
+ VIRTUAL(DexInvokeVirtual.OPCODE, DexInvokeVirtualRange.OPCODE),
+ NEW_ARRAY(DexNewArray.OPCODE, Invoke.NO_SUCH_DEX_INSTRUCTION),
+ MULTI_NEW_ARRAY(Invoke.NO_SUCH_DEX_INSTRUCTION, Invoke.NO_SUCH_DEX_INSTRUCTION),
+ CUSTOM(DexInvokeCustom.OPCODE, DexInvokeCustomRange.OPCODE),
+ POLYMORPHIC(DexInvokePolymorphic.OPCODE, DexInvokePolymorphicRange.OPCODE);
+
+ private final int dexOpcode;
+ private final int dexOpcodeRange;
+
+ InvokeType(int dexOpcode, int dexOpcodeRange) {
+ this.dexOpcode = dexOpcode;
+ this.dexOpcodeRange = dexOpcodeRange;
+ }
+
+ public static InvokeType fromCfOpcode(
+ int opcode, DexMethod invokedMethod, DexClassAndMethod context, AppView<?> appView) {
+ return fromCfOpcode(opcode, invokedMethod, context, appView, appView.codeLens());
+ }
+
+ public static InvokeType fromCfOpcode(
+ int opcode,
+ DexMethod invokedMethod,
+ DexClassAndMethod context,
+ AppView<?> appView,
+ GraphLens codeLens) {
+ switch (opcode) {
+ case org.objectweb.asm.Opcodes.INVOKEINTERFACE:
+ return InvokeType.INTERFACE;
+ case org.objectweb.asm.Opcodes.INVOKESPECIAL:
+ return fromInvokeSpecial(invokedMethod, context, appView, codeLens);
+ case org.objectweb.asm.Opcodes.INVOKESTATIC:
+ return InvokeType.STATIC;
+ case org.objectweb.asm.Opcodes.INVOKEVIRTUAL:
+ return appView.dexItemFactory().polymorphicMethods.isPolymorphicInvoke(invokedMethod)
+ && !appView.options().shouldDesugarVarHandle()
+ ? InvokeType.POLYMORPHIC
+ : InvokeType.VIRTUAL;
+ default:
+ throw new Unreachable("unknown CfInvoke opcode " + opcode);
+ }
+ }
+
+ public static InvokeType fromInvokeSpecial(
+ DexMethod invokedMethod, DexClassAndMethod context, AppView<?> appView, GraphLens codeLens) {
+ if (invokedMethod.isInstanceInitializer(appView.dexItemFactory())) {
+ return InvokeType.DIRECT;
+ }
+
+ GraphLens graphLens = appView.graphLens();
+ DexMethod originalContext =
+ graphLens.getOriginalMethodSignature(context.getReference(), codeLens);
+ if (invokedMethod.getHolderType() != originalContext.getHolderType()) {
+ if (appView.options().isGeneratingDex()
+ && appView.options().canUseNestBasedAccess()
+ && context.getHolder().isInANest()) {
+ DexClass holderType = appView.definitionFor(invokedMethod.getHolderType());
+ if (holderType != null
+ && holderType.isInANest()
+ && holderType.isInSameNest(context.getHolder())) {
+ return InvokeType.DIRECT;
+ }
+ }
+ return InvokeType.SUPER;
+ }
+
+ MethodLookupResult lookupResult =
+ graphLens.lookupMethod(invokedMethod, context.getReference(), InvokeType.DIRECT);
+ if (lookupResult.getType().isStatic()) {
+ // This method has been staticized. The original invoke-type is DIRECT.
+ return InvokeType.DIRECT;
+ }
+ if (lookupResult.getType().isVirtual()) {
+ // This method has been publicized. The original invoke-type is DIRECT.
+ return InvokeType.DIRECT;
+ }
+
+ DexEncodedMethod definition = context.getHolder().lookupMethod(lookupResult.getReference());
+ if (definition == null) {
+ return InvokeType.SUPER;
+ }
+
+ // If the definition was moved to the current context from a super class due to vertical class
+ // merging, then this used to be an invoke-super.
+ DexType originalHolderOfDefinition =
+ graphLens.getOriginalMethodSignature(definition.getReference(), codeLens).getHolderType();
+ if (originalHolderOfDefinition != originalContext.getHolderType()) {
+ return InvokeType.SUPER;
+ }
+
+ boolean originalContextIsInterface =
+ context.getHolder().isInterface()
+ || (appView.hasVerticallyMergedClasses()
+ && appView
+ .verticallyMergedClasses()
+ .hasInterfaceBeenMergedIntoSubtype(originalContext.getHolderType()));
+ if (originalContextIsInterface) {
+ // On interfaces invoke-special should be mapped to invoke-super if the invoke-special
+ // instruction is used to target a default interface method.
+ if (definition.belongsToVirtualPool()) {
+ return InvokeType.SUPER;
+ }
+ } else {
+ // Due to desugaring of invoke-special instructions that target virtual methods, this should
+ // never target a virtual method.
+ assert definition.isPrivate() || lookupResult.getType().isVirtual();
+ }
+
+ return InvokeType.DIRECT;
+ }
+
+ public int getCfOpcode() {
+ switch (this) {
+ case DIRECT:
+ return org.objectweb.asm.Opcodes.INVOKESPECIAL;
+ case INTERFACE:
+ return org.objectweb.asm.Opcodes.INVOKEINTERFACE;
+ case POLYMORPHIC:
+ return org.objectweb.asm.Opcodes.INVOKEVIRTUAL;
+ case STATIC:
+ return org.objectweb.asm.Opcodes.INVOKESTATIC;
+ case SUPER:
+ return org.objectweb.asm.Opcodes.INVOKESPECIAL;
+ case VIRTUAL:
+ return Opcodes.INVOKEVIRTUAL;
+ case NEW_ARRAY:
+ case MULTI_NEW_ARRAY:
+ default:
+ throw new Unreachable();
+ }
+ }
+
+ public int getDexOpcode() {
+ assert dexOpcode >= 0;
+ return dexOpcode;
+ }
+
+ public int getDexOpcodeRange() {
+ assert dexOpcodeRange >= 0;
+ return dexOpcodeRange;
+ }
+
+ public boolean isDirect() {
+ return this == DIRECT;
+ }
+
+ public boolean isInterface() {
+ return this == INTERFACE;
+ }
+
+ public boolean isStatic() {
+ return this == STATIC;
+ }
+
+ public boolean isSuper() {
+ return this == SUPER;
+ }
+
+ public boolean isVirtual() {
+ return this == VIRTUAL;
+ }
+
+ public MethodHandleType toMethodHandle(DexMethod targetMethod) {
+ switch (this) {
+ case STATIC:
+ return MethodHandleType.INVOKE_STATIC;
+ case VIRTUAL:
+ return MethodHandleType.INVOKE_INSTANCE;
+ case DIRECT:
+ if (targetMethod.name.toString().equals("<init>")) {
+ return MethodHandleType.INVOKE_CONSTRUCTOR;
+ } else {
+ return MethodHandleType.INVOKE_DIRECT;
+ }
+ case INTERFACE:
+ return MethodHandleType.INVOKE_INTERFACE;
+ case SUPER:
+ return MethodHandleType.INVOKE_SUPER;
+ default:
+ throw new Unreachable("Conversion to method handle with unexpected invoke type: " + this);
+ }
+ }
+}
diff --git a/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java b/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
index 3cee2ff..8d77e02 100644
--- a/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
+++ b/src/main/java/com/android/tools/r8/ir/code/InvokeVirtual.java
@@ -57,8 +57,8 @@
}
@Override
- public Type getType() {
- return Type.VIRTUAL;
+ public InvokeType getType() {
+ return InvokeType.VIRTUAL;
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/code/Monitor.java b/src/main/java/com/android/tools/r8/ir/code/Monitor.java
index 1e00e9b..3f5727b 100644
--- a/src/main/java/com/android/tools/r8/ir/code/Monitor.java
+++ b/src/main/java/com/android/tools/r8/ir/code/Monitor.java
@@ -20,13 +20,9 @@
public class Monitor extends Instruction {
- public enum Type {
- ENTER, EXIT
- }
+ private final MonitorType type;
- private final Type type;
-
- public Monitor(Type type, Value object) {
+ public Monitor(MonitorType type, Value object) {
super(null, object);
this.type = type;
}
@@ -46,11 +42,11 @@
}
public boolean isEnter() {
- return type == Type.ENTER;
+ return type == MonitorType.ENTER;
}
public boolean isExit() {
- return type == Type.EXIT;
+ return type == MonitorType.EXIT;
}
@Override
@@ -64,7 +60,7 @@
if (object > maxInValueRegister()) {
object = builder.allocatedRegister(object(), getNumber());
}
- if (type == Type.ENTER) {
+ if (type == MonitorType.ENTER) {
builder.add(this, new DexMonitorEnter(object));
} else {
builder.add(this, new DexMonitorExit(object));
diff --git a/src/main/java/com/android/tools/r8/ir/code/MonitorType.java b/src/main/java/com/android/tools/r8/ir/code/MonitorType.java
new file mode 100644
index 0000000..5e6fa95
--- /dev/null
+++ b/src/main/java/com/android/tools/r8/ir/code/MonitorType.java
@@ -0,0 +1,9 @@
+// Copyright (c) 2023, the R8 project authors. Please see the AUTHORS file
+// for details. All rights reserved. Use of this source code is governed by a
+// BSD-style license that can be found in the LICENSE file.
+package com.android.tools.r8.ir.code;
+
+public enum MonitorType {
+ ENTER,
+ EXIT
+}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java b/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
index 60d5807..602effc 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/CfSourceCode.java
@@ -33,6 +33,7 @@
import com.android.tools.r8.ir.code.CanonicalPositions;
import com.android.tools.r8.ir.code.CatchHandlers;
import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.Phi.RegisterReadType;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.ValueType;
@@ -444,7 +445,7 @@
monitorRegister = state.read(0).register;
}
// Build the monitor enter and save it for when generating exits later.
- monitorEnter = builder.addMonitor(Monitor.Type.ENTER, monitorRegister);
+ monitorEnter = builder.addMonitor(MonitorType.ENTER, monitorRegister);
currentlyGeneratingMethodSynchronization = false;
}
@@ -452,7 +453,7 @@
assert needsGeneratedMethodSynchronization;
currentlyGeneratingMethodSynchronization = true;
state.setPosition(getCanonicalDebugPositionAtOffset(EXCEPTIONAL_SYNC_EXIT_OFFSET));
- builder.add(new Monitor(Monitor.Type.EXIT, monitorEnter.inValues().get(0)));
+ builder.add(new Monitor(MonitorType.EXIT, monitorEnter.inValues().get(0)));
builder.addThrow(getMoveExceptionRegister(0));
currentlyGeneratingMethodSynchronization = false;
}
@@ -461,7 +462,7 @@
public void buildPostlude(IRBuilder builder) {
if (needsGeneratedMethodSynchronization) {
currentlyGeneratingMethodSynchronization = true;
- builder.add(new Monitor(Monitor.Type.EXIT, monitorEnter.inValues().get(0)));
+ builder.add(new Monitor(MonitorType.EXIT, monitorEnter.inValues().get(0)));
currentlyGeneratingMethodSynchronization = false;
}
}
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 a091553..a7aa00b 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
@@ -72,6 +72,7 @@
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.IRMetadata;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction;
import com.android.tools.r8.ir.code.InitClass;
import com.android.tools.r8.ir.code.InstanceGet;
@@ -81,11 +82,12 @@
import com.android.tools.r8.ir.code.InstructionListIterator;
import com.android.tools.r8.ir.code.IntSwitch;
import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
import com.android.tools.r8.ir.code.InvokeCustom;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.JumpInstruction;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.MoveException;
import com.android.tools.r8.ir.code.Mul;
import com.android.tools.r8.ir.code.Neg;
@@ -1290,7 +1292,7 @@
add(instruction);
}
- public Monitor addMonitor(Monitor.Type type, int monitor) {
+ public Monitor addMonitor(MonitorType type, int monitor) {
Value in = readRegister(monitor, ValueTypeConstraint.OBJECT);
Monitor monitorEnter = new Monitor(type, in);
add(monitorEnter);
@@ -1404,8 +1406,13 @@
closeCurrentBlock(instruction);
}
- public void addIf(If.Type type, ValueType operandType, int value1, int value2,
- int trueTargetOffset, int falseTargetOffset) {
+ public void addIf(
+ IfType type,
+ ValueType operandType,
+ int value1,
+ int value2,
+ int trueTargetOffset,
+ int falseTargetOffset) {
addIf(
type,
ValueTypeConstraint.fromValueType(operandType),
@@ -1416,7 +1423,7 @@
}
public void addIf(
- If.Type type,
+ IfType type,
ValueTypeConstraint operandConstraint,
int value1,
int value2,
@@ -1434,7 +1441,7 @@
}
public void addIfZero(
- If.Type type, ValueType operandType, int value, int trueTargetOffset, int falseTargetOffset) {
+ IfType type, ValueType operandType, int value, int trueTargetOffset, int falseTargetOffset) {
addIfZero(
type,
ValueTypeConstraint.fromValueType(operandType),
@@ -1444,7 +1451,7 @@
}
public void addIfZero(
- If.Type type,
+ IfType type,
ValueTypeConstraint operandConstraint,
int value,
int trueTargetOffset,
@@ -1498,8 +1505,8 @@
add(new RecordFieldValues(fields, out, arguments));
}
- private boolean verifyRepresentablePolymorphicInvoke(Type type, DexItem item) {
- if (type != Type.POLYMORPHIC) {
+ private boolean verifyRepresentablePolymorphicInvoke(InvokeType type, DexItem item) {
+ if (type != InvokeType.POLYMORPHIC) {
return true;
}
assert item instanceof DexMethod;
@@ -1513,13 +1520,13 @@
}
public void addInvoke(
- Type type, DexItem item, DexProto callSiteProto, List<Value> arguments, boolean itf) {
+ InvokeType type, DexItem item, DexProto callSiteProto, List<Value> arguments, boolean itf) {
assert verifyRepresentablePolymorphicInvoke(type, item);
add(Invoke.create(type, item, callSiteProto, null, arguments, itf));
}
public void addInvoke(
- Type type,
+ InvokeType type,
DexItem item,
DexProto callSiteProto,
List<ValueType> types,
@@ -1590,7 +1597,7 @@
}
public void addInvokeRegisters(
- Invoke.Type type,
+ InvokeType type,
DexMethod method,
DexProto callSiteProto,
int argumentRegisterCount,
@@ -1599,12 +1606,12 @@
// but it is an upper bound on the number of arguments.
List<Value> arguments = new ArrayList<>(argumentRegisterCount);
int registerIndex = 0;
- if (type != Invoke.Type.STATIC) {
+ if (type != InvokeType.STATIC) {
arguments.add(readRegister(argumentRegisters[registerIndex], ValueTypeConstraint.OBJECT));
registerIndex += ValueTypeConstraint.OBJECT.requiredRegisters();
}
DexString methodShorty;
- if (type == Invoke.Type.POLYMORPHIC) {
+ if (type == InvokeType.POLYMORPHIC) {
// The call site signature for invoke polymorphic must be take from call site and not from
// the called method.
methodShorty = callSiteProto.shorty;
@@ -1640,7 +1647,7 @@
registerIndex += constraint.requiredRegisters();
}
checkInvokeArgumentRegisters(registerIndex, argumentCount);
- addInvoke(Invoke.Type.NEW_ARRAY, type, null, arguments, false /* isInterface */);
+ addInvoke(InvokeType.NEW_ARRAY, type, null, arguments, false /* isInterface */);
}
public void addMultiNewArray(DexType type, int dest, int[] dimensions) {
@@ -1649,12 +1656,12 @@
for (int dimension : dimensions) {
arguments.add(readRegister(dimension, ValueTypeConstraint.INT));
}
- addInvoke(Invoke.Type.MULTI_NEW_ARRAY, type, null, arguments, false /* isInterface */);
+ addInvoke(InvokeType.MULTI_NEW_ARRAY, type, null, arguments, false /* isInterface */);
addMoveResult(dest);
}
public void addInvokeRange(
- Invoke.Type type,
+ InvokeType type,
DexMethod method,
DexProto callSiteProto,
int argumentCount,
@@ -1663,12 +1670,12 @@
// is an upper bound on the number of arguments.
List<Value> arguments = new ArrayList<>(argumentCount);
int register = firstArgumentRegister;
- if (type != Invoke.Type.STATIC) {
+ if (type != InvokeType.STATIC) {
arguments.add(readRegister(register, ValueTypeConstraint.OBJECT));
register += ValueTypeConstraint.OBJECT.requiredRegisters();
}
DexString methodShorty;
- if (type == Invoke.Type.POLYMORPHIC) {
+ if (type == InvokeType.POLYMORPHIC) {
// The call site signature for invoke polymorphic must be take from call site and not from
// the called method.
methodShorty = callSiteProto.shorty;
@@ -1703,7 +1710,7 @@
checkInvokeArgumentRegisters(register, firstArgumentRegister + argumentCount);
// Note: We only call this register variant from DEX inputs where isInterface does not matter.
assert appView.options().isGeneratingDex();
- addInvoke(Invoke.Type.NEW_ARRAY, type, null, arguments, false /* isInterface */);
+ addInvoke(InvokeType.NEW_ARRAY, type, null, arguments, false /* isInterface */);
}
private void checkInvokeArgumentRegisters(int expected, int actual) {
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 173161f..80abf84 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
@@ -4,7 +4,7 @@
package com.android.tools.r8.ir.conversion;
import static com.android.tools.r8.graph.UseRegistry.MethodHandleUse.NOT_ARGUMENT_TO_LAMBDA_METAFACTORY;
-import static com.android.tools.r8.ir.code.Invoke.Type.VIRTUAL;
+import static com.android.tools.r8.ir.code.InvokeType.VIRTUAL;
import static com.android.tools.r8.ir.code.Opcodes.ARGUMENT;
import static com.android.tools.r8.ir.code.Opcodes.ASSUME;
import static com.android.tools.r8.ir.code.Opcodes.CHECK_CAST;
@@ -89,6 +89,7 @@
import com.android.tools.r8.ir.code.InvokeMultiNewArray;
import com.android.tools.r8.ir.code.InvokeNewArray;
import com.android.tools.r8.ir.code.InvokePolymorphic;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.MoveException;
import com.android.tools.r8.ir.code.NewArrayEmpty;
import com.android.tools.r8.ir.code.NewInstance;
@@ -374,7 +375,7 @@
graphLens.lookupMethod(
invokedMethod, method.getReference(), invoke.getType(), codeLens);
DexMethod actualTarget = lensLookup.getReference();
- Invoke.Type actualInvokeType = lensLookup.getType();
+ InvokeType actualInvokeType = lensLookup.getType();
int numberOfArguments =
actualTarget.getNumberOfArguments(actualInvokeType.isStatic());
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriterUtils.java b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriterUtils.java
index eb12093..aefb54d 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriterUtils.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/LensCodeRewriterUtils.java
@@ -27,7 +27,7 @@
import com.android.tools.r8.graph.GraphLens.MethodLookupResult;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.UseRegistry.MethodHandleUse;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.desugar.LambdaDescriptor;
import java.util.ArrayList;
import java.util.List;
@@ -112,7 +112,7 @@
LambdaDescriptor.getMainFunctionalInterfaceMethodReference(
callSite, definitions.dexItemFactory());
return graphLens
- .lookupMethod(method, context.getReference(), Invoke.Type.INTERFACE, codeLens)
+ .lookupMethod(method, context.getReference(), InvokeType.INTERFACE, codeLens)
.getReference()
.getName();
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
index a377238..f08253d 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchConverter.java
@@ -15,6 +15,7 @@
import com.android.tools.r8.ir.code.Goto;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionIterator;
import com.android.tools.r8.ir.code.IntSwitch;
@@ -432,7 +433,7 @@
}
private StringToIdMapping extendWithIf(StringToIdMapping toBeExtended, If theIf) {
- if (theIf.getType() != If.Type.EQ && theIf.getType() != If.Type.NE) {
+ if (theIf.getType() != IfType.EQ && theIf.getType() != IfType.NE) {
// Not an extension of `toBeExtended`.
return toBeExtended;
}
@@ -562,7 +563,7 @@
if (theIf == null) {
return false;
}
- if (theIf.getType() != If.Type.EQ && theIf.getType() != If.Type.NE) {
+ if (theIf.getType() != IfType.EQ && theIf.getType() != IfType.NE) {
return false;
}
@@ -713,8 +714,8 @@
private IdToTargetMapping extendWithIf(
IdToTargetMapping toBeExtended, If theIf, BasicBlock fallthroughBlock) {
- If.Type type = theIf.getType();
- if (type != If.Type.EQ && type != If.Type.NE) {
+ IfType type = theIf.getType();
+ if (type != IfType.EQ && type != IfType.NE) {
// Not an extension of `toBeExtended`.
return setFallthroughBlock(toBeExtended, fallthroughBlock);
}
@@ -797,14 +798,14 @@
static class Utils {
static BasicBlock getTrueTarget(If theIf) {
- assert theIf.getType() == If.Type.EQ || theIf.getType() == If.Type.NE;
- return theIf.getType() == If.Type.EQ ? theIf.getTrueTarget() : theIf.fallthroughBlock();
+ assert theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE;
+ return theIf.getType() == IfType.EQ ? theIf.getTrueTarget() : theIf.fallthroughBlock();
}
static BasicBlock fallthroughBlock(JumpInstruction exit) {
if (exit.isIf()) {
If theIf = exit.asIf();
- return theIf.getType() == If.Type.EQ ? theIf.fallthroughBlock() : theIf.getTrueTarget();
+ return theIf.getType() == IfType.EQ ? theIf.fallthroughBlock() : theIf.getTrueTarget();
}
if (exit.isIntSwitch()) {
return exit.asIntSwitch().fallthroughBlock();
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
index ab6e97d..8def4db 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/StringSwitchRemover.java
@@ -18,7 +18,7 @@
import com.android.tools.r8.ir.code.Goto;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionListIterator;
import com.android.tools.r8.ir.code.IntSwitch;
@@ -227,7 +227,7 @@
code.createValue(PrimitiveTypeElement.getInt()),
ImmutableList.of(stringValue, constStringInstruction.outValue()));
invokeInstruction.setPosition(position);
- If ifInstruction = new If(If.Type.NE, invokeInstruction.outValue());
+ If ifInstruction = new If(IfType.NE, invokeInstruction.outValue());
ifInstruction.setPosition(Position.none());
BasicBlock targetBlock = entry.getValue();
if (blocksTargetedByMultipleSwitchCases.contains(targetBlock)) {
@@ -458,7 +458,7 @@
// Insert `if (equalsKey) goto <id-switch-block> else goto <continuation-block>`.
instructionIterator.next();
- instructionIterator.replaceCurrentInstruction(new If(Type.NE, equalsInvoke.outValue()));
+ instructionIterator.replaceCurrentInstruction(new If(IfType.NE, equalsInvoke.outValue()));
current = continuationBlock;
}
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 d9f8625..2c6e476 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
@@ -13,6 +13,7 @@
import com.android.tools.r8.ir.code.BasicBlock;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ImpreciseMemberTypeInstruction;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.MemberType;
@@ -121,8 +122,8 @@
if (instruction.isIf() && instruction.inValues().size() == 2) {
If ifInstruction = instruction.asIf();
assert !ifInstruction.isZeroTest();
- If.Type type = ifInstruction.getType();
- if (type == If.Type.EQ || type == If.Type.NE) {
+ IfType type = ifInstruction.getType();
+ if (type == IfType.EQ || type == IfType.NE) {
merge(ifInstruction.inValues().get(0), ifInstruction.inValues().get(1));
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/conversion/callgraph/InvokeExtractor.java b/src/main/java/com/android/tools/r8/ir/conversion/callgraph/InvokeExtractor.java
index 3fc7ad0..3c940a6 100644
--- a/src/main/java/com/android/tools/r8/ir/conversion/callgraph/InvokeExtractor.java
+++ b/src/main/java/com/android/tools/r8/ir/conversion/callgraph/InvokeExtractor.java
@@ -16,7 +16,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.collections.ProgramMethodSet;
import java.util.Map;
@@ -67,18 +67,18 @@
nodeFactory.apply(callee).addCallerConcurrently(currentMethod, likelySpuriousCallEdge);
}
- private void processInvoke(Invoke.Type originalType, DexMethod originalMethod) {
+ private void processInvoke(InvokeType originalType, DexMethod originalMethod) {
ProgramMethod context = currentMethod.getProgramMethod();
MethodLookupResult result =
appView
.graphLens()
.lookupMethod(originalMethod, context.getReference(), originalType, getCodeLens());
DexMethod method = result.getReference();
- Invoke.Type type = result.getType();
- if (type == Invoke.Type.INTERFACE || type == Invoke.Type.VIRTUAL) {
+ InvokeType type = result.getType();
+ if (type == InvokeType.INTERFACE || type == InvokeType.VIRTUAL) {
// For virtual and interface calls add all potential targets that could be called.
MethodResolutionResult resolutionResult =
- appView.appInfo().resolveMethodLegacy(method, type == Invoke.Type.INTERFACE);
+ appView.appInfo().resolveMethodLegacy(method, type == InvokeType.INTERFACE);
DexClassAndMethod target = resolutionResult.getResolutionPair();
if (target != null) {
processInvokeWithDynamicDispatch(type, target, context);
@@ -99,7 +99,7 @@
}
protected void processInvokeWithDynamicDispatch(
- Invoke.Type type, DexClassAndMethod encodedTarget, ProgramMethod context) {
+ InvokeType type, DexClassAndMethod encodedTarget, ProgramMethod context) {
DexMethod target = encodedTarget.getReference();
DexClass clazz = encodedTarget.getHolder();
if (!appView.options().testing.addCallEdgesForLibraryInvokes) {
@@ -109,7 +109,7 @@
}
}
- boolean isInterface = type == Invoke.Type.INTERFACE;
+ boolean isInterface = type == InvokeType.INTERFACE;
ProgramMethodSet possibleProgramTargets =
possibleProgramTargetsCache.computeIfAbsent(
target,
@@ -161,27 +161,27 @@
@Override
public void registerInvokeDirect(DexMethod method) {
- processInvoke(Invoke.Type.DIRECT, method);
+ processInvoke(InvokeType.DIRECT, method);
}
@Override
public void registerInvokeInterface(DexMethod method) {
- processInvoke(Invoke.Type.INTERFACE, method);
+ processInvoke(InvokeType.INTERFACE, method);
}
@Override
public void registerInvokeStatic(DexMethod method) {
- processInvoke(Invoke.Type.STATIC, method);
+ processInvoke(InvokeType.STATIC, method);
}
@Override
public void registerInvokeSuper(DexMethod method) {
- processInvoke(Invoke.Type.SUPER, method);
+ processInvoke(InvokeType.SUPER, method);
}
@Override
public void registerInvokeVirtual(DexMethod method) {
- processInvoke(Invoke.Type.VIRTUAL, method);
+ processInvoke(InvokeType.VIRTUAL, method);
}
@Override
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
index f9d4355..8a9aa86 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaClass.java
@@ -29,8 +29,7 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.desugar.lambda.ForcefullyMovedLambdaMethodConsumer;
import com.android.tools.r8.ir.desugar.lambda.LambdaInstructionDesugaring;
import com.android.tools.r8.ir.desugar.lambda.LambdaInstructionDesugaring.DesugarInvoke;
@@ -383,7 +382,7 @@
if (resolution.isFailedResolution()) {
return new InvalidLambdaImplTarget(
implMethod,
- Type.STATIC,
+ InvokeType.STATIC,
appView.dexItemFactory().icceType,
descriptor.implHandle.isInterface);
}
@@ -536,12 +535,12 @@
public abstract static class Target {
final DexMethod callTarget;
- final Invoke.Type invokeType;
+ final InvokeType invokeType;
final boolean isInterface;
private boolean hasEnsuredAccessibility;
- Target(DexMethod callTarget, Type invokeType, boolean isInterface) {
+ Target(DexMethod callTarget, InvokeType invokeType, boolean isInterface) {
assert callTarget != null;
assert invokeType != null;
this.callTarget = callTarget;
@@ -576,7 +575,7 @@
return callTarget;
}
- public Type getInvokeType() {
+ public InvokeType getInvokeType() {
return invokeType;
}
@@ -586,7 +585,7 @@
}
public abstract static class D8SpecificTarget extends Target {
- D8SpecificTarget(DexMethod callTarget, Type invokeType, boolean isInterface) {
+ D8SpecificTarget(DexMethod callTarget, InvokeType invokeType, boolean isInterface) {
super(callTarget, invokeType, isInterface);
}
}
@@ -601,7 +600,7 @@
descriptor.implHandle.isInterface);
}
- NoAccessorMethodTarget(DexMethod method, Type invokeType, boolean isInterface) {
+ NoAccessorMethodTarget(DexMethod method, InvokeType invokeType, boolean isInterface) {
super(method, invokeType, isInterface);
}
@@ -619,7 +618,7 @@
final ProgramMethod target;
StaticLambdaImplTarget(ProgramMethod target, boolean isInterface) {
- super(target.getReference(), Invoke.Type.STATIC, isInterface);
+ super(target.getReference(), InvokeType.STATIC, isInterface);
this.target = target;
}
@@ -646,7 +645,7 @@
InterfaceLambdaImplTarget(
DexMethod implMethod, boolean isInterface, DexMethod staticMethod, AppView<?> appView) {
- super(staticMethod, Type.STATIC, isInterface);
+ super(staticMethod, InvokeType.STATIC, isInterface);
this.implMethod = implMethod;
this.appView = appView;
}
@@ -721,7 +720,7 @@
final DexType exceptionType;
public InvalidLambdaImplTarget(
- DexMethod callTarget, Type invokeType, DexType exceptionType, boolean isInterface) {
+ DexMethod callTarget, InvokeType invokeType, DexType exceptionType, boolean isInterface) {
super(callTarget, invokeType, isInterface);
this.exceptionType = exceptionType;
}
@@ -742,7 +741,7 @@
InstanceLambdaImplTarget(
DexMethod implMethod, boolean isInterface, DexMethod staticMethod, AppView<?> appView) {
- super(staticMethod, Type.VIRTUAL, isInterface);
+ super(staticMethod, InvokeType.VIRTUAL, isInterface);
this.implMethod = implMethod;
this.appView = appView;
}
@@ -838,7 +837,7 @@
DexMethod accessorMethod,
boolean accessorIsInterface,
AppView<?> appView) {
- super(accessorMethod, Invoke.Type.STATIC, accessorIsInterface);
+ super(accessorMethod, InvokeType.STATIC, accessorIsInterface);
this.appView = appView;
this.implMethod = implMethod;
this.implMethodIsInterface = isInterface;
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java b/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
index eb5a2eb..9be92a4 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/LambdaMainMethodSourceCode.java
@@ -24,8 +24,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexProto;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.desugar.LambdaClass.InvalidLambdaImplTarget;
@@ -191,12 +190,12 @@
// Only constructor call should use direct invoke type since super
// and private methods require accessor methods.
boolean constructorTarget = methodToCall.name == factory.constructorMethodName;
- assert !constructorTarget || target.invokeType == Type.DIRECT;
+ assert !constructorTarget || target.invokeType == InvokeType.DIRECT;
boolean targetWithReceiver =
- target.invokeType == Invoke.Type.VIRTUAL
- || target.invokeType == Invoke.Type.INTERFACE
- || (target.invokeType == Type.DIRECT && !constructorTarget);
+ target.invokeType == InvokeType.VIRTUAL
+ || target.invokeType == InvokeType.INTERFACE
+ || (target.invokeType == InvokeType.DIRECT && !constructorTarget);
List<DexType> implReceiverAndArgs = new ArrayList<>();
if (targetWithReceiver) {
implReceiverAndArgs.add(methodToCall.holder);
@@ -204,10 +203,10 @@
implReceiverAndArgs.addAll(Lists.newArrayList(methodToCall.proto.parameters.values));
DexType implReturnType = methodToCall.proto.returnType;
- assert target.invokeType == Invoke.Type.STATIC
- || target.invokeType == Invoke.Type.VIRTUAL
- || target.invokeType == Invoke.Type.DIRECT
- || target.invokeType == Invoke.Type.INTERFACE;
+ assert target.invokeType == InvokeType.STATIC
+ || target.invokeType == InvokeType.VIRTUAL
+ || target.invokeType == InvokeType.DIRECT
+ || target.invokeType == InvokeType.INTERFACE;
assert checkSignatures(
capturedTypes,
enforcedParams,
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/backports/BackportedMethods.java b/src/main/java/com/android/tools/r8/ir/desugar/backports/BackportedMethods.java
index 48e5e20..99392e1 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/backports/BackportedMethods.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/backports/BackportedMethods.java
@@ -43,7 +43,7 @@
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.ir.code.Cmp;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
@@ -252,7 +252,7 @@
factory.objectType),
factory.createString("compareAndSet")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfConstNumber(1, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -277,7 +277,7 @@
factory.createString("get")),
false),
new CfLoad(ValueType.OBJECT, 2),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label0),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label0),
label3,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -325,7 +325,7 @@
factory.objectType),
factory.createString("compareAndSet")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfConstNumber(1, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -351,7 +351,7 @@
factory.createString("get")),
false),
new CfLoad(ValueType.OBJECT, 2),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label0),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label0),
label3,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -393,7 +393,7 @@
factory.booleanType, factory.objectType, factory.objectType),
factory.createString("compareAndSet")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfConstNumber(1, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -416,7 +416,7 @@
factory.createString("get")),
false),
new CfLoad(ValueType.OBJECT, 1),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label0),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label0),
label3,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -439,7 +439,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.NE, ValueType.INT, label1),
+ new CfIfCmp(IfType.NE, ValueType.INT, label1),
new CfConstNumber(0, ValueType.INT),
new CfGoto(label3),
label1,
@@ -447,7 +447,7 @@
new Int2ObjectAVLTreeMap<>(
new int[] {0, 1}, new FrameType[] {FrameType.intType(), FrameType.intType()})),
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label3),
label2,
@@ -478,7 +478,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfConstNumber(1231, ValueType.INT),
new CfGoto(label2),
label1,
@@ -615,7 +615,7 @@
label2,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -656,7 +656,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 5),
- new CfIfCmp(If.Type.GE, ValueType.INT, label12),
+ new CfIfCmp(IfType.GE, ValueType.INT, label12),
label7,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 4),
@@ -682,7 +682,7 @@
label9,
new CfLoad(ValueType.INT, 6),
new CfLoad(ValueType.INT, 7),
- new CfIfCmp(If.Type.EQ, ValueType.INT, label11),
+ new CfIfCmp(IfType.EQ, ValueType.INT, label11),
label10,
new CfLoad(ValueType.INT, 6),
new CfLoad(ValueType.INT, 7),
@@ -804,7 +804,7 @@
label0,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.autoCloseableType),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.autoCloseableType),
@@ -1037,7 +1037,7 @@
new CfStore(ValueType.OBJECT, 2),
label13,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label19),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label19),
label14,
new CfConstClass(factory.throwableType),
new CfConstString(factory.createString("addSuppressed")),
@@ -1221,7 +1221,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 3),
- new CfIfCmp(If.Type.GE, ValueType.INT, label5),
+ new CfIfCmp(IfType.GE, ValueType.INT, label5),
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.INT, 4),
new CfArrayLoad(MemberType.OBJECT),
@@ -1372,7 +1372,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 3),
- new CfIfCmp(If.Type.GE, ValueType.INT, label8),
+ new CfIfCmp(IfType.GE, ValueType.INT, label8),
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.INT, 4),
new CfArrayLoad(MemberType.OBJECT),
@@ -1422,7 +1422,7 @@
factory.createProto(factory.objectType, factory.objectType, factory.objectType),
factory.createString("put")),
false),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label7),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label7),
label6,
new CfNew(factory.createType("Ljava/lang/IllegalArgumentException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1559,7 +1559,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 3),
- new CfIfCmp(If.Type.GE, ValueType.INT, label6),
+ new CfIfCmp(IfType.GE, ValueType.INT, label6),
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.INT, 4),
new CfArrayLoad(MemberType.OBJECT),
@@ -1581,7 +1581,7 @@
factory.createProto(factory.booleanType, factory.objectType),
factory.createString("add")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label5),
+ new CfIf(IfType.NE, ValueType.INT, label5),
label4,
new CfNew(factory.createType("Ljava/lang/IllegalArgumentException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1729,7 +1729,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label5),
+ new CfIf(IfType.EQ, ValueType.INT, label5),
new CfLoad(ValueType.OBJECT, 2),
new CfInvoke(
185,
@@ -1856,7 +1856,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
new CfLoad(ValueType.OBJECT, 2),
new CfInvoke(
185,
@@ -1999,7 +1999,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label5),
+ new CfIf(IfType.EQ, ValueType.INT, label5),
new CfLoad(ValueType.OBJECT, 2),
new CfInvoke(
185,
@@ -2191,7 +2191,7 @@
factory.createProto(factory.booleanType, factory.doubleType),
factory.createString("isInfinite")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfLoad(ValueType.DOUBLE, 0),
new CfInvoke(
184,
@@ -2200,7 +2200,7 @@
factory.createProto(factory.booleanType, factory.doubleType),
factory.createString("isNaN")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -2240,7 +2240,7 @@
factory.createProto(factory.booleanType, factory.floatType),
factory.createString("isInfinite")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfLoad(ValueType.FLOAT, 0),
new CfInvoke(
184,
@@ -2249,7 +2249,7 @@
factory.createProto(factory.booleanType, factory.floatType),
factory.createString("isNaN")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -2280,7 +2280,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.NE, ValueType.INT, label1),
+ new CfIfCmp(IfType.NE, ValueType.INT, label1),
new CfConstNumber(0, ValueType.INT),
new CfGoto(label3),
label1,
@@ -2289,7 +2289,7 @@
new int[] {0, 1}, new FrameType[] {FrameType.intType(), FrameType.intType()})),
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.GE, ValueType.INT, label2),
+ new CfIfCmp(IfType.GE, ValueType.INT, label2),
new CfConstNumber(-1, ValueType.INT),
new CfGoto(label3),
label2,
@@ -2436,7 +2436,7 @@
new CfLoad(ValueType.INT, 1),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
new CfConstNumber(2, ValueType.INT),
- new CfIfCmp(If.Type.LT, ValueType.INT, label4),
+ new CfIfCmp(IfType.LT, ValueType.INT, label4),
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
label1,
@@ -2448,7 +2448,7 @@
factory.createString("charAt")),
true),
new CfConstNumber(43, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label4),
+ new CfIfCmp(IfType.NE, ValueType.INT, label4),
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
new CfConstNumber(1, ValueType.INT),
@@ -2469,7 +2469,7 @@
factory.createProto(factory.intType, factory.charType, factory.intType),
factory.createString("digit")),
false),
- new CfIf(If.Type.LT, ValueType.INT, label4),
+ new CfIf(IfType.LT, ValueType.INT, label4),
label3,
new CfIinc(1, 1),
label4,
@@ -2602,7 +2602,7 @@
factory.createString("length")),
false),
new CfConstNumber(1, ValueType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label2),
+ new CfIfCmp(IfType.LE, ValueType.INT, label2),
new CfLoad(ValueType.OBJECT, 0),
new CfConstNumber(0, ValueType.INT),
new CfInvoke(
@@ -2613,7 +2613,7 @@
factory.createString("charAt")),
false),
new CfConstNumber(43, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label2),
+ new CfIfCmp(IfType.NE, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfConstNumber(1, ValueType.INT),
@@ -2648,7 +2648,7 @@
new CfLogicalBinop(CfLogicalBinop.Opcode.And, NumericType.LONG),
new CfLoad(ValueType.LONG, 2),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.EQ, ValueType.INT, label5),
+ new CfIf(IfType.EQ, ValueType.INT, label5),
label4,
new CfNew(factory.createType("Ljava/lang/NumberFormatException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -2904,7 +2904,7 @@
new CfLoad(ValueType.LONG, 2),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label6),
+ new CfIf(IfType.GE, ValueType.INT, label6),
label1,
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
@@ -2919,7 +2919,7 @@
new CfLoad(ValueType.LONG, 4),
new CfLoad(ValueType.LONG, 6),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label5),
+ new CfIf(IfType.GE, ValueType.INT, label5),
label4,
new CfConstNumber(0, ValueType.LONG),
new CfReturn(ValueType.LONG),
@@ -2952,7 +2952,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label8),
+ new CfIf(IfType.LT, ValueType.INT, label8),
label7,
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
@@ -2998,7 +2998,7 @@
new CfLoad(ValueType.LONG, 8),
new CfLoad(ValueType.LONG, 10),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label13),
+ new CfIf(IfType.LT, ValueType.INT, label13),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label14),
label13,
@@ -3128,7 +3128,7 @@
new CfLoad(ValueType.INT, 1),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
new CfConstNumber(2, ValueType.INT),
- new CfIfCmp(If.Type.LT, ValueType.INT, label4),
+ new CfIfCmp(IfType.LT, ValueType.INT, label4),
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
label1,
@@ -3140,7 +3140,7 @@
factory.createString("charAt")),
true),
new CfConstNumber(43, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label4),
+ new CfIfCmp(IfType.NE, ValueType.INT, label4),
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
new CfConstNumber(1, ValueType.INT),
@@ -3161,7 +3161,7 @@
factory.createProto(factory.intType, factory.charType, factory.intType),
factory.createString("digit")),
false),
- new CfIf(If.Type.LT, ValueType.INT, label4),
+ new CfIf(IfType.LT, ValueType.INT, label4),
label3,
new CfIinc(1, 1),
label4,
@@ -3265,7 +3265,7 @@
new CfStore(ValueType.INT, 4),
label1,
new CfLoad(ValueType.INT, 4),
- new CfIf(If.Type.NE, ValueType.INT, label3),
+ new CfIf(IfType.NE, ValueType.INT, label3),
label2,
new CfNew(factory.createType("Ljava/lang/NumberFormatException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -3291,10 +3291,10 @@
})),
new CfLoad(ValueType.INT, 3),
new CfConstNumber(2, ValueType.INT),
- new CfIfCmp(If.Type.LT, ValueType.INT, label4),
+ new CfIfCmp(IfType.LT, ValueType.INT, label4),
new CfLoad(ValueType.INT, 3),
new CfConstNumber(36, ValueType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label5),
+ new CfIfCmp(IfType.LE, ValueType.INT, label5),
label4,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -3365,10 +3365,10 @@
factory.createString("charAt")),
true),
new CfConstNumber(43, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label7),
+ new CfIfCmp(IfType.NE, ValueType.INT, label7),
new CfLoad(ValueType.INT, 4),
new CfConstNumber(1, ValueType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label7),
+ new CfIfCmp(IfType.LE, ValueType.INT, label7),
new CfLoad(ValueType.INT, 1),
new CfConstNumber(1, ValueType.INT),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Add, NumericType.INT),
@@ -3427,7 +3427,7 @@
})),
new CfLoad(ValueType.INT, 10),
new CfLoad(ValueType.INT, 2),
- new CfIfCmp(If.Type.GE, ValueType.INT, label20),
+ new CfIfCmp(IfType.GE, ValueType.INT, label20),
label12,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 10),
@@ -3450,7 +3450,7 @@
label13,
new CfLoad(ValueType.INT, 11),
new CfConstNumber(-1, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label15),
+ new CfIfCmp(IfType.NE, ValueType.INT, label15),
label14,
new CfNew(factory.createType("Ljava/lang/NumberFormatException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -3491,15 +3491,15 @@
new CfLoad(ValueType.LONG, 8),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label17),
+ new CfIf(IfType.LT, ValueType.INT, label17),
new CfLoad(ValueType.LONG, 8),
new CfLoad(ValueType.LONG, 5),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GT, ValueType.INT, label17),
+ new CfIf(IfType.GT, ValueType.INT, label17),
new CfLoad(ValueType.LONG, 8),
new CfLoad(ValueType.LONG, 5),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label18),
+ new CfIf(IfType.NE, ValueType.INT, label18),
new CfLoad(ValueType.INT, 11),
new CfConstNumber(-1, ValueType.LONG),
new CfLoad(ValueType.INT, 3),
@@ -3513,7 +3513,7 @@
factory.createString("remainderUnsigned")),
false),
new CfNumberConversion(NumericType.LONG, NumericType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label18),
+ new CfIfCmp(IfType.LE, ValueType.INT, label18),
label17,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -3675,7 +3675,7 @@
new CfLoad(ValueType.LONG, 2),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label6),
+ new CfIf(IfType.GE, ValueType.INT, label6),
label1,
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
@@ -3690,7 +3690,7 @@
new CfLoad(ValueType.LONG, 4),
new CfLoad(ValueType.LONG, 6),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label5),
+ new CfIf(IfType.GE, ValueType.INT, label5),
label4,
new CfLoad(ValueType.LONG, 0),
new CfReturn(ValueType.LONG),
@@ -3725,7 +3725,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label8),
+ new CfIf(IfType.LT, ValueType.INT, label8),
label7,
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
@@ -3771,7 +3771,7 @@
new CfLoad(ValueType.LONG, 8),
new CfLoad(ValueType.LONG, 10),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label13),
+ new CfIf(IfType.LT, ValueType.INT, label13),
new CfLoad(ValueType.LONG, 2),
new CfGoto(label14),
label13,
@@ -3882,7 +3882,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfConstString(factory.createString("0")),
new CfReturn(ValueType.OBJECT),
@@ -3896,7 +3896,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LE, ValueType.INT, label4),
+ new CfIf(IfType.LE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.INT, 2),
@@ -3917,10 +3917,10 @@
})),
new CfLoad(ValueType.INT, 2),
new CfConstNumber(2, ValueType.INT),
- new CfIfCmp(If.Type.LT, ValueType.INT, label5),
+ new CfIfCmp(IfType.LT, ValueType.INT, label5),
new CfLoad(ValueType.INT, 2),
new CfConstNumber(36, ValueType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label6),
+ new CfIfCmp(IfType.LE, ValueType.INT, label6),
label5,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -3950,7 +3950,7 @@
new CfConstNumber(1, ValueType.INT),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
new CfLogicalBinop(CfLogicalBinop.Opcode.And, NumericType.INT),
- new CfIf(If.Type.NE, ValueType.INT, label15),
+ new CfIf(IfType.NE, ValueType.INT, label15),
label9,
new CfLoad(ValueType.INT, 2),
new CfInvoke(
@@ -4004,7 +4004,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label11),
+ new CfIf(IfType.NE, ValueType.INT, label11),
label14,
new CfGoto(label25),
label15,
@@ -4021,7 +4021,7 @@
new CfLoad(ValueType.INT, 2),
new CfConstNumber(1, ValueType.INT),
new CfLogicalBinop(CfLogicalBinop.Opcode.And, NumericType.INT),
- new CfIf(If.Type.NE, ValueType.INT, label18),
+ new CfIf(IfType.NE, ValueType.INT, label18),
label16,
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(1, ValueType.INT),
@@ -4112,7 +4112,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LE, ValueType.INT, label25),
+ new CfIf(IfType.LE, ValueType.INT, label25),
label23,
new CfLoad(ValueType.OBJECT, 3),
new CfIinc(4, -1),
@@ -4184,7 +4184,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfConstNumber(-2147483648, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label2),
+ new CfIfCmp(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -4227,7 +4227,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -4286,7 +4286,7 @@
new CfLoad(ValueType.INT, 4),
new CfNumberConversion(NumericType.INT, NumericType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.INT, 4),
new CfReturn(ValueType.INT),
@@ -4342,7 +4342,7 @@
new CfLogicalBinop(CfLogicalBinop.Opcode.Xor, NumericType.LONG),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label2),
+ new CfIf(IfType.GE, ValueType.INT, label2),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label3),
label2,
@@ -4376,7 +4376,7 @@
new CfLogicalBinop(CfLogicalBinop.Opcode.Xor, NumericType.LONG),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label4),
+ new CfIf(IfType.LT, ValueType.INT, label4),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label5),
label4,
@@ -4407,7 +4407,7 @@
}),
new ArrayDeque<>(Arrays.asList(FrameType.intType(), FrameType.intType()))),
new CfLogicalBinop(CfLogicalBinop.Opcode.Or, NumericType.INT),
- new CfIf(If.Type.EQ, ValueType.INT, label7),
+ new CfIf(IfType.EQ, ValueType.INT, label7),
label6,
new CfLoad(ValueType.LONG, 4),
new CfReturn(ValueType.LONG),
@@ -4451,7 +4451,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfConstNumber(-2147483648, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label2),
+ new CfIfCmp(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -4489,7 +4489,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -4544,7 +4544,7 @@
new CfStore(ValueType.INT, 3),
label2,
new CfLoad(ValueType.INT, 3),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.INT, 2),
new CfReturn(ValueType.INT),
@@ -4568,7 +4568,7 @@
new CfStore(ValueType.INT, 4),
label5,
new CfLoad(ValueType.INT, 4),
- new CfIf(If.Type.GE, ValueType.INT, label6),
+ new CfIf(IfType.GE, ValueType.INT, label6),
new CfLoad(ValueType.INT, 2),
new CfConstNumber(1, ValueType.INT),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
@@ -4634,7 +4634,7 @@
new CfLoad(ValueType.LONG, 6),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.LONG, 4),
new CfReturn(ValueType.LONG),
@@ -4664,7 +4664,7 @@
new CfLoad(ValueType.LONG, 8),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GE, ValueType.INT, label6),
+ new CfIf(IfType.GE, ValueType.INT, label6),
new CfLoad(ValueType.LONG, 4),
new CfConstNumber(1, ValueType.LONG),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.LONG),
@@ -4755,7 +4755,7 @@
new CfStore(ValueType.INT, 2),
label1,
new CfLoad(ValueType.INT, 2),
- new CfIf(If.Type.NE, ValueType.INT, label3),
+ new CfIf(IfType.NE, ValueType.INT, label3),
label2,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -4776,7 +4776,7 @@
new CfStore(ValueType.INT, 3),
label4,
new CfLoad(ValueType.INT, 3),
- new CfIf(If.Type.LE, ValueType.INT, label5),
+ new CfIf(IfType.LE, ValueType.INT, label5),
new CfLoad(ValueType.INT, 2),
new CfGoto(label6),
label5,
@@ -4832,7 +4832,7 @@
new CfLoad(ValueType.LONG, 4),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label3),
+ new CfIf(IfType.NE, ValueType.INT, label3),
label2,
new CfConstNumber(0, ValueType.LONG),
new CfReturn(ValueType.LONG),
@@ -4860,7 +4860,7 @@
new CfLoad(ValueType.LONG, 6),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LE, ValueType.INT, label5),
+ new CfIf(IfType.LE, ValueType.INT, label5),
new CfLoad(ValueType.LONG, 4),
new CfGoto(label6),
label5,
@@ -4940,7 +4940,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfConstNumber(2147483647, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label2),
+ new CfIfCmp(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -4978,7 +4978,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(9223372036854775807L, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5032,7 +5032,7 @@
new CfLoad(ValueType.INT, 4),
new CfNumberConversion(NumericType.INT, NumericType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.INT, 4),
new CfReturn(ValueType.INT),
@@ -5133,7 +5133,7 @@
label5,
new CfLoad(ValueType.INT, 4),
new CfConstNumber(65, ValueType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label7),
+ new CfIfCmp(IfType.LE, ValueType.INT, label7),
label6,
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
@@ -5152,11 +5152,11 @@
})),
new CfLoad(ValueType.INT, 4),
new CfConstNumber(64, ValueType.INT),
- new CfIfCmp(If.Type.LT, ValueType.INT, label15),
+ new CfIfCmp(IfType.LT, ValueType.INT, label15),
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label8),
+ new CfIf(IfType.LT, ValueType.INT, label8),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label9),
label8,
@@ -5186,7 +5186,7 @@
new CfLoad(ValueType.LONG, 2),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label11),
label10,
@@ -5215,7 +5215,7 @@
}),
new ArrayDeque<>(Arrays.asList(FrameType.intType(), FrameType.intType()))),
new CfLogicalBinop(CfLogicalBinop.Opcode.Or, NumericType.INT),
- new CfIf(If.Type.EQ, ValueType.INT, label15),
+ new CfIf(IfType.EQ, ValueType.INT, label15),
label12,
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
@@ -5225,13 +5225,13 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.EQ, ValueType.INT, label14),
+ new CfIf(IfType.EQ, ValueType.INT, label14),
new CfLoad(ValueType.LONG, 5),
new CfLoad(ValueType.LONG, 0),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Div, NumericType.LONG),
new CfLoad(ValueType.LONG, 2),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label15),
+ new CfIf(IfType.NE, ValueType.INT, label15),
label14,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -5435,7 +5435,7 @@
label0,
new CfLoad(ValueType.INT, 0),
new CfConstNumber(-2147483648, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label2),
+ new CfIfCmp(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5472,7 +5472,7 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(-9223372036854775808L, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5575,7 +5575,7 @@
new CfLoad(ValueType.INT, 4),
new CfNumberConversion(NumericType.INT, NumericType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label3,
new CfLoad(ValueType.INT, 4),
new CfReturn(ValueType.INT),
@@ -5631,7 +5631,7 @@
new CfLogicalBinop(CfLogicalBinop.Opcode.Xor, NumericType.LONG),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label2),
+ new CfIf(IfType.LT, ValueType.INT, label2),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label3),
label2,
@@ -5665,7 +5665,7 @@
new CfLogicalBinop(CfLogicalBinop.Opcode.Xor, NumericType.LONG),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label4),
+ new CfIf(IfType.LT, ValueType.INT, label4),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label5),
label4,
@@ -5696,7 +5696,7 @@
}),
new ArrayDeque<>(Arrays.asList(FrameType.intType(), FrameType.intType()))),
new CfLogicalBinop(CfLogicalBinop.Opcode.Or, NumericType.INT),
- new CfIf(If.Type.EQ, ValueType.INT, label7),
+ new CfIf(IfType.EQ, ValueType.INT, label7),
label6,
new CfLoad(ValueType.LONG, 4),
new CfReturn(ValueType.LONG),
@@ -5747,7 +5747,7 @@
new CfLoad(ValueType.INT, 2),
new CfNumberConversion(NumericType.INT, NumericType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.EQ, ValueType.INT, label3),
+ new CfIf(IfType.EQ, ValueType.INT, label3),
label2,
new CfNew(factory.createType("Ljava/lang/ArithmeticException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5785,16 +5785,16 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 1),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 2),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 2),
new CfLoad(ValueType.INT, 1),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label2),
+ new CfIfCmp(IfType.LE, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -5921,21 +5921,21 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 2),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 4),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 4),
new CfLoad(ValueType.LONG, 2),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LE, ValueType.INT, label2),
+ new CfIf(IfType.LE, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6069,13 +6069,13 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.GT, ValueType.INT, label1),
+ new CfIfCmp(IfType.GT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 1),
new CfLoad(ValueType.INT, 2),
- new CfIfCmp(If.Type.LE, ValueType.INT, label2),
+ new CfIfCmp(IfType.LE, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6186,15 +6186,15 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.GT, ValueType.INT, label1),
+ new CfIf(IfType.GT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 2),
new CfLoad(ValueType.LONG, 4),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LE, ValueType.INT, label2),
+ new CfIf(IfType.LE, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6312,10 +6312,10 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.LT, ValueType.INT, label2),
+ new CfIfCmp(IfType.LT, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6403,11 +6403,11 @@
new CfLoad(ValueType.LONG, 0),
new CfConstNumber(0, ValueType.LONG),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label1),
+ new CfIf(IfType.LT, ValueType.INT, label1),
new CfLoad(ValueType.LONG, 0),
new CfLoad(ValueType.LONG, 2),
new CfCmp(Cmp.Bias.NONE, NumericType.LONG),
- new CfIf(If.Type.LT, ValueType.INT, label2),
+ new CfIf(IfType.LT, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6506,7 +6506,7 @@
label0,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label1),
new CfConstNumber(0, ValueType.INT),
new CfGoto(label2),
label1,
@@ -6595,7 +6595,7 @@
label0,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label1),
new CfConstNumber(1, ValueType.INT),
new CfReturn(ValueType.INT),
label1,
@@ -6607,7 +6607,7 @@
FrameType.initializedNonNullReference(factory.objectType)
})),
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIf(IfType.NE, ValueType.OBJECT, label2),
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
label2,
@@ -6620,11 +6620,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.booleanArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label6),
+ new CfIf(IfType.EQ, ValueType.INT, label6),
label3,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.booleanArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label4),
+ new CfIf(IfType.EQ, ValueType.INT, label4),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.booleanArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6637,7 +6637,7 @@
factory.booleanType, factory.booleanArrayType, factory.booleanArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label4),
+ new CfIf(IfType.EQ, ValueType.INT, label4),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label5),
label4,
@@ -6669,11 +6669,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.byteArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
label7,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.byteArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.byteArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6686,7 +6686,7 @@
factory.booleanType, factory.byteArrayType, factory.byteArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label9),
label8,
@@ -6718,11 +6718,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.charArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label14),
+ new CfIf(IfType.EQ, ValueType.INT, label14),
label11,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.charArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label12),
+ new CfIf(IfType.EQ, ValueType.INT, label12),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.charArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6735,7 +6735,7 @@
factory.booleanType, factory.charArrayType, factory.charArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label12),
+ new CfIf(IfType.EQ, ValueType.INT, label12),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label13),
label12,
@@ -6767,11 +6767,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.doubleArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label18),
+ new CfIf(IfType.EQ, ValueType.INT, label18),
label15,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.doubleArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label16),
+ new CfIf(IfType.EQ, ValueType.INT, label16),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.doubleArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6784,7 +6784,7 @@
factory.booleanType, factory.doubleArrayType, factory.doubleArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label16),
+ new CfIf(IfType.EQ, ValueType.INT, label16),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label17),
label16,
@@ -6816,11 +6816,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.floatArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label22),
+ new CfIf(IfType.EQ, ValueType.INT, label22),
label19,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.floatArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label20),
+ new CfIf(IfType.EQ, ValueType.INT, label20),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.floatArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6833,7 +6833,7 @@
factory.booleanType, factory.floatArrayType, factory.floatArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label20),
+ new CfIf(IfType.EQ, ValueType.INT, label20),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label21),
label20,
@@ -6865,11 +6865,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.intArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label26),
+ new CfIf(IfType.EQ, ValueType.INT, label26),
label23,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.intArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label24),
+ new CfIf(IfType.EQ, ValueType.INT, label24),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.intArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6882,7 +6882,7 @@
factory.booleanType, factory.intArrayType, factory.intArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label24),
+ new CfIf(IfType.EQ, ValueType.INT, label24),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label25),
label24,
@@ -6914,11 +6914,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.longArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label30),
+ new CfIf(IfType.EQ, ValueType.INT, label30),
label27,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.longArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label28),
+ new CfIf(IfType.EQ, ValueType.INT, label28),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.longArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6931,7 +6931,7 @@
factory.booleanType, factory.longArrayType, factory.longArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label28),
+ new CfIf(IfType.EQ, ValueType.INT, label28),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label29),
label28,
@@ -6963,11 +6963,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.shortArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label34),
+ new CfIf(IfType.EQ, ValueType.INT, label34),
label31,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.shortArrayType),
- new CfIf(If.Type.EQ, ValueType.INT, label32),
+ new CfIf(IfType.EQ, ValueType.INT, label32),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.shortArrayType),
new CfLoad(ValueType.OBJECT, 1),
@@ -6980,7 +6980,7 @@
factory.booleanType, factory.shortArrayType, factory.shortArrayType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label32),
+ new CfIf(IfType.EQ, ValueType.INT, label32),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label33),
label32,
@@ -7012,11 +7012,11 @@
})),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceOf(factory.createType("[Ljava/lang/Object;")),
- new CfIf(If.Type.EQ, ValueType.INT, label38),
+ new CfIf(IfType.EQ, ValueType.INT, label38),
label35,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.createType("[Ljava/lang/Object;")),
- new CfIf(If.Type.EQ, ValueType.INT, label36),
+ new CfIf(IfType.EQ, ValueType.INT, label36),
new CfLoad(ValueType.OBJECT, 0),
new CfCheckCast(factory.createType("[Ljava/lang/Object;")),
new CfLoad(ValueType.OBJECT, 1),
@@ -7031,7 +7031,7 @@
factory.createType("[Ljava/lang/Object;")),
factory.createString("deepEquals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label36),
+ new CfIf(IfType.EQ, ValueType.INT, label36),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label37),
label36,
@@ -7090,9 +7090,9 @@
label0,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label1),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label1),
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label2),
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
new CfInvoke(
@@ -7102,7 +7102,7 @@
factory.createProto(factory.booleanType, factory.objectType),
factory.createString("equals")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -7149,7 +7149,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfConstNumber(0, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7189,7 +7189,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7222,7 +7222,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label1),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7254,7 +7254,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label1),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfReturn(ValueType.OBJECT),
label1,
@@ -7293,7 +7293,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label1),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfReturn(ValueType.OBJECT),
label1,
@@ -7352,7 +7352,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIf(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -7396,10 +7396,10 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIf(IfType.NE, ValueType.OBJECT, label5),
label1,
new CfLoad(ValueType.OBJECT, 1),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label2),
new CfLoad(ValueType.OBJECT, 1),
new CfInvoke(
185,
@@ -7496,7 +7496,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfLoad(ValueType.OBJECT, 1),
new CfGoto(label2),
label1,
@@ -7551,7 +7551,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfLoad(ValueType.OBJECT, 0),
@@ -7629,7 +7629,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfLoad(ValueType.OBJECT, 0),
@@ -7707,7 +7707,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfLoad(ValueType.OBJECT, 0),
@@ -7785,7 +7785,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfLoad(ValueType.OBJECT, 0),
@@ -7861,7 +7861,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7907,7 +7907,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7953,7 +7953,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -7999,7 +7999,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label2),
label1,
@@ -8057,7 +8057,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label3),
+ new CfIf(IfType.EQ, ValueType.INT, label3),
label2,
new CfLoad(ValueType.OBJECT, 0),
new CfReturn(ValueType.OBJECT),
@@ -8116,7 +8116,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -8175,7 +8175,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -8234,7 +8234,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -8293,7 +8293,7 @@
factory.createProto(factory.booleanType),
factory.createString("isPresent")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -8445,7 +8445,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfInvoke(
184,
factory.createMethod(
@@ -8523,7 +8523,7 @@
})),
new CfLoad(ValueType.INT, 1),
new CfLoad(ValueType.INT, 2),
- new CfIfCmp(If.Type.GE, ValueType.INT, label8),
+ new CfIfCmp(IfType.GE, ValueType.INT, label8),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
@@ -8544,7 +8544,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isWhitespace")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label6),
+ new CfIf(IfType.NE, ValueType.INT, label6),
label5,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -8602,7 +8602,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
new CfConstString(factory.createString("delimiter")),
@@ -8636,7 +8636,7 @@
label2,
new CfLoad(ValueType.OBJECT, 1),
new CfArrayLength(),
- new CfIf(If.Type.LE, ValueType.INT, label9),
+ new CfIf(IfType.LE, ValueType.INT, label9),
label3,
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.OBJECT, 1),
@@ -8667,7 +8667,7 @@
new CfLoad(ValueType.INT, 3),
new CfLoad(ValueType.OBJECT, 1),
new CfArrayLength(),
- new CfIfCmp(If.Type.GE, ValueType.INT, label9),
+ new CfIfCmp(IfType.GE, ValueType.INT, label9),
label6,
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.OBJECT, 0),
@@ -8737,7 +8737,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.NE, ValueType.OBJECT, label1),
+ new CfIf(IfType.NE, ValueType.OBJECT, label1),
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
new CfConstString(factory.createString("delimiter")),
@@ -8787,7 +8787,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
label4,
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.OBJECT, 3),
@@ -8827,7 +8827,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
label6,
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.OBJECT, 0),
@@ -8910,7 +8910,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 1),
- new CfIf(If.Type.GE, ValueType.INT, label2),
+ new CfIf(IfType.GE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/IllegalArgumentException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -8972,9 +8972,9 @@
new CfStore(ValueType.INT, 2),
label3,
new CfLoad(ValueType.INT, 1),
- new CfIf(If.Type.EQ, ValueType.INT, label4),
+ new CfIf(IfType.EQ, ValueType.INT, label4),
new CfLoad(ValueType.INT, 2),
- new CfIf(If.Type.NE, ValueType.INT, label5),
+ new CfIf(IfType.NE, ValueType.INT, label5),
label4,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -8997,7 +8997,7 @@
})),
new CfLoad(ValueType.INT, 1),
new CfConstNumber(1, ValueType.INT),
- new CfIfCmp(If.Type.NE, ValueType.INT, label7),
+ new CfIfCmp(IfType.NE, ValueType.INT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfReturn(ValueType.OBJECT),
@@ -9021,7 +9021,7 @@
new CfConstNumber(2147483647, ValueType.INT),
new CfLoad(ValueType.INT, 1),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Div, NumericType.INT),
- new CfIfCmp(If.Type.LE, ValueType.INT, label10),
+ new CfIfCmp(IfType.LE, ValueType.INT, label10),
label8,
new CfNew(factory.createType("Ljava/lang/OutOfMemoryError;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -9136,7 +9136,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.GE, ValueType.INT, label15),
+ new CfIfCmp(IfType.GE, ValueType.INT, label15),
label13,
new CfLoad(ValueType.OBJECT, 3),
new CfLoad(ValueType.OBJECT, 0),
@@ -9221,7 +9221,7 @@
})),
new CfLoad(ValueType.INT, 1),
new CfLoad(ValueType.INT, 2),
- new CfIfCmp(If.Type.GE, ValueType.INT, label8),
+ new CfIfCmp(IfType.GE, ValueType.INT, label8),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
@@ -9242,7 +9242,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isWhitespace")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label6),
+ new CfIf(IfType.NE, ValueType.INT, label6),
label5,
new CfGoto(label8),
label6,
@@ -9279,7 +9279,7 @@
})),
new CfLoad(ValueType.INT, 2),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.LE, ValueType.INT, label14),
+ new CfIfCmp(IfType.LE, ValueType.INT, label14),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 2),
@@ -9300,7 +9300,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isWhitespace")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label12),
+ new CfIf(IfType.NE, ValueType.INT, label12),
label11,
new CfGoto(label14),
label12,
@@ -9391,7 +9391,7 @@
})),
new CfLoad(ValueType.INT, 1),
new CfLoad(ValueType.INT, 2),
- new CfIfCmp(If.Type.GE, ValueType.INT, label8),
+ new CfIfCmp(IfType.GE, ValueType.INT, label8),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
@@ -9412,7 +9412,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isWhitespace")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label6),
+ new CfIf(IfType.NE, ValueType.INT, label6),
label5,
new CfGoto(label8),
label6,
@@ -9496,7 +9496,7 @@
FrameType.initializedNonNullReference(factory.stringType), FrameType.intType()
})),
new CfLoad(ValueType.INT, 1),
- new CfIf(If.Type.LE, ValueType.INT, label7),
+ new CfIf(IfType.LE, ValueType.INT, label7),
label2,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.INT, 1),
@@ -9517,7 +9517,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isWhitespace")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label5),
+ new CfIf(IfType.NE, ValueType.INT, label5),
label4,
new CfGoto(label7),
label5,
@@ -9763,7 +9763,7 @@
factory.objectType),
factory.createString("compareAndSwapObject")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfConstNumber(1, ValueType.INT),
new CfReturn(ValueType.INT),
@@ -9791,7 +9791,7 @@
factory.createString("getObject")),
false),
new CfLoad(ValueType.OBJECT, 4),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label0),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label0),
label3,
new CfConstNumber(0, ValueType.INT),
new CfReturn(ValueType.INT),
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java b/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
index 161262d..d260a73 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/constantdynamic/ConstantDynamicClass.java
@@ -48,8 +48,8 @@
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.IfType;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.desugar.FreshLocalProvider;
import com.android.tools.r8.ir.desugar.LocalStackAllocator;
@@ -279,16 +279,16 @@
CfLabel tryCatchEndFinally = new CfLabel();
instructions.add(new CfStaticFieldRead(initializedValueField));
- instructions.add(new CfIf(If.Type.NE, ValueType.INT, initializedTrue));
+ instructions.add(new CfIf(IfType.NE, ValueType.INT, initializedTrue));
instructions.add(new CfConstClass(builder.getType()));
instructions.add(new CfStackInstruction(Opcode.Dup));
instructions.add(new CfStore(ValueType.OBJECT, 0));
- instructions.add(new CfMonitor(Monitor.Type.ENTER));
+ instructions.add(new CfMonitor(MonitorType.ENTER));
instructions.add(tryCatchStart);
instructions.add(new CfStaticFieldRead(initializedValueField));
- instructions.add(new CfIf(If.Type.NE, ValueType.INT, initializedTrueSecond));
+ instructions.add(new CfIf(IfType.NE, ValueType.INT, initializedTrueSecond));
invokeBootstrapMethod(instructions);
instructions.add(new CfStaticFieldWrite(constantValueField));
@@ -301,7 +301,7 @@
.appendLocal(FrameType.initializedNonNullReference(builder.getFactory().objectType))
.build());
instructions.add(new CfLoad(ValueType.OBJECT, 0));
- instructions.add(new CfMonitor(Monitor.Type.EXIT));
+ instructions.add(new CfMonitor(MonitorType.EXIT));
instructions.add(tryCatchEnd);
instructions.add(new CfGoto(initializedTrue));
@@ -313,7 +313,7 @@
.build());
instructions.add(new CfStore(ValueType.OBJECT, 1));
instructions.add(new CfLoad(ValueType.OBJECT, 0));
- instructions.add(new CfMonitor(Monitor.Type.EXIT));
+ instructions.add(new CfMonitor(MonitorType.EXIT));
instructions.add(tryCatchEndFinally);
instructions.add(new CfLoad(ValueType.OBJECT, 1));
instructions.add(new CfThrow());
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
index accc84e..3743f0c 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/records/RecordCfMethods.java
@@ -30,7 +30,7 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
@@ -110,7 +110,7 @@
factory.createProto(factory.intType),
factory.createString("length")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label1),
+ new CfIf(IfType.NE, ValueType.INT, label1),
new CfConstNumber(0, ValueType.INT),
new CfNewArray(factory.createType("[Ljava/lang/String;")),
new CfGoto(label2),
@@ -206,7 +206,7 @@
new CfLoad(ValueType.INT, 5),
new CfLoad(ValueType.OBJECT, 3),
new CfArrayLength(),
- new CfIfCmp(If.Type.GE, ValueType.INT, label11),
+ new CfIfCmp(IfType.GE, ValueType.INT, label11),
label7,
new CfLoad(ValueType.OBJECT, 4),
new CfLoad(ValueType.OBJECT, 3),
@@ -244,7 +244,7 @@
new CfArrayLength(),
new CfConstNumber(1, ValueType.INT),
new CfArithmeticBinop(CfArithmeticBinop.Opcode.Sub, NumericType.INT),
- new CfIfCmp(If.Type.EQ, ValueType.INT, label10),
+ new CfIfCmp(IfType.EQ, ValueType.INT, label10),
label9,
new CfLoad(ValueType.OBJECT, 4),
new CfConstString(factory.createString(", ")),
diff --git a/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringMethods.java b/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringMethods.java
index cbbd51b..6d9d890 100644
--- a/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringMethods.java
+++ b/src/main/java/com/android/tools/r8/ir/desugar/varhandle/VarHandleDesugaringMethods.java
@@ -45,7 +45,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.FieldAccessFlags;
import com.android.tools.r8.graph.MethodAccessFlags;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
@@ -1147,7 +1147,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label6),
+ new CfIf(IfType.NE, ValueType.INT, label6),
label5,
new CfNew(factory.createType("Ljava/lang/IllegalArgumentException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1227,7 +1227,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
label8,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1300,21 +1300,21 @@
factory.createProto(factory.booleanType),
factory.createString("isPrimitive")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label14),
+ new CfIf(IfType.EQ, ValueType.INT, label14),
new CfLoad(ValueType.OBJECT, 3),
new CfStaticFieldRead(
factory.createField(
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label14),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label14),
new CfLoad(ValueType.OBJECT, 3),
new CfStaticFieldRead(
factory.createField(
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label14),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label14),
label11,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1595,21 +1595,21 @@
factory.createProto(factory.booleanType),
factory.createString("isPrimitive")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
new CfLoad(ValueType.OBJECT, 3),
new CfStaticFieldRead(
factory.createField(
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label10),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label10),
new CfLoad(ValueType.OBJECT, 3),
new CfStaticFieldRead(
factory.createField(
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label10),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label10),
label8,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -1771,7 +1771,7 @@
label0,
new CfLoad(ValueType.OBJECT, 2),
new CfConstClass(factory.createType("Ljava/lang/Long;")),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.INT, 1),
new CfNumberConversion(NumericType.INT, NumericType.LONG),
@@ -1795,7 +1795,7 @@
})),
new CfLoad(ValueType.OBJECT, 2),
new CfConstClass(factory.createType("Ljava/lang/Float;")),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.INT, 1),
new CfNumberConversion(NumericType.INT, NumericType.FLOAT),
@@ -1819,7 +1819,7 @@
})),
new CfLoad(ValueType.OBJECT, 2),
new CfConstClass(factory.createType("Ljava/lang/Double;")),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label6),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label6),
label5,
new CfLoad(ValueType.INT, 1),
new CfNumberConversion(NumericType.INT, NumericType.DOUBLE),
@@ -1872,7 +1872,7 @@
label0,
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Float;")),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.LONG, 1),
new CfNumberConversion(NumericType.LONG, NumericType.FLOAT),
@@ -1897,7 +1897,7 @@
})),
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Double;")),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.LONG, 1),
new CfNumberConversion(NumericType.LONG, NumericType.DOUBLE),
@@ -1963,7 +1963,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2035,7 +2035,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label8),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label8),
label5,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2165,7 +2165,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -2180,7 +2180,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -2240,7 +2240,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label8),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label8),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2307,7 +2307,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label13),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label13),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2415,7 +2415,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -2505,7 +2505,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -2601,7 +2601,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2653,7 +2653,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2754,7 +2754,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2882,7 +2882,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -2932,7 +2932,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -3026,7 +3026,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -3041,7 +3041,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -3101,7 +3101,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -3149,7 +3149,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -3242,7 +3242,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -3257,7 +3257,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -3319,7 +3319,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -3370,7 +3370,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -3429,10 +3429,10 @@
label8,
new CfLoad(ValueType.OBJECT, 6),
new CfInstanceOf(factory.createType("Ljava/lang/Integer;")),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Integer;")),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label10),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label10),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 6),
@@ -3469,10 +3469,10 @@
})),
new CfLoad(ValueType.OBJECT, 6),
new CfInstanceOf(factory.createType("Ljava/lang/Long;")),
- new CfIf(If.Type.EQ, ValueType.INT, label12),
+ new CfIf(IfType.EQ, ValueType.INT, label12),
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Long;")),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label12),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label12),
label11,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 6),
@@ -3533,7 +3533,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -3613,7 +3613,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -3698,7 +3698,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -3751,7 +3751,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -3843,7 +3843,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -3886,7 +3886,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -3965,7 +3965,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4008,7 +4008,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4150,7 +4150,7 @@
})),
new CfLoad(ValueType.INT, 4),
new CfLoad(ValueType.INT, 3),
- new CfIfCmp(If.Type.GE, ValueType.INT, label9),
+ new CfIfCmp(IfType.GE, ValueType.INT, label9),
new CfLoad(ValueType.OBJECT, 2),
new CfLoad(ValueType.INT, 4),
new CfArrayLoad(MemberType.OBJECT),
@@ -4171,7 +4171,7 @@
factory.createProto(factory.booleanType, factory.intType),
factory.createString("isStatic")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
new CfConstClass(factory.createType("Lsun/misc/Unsafe;")),
new CfLoad(ValueType.OBJECT, 5),
label6,
@@ -4189,7 +4189,7 @@
factory.createProto(factory.booleanType, factory.classType),
factory.createString("isAssignableFrom")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
label7,
new CfLoad(ValueType.OBJECT, 5),
new CfReturn(ValueType.OBJECT),
@@ -4266,7 +4266,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4316,7 +4316,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4410,7 +4410,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -4425,7 +4425,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -4485,7 +4485,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4533,7 +4533,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -4627,7 +4627,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -4642,7 +4642,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -4704,7 +4704,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -4755,7 +4755,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -4814,10 +4814,10 @@
label8,
new CfLoad(ValueType.OBJECT, 6),
new CfInstanceOf(factory.createType("Ljava/lang/Integer;")),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Integer;")),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label10),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label10),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 6),
@@ -4854,10 +4854,10 @@
})),
new CfLoad(ValueType.OBJECT, 6),
new CfInstanceOf(factory.createType("Ljava/lang/Long;")),
- new CfIf(If.Type.EQ, ValueType.INT, label12),
+ new CfIf(IfType.EQ, ValueType.INT, label12),
new CfLoad(ValueType.OBJECT, 3),
new CfConstClass(factory.createType("Ljava/lang/Long;")),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label12),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label12),
label11,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 6),
@@ -4919,7 +4919,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5000,7 +5000,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5085,7 +5085,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -5138,7 +5138,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 0),
@@ -5230,7 +5230,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -5273,7 +5273,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -5352,7 +5352,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -5395,7 +5395,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -5488,7 +5488,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -5531,7 +5531,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -5631,7 +5631,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -5646,7 +5646,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -5704,7 +5704,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -5753,7 +5753,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -5851,7 +5851,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -5936,7 +5936,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -6027,7 +6027,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6073,7 +6073,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6167,7 +6167,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6214,7 +6214,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -6307,7 +6307,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -6350,7 +6350,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -6450,7 +6450,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -6465,7 +6465,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -6523,7 +6523,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6572,7 +6572,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6671,7 +6671,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -6757,7 +6757,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -6848,7 +6848,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6894,7 +6894,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -6988,7 +6988,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7035,7 +7035,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -7128,7 +7128,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -7171,7 +7171,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -7271,7 +7271,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -7286,7 +7286,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -7344,7 +7344,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label5),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label5),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7393,7 +7393,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label7),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label7),
label6,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7492,7 +7492,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -7578,7 +7578,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -7669,7 +7669,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7715,7 +7715,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7809,7 +7809,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -7856,7 +7856,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
@@ -7945,7 +7945,7 @@
label0,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.createType("Ljava/lang/Integer;")),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.createType("Ljava/lang/Integer;")),
@@ -7969,7 +7969,7 @@
})),
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.createType("Ljava/lang/Byte;")),
- new CfIf(If.Type.EQ, ValueType.INT, label4),
+ new CfIf(IfType.EQ, ValueType.INT, label4),
label3,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.createType("Ljava/lang/Byte;")),
@@ -7993,7 +7993,7 @@
})),
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.boxedCharType),
- new CfIf(If.Type.EQ, ValueType.INT, label6),
+ new CfIf(IfType.EQ, ValueType.INT, label6),
label5,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.boxedCharType),
@@ -8017,7 +8017,7 @@
})),
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.createType("Ljava/lang/Short;")),
- new CfIf(If.Type.EQ, ValueType.INT, label8),
+ new CfIf(IfType.EQ, ValueType.INT, label8),
label7,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.createType("Ljava/lang/Short;")),
@@ -8040,7 +8040,7 @@
FrameType.intType()
})),
new CfLoad(ValueType.INT, 2),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
label9,
new CfNew(factory.createType("Ljava/lang/ClassCastException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -8089,7 +8089,7 @@
label0,
new CfLoad(ValueType.OBJECT, 1),
new CfInstanceOf(factory.createType("Ljava/lang/Long;")),
- new CfIf(If.Type.EQ, ValueType.INT, label2),
+ new CfIf(IfType.EQ, ValueType.INT, label2),
label1,
new CfLoad(ValueType.OBJECT, 1),
new CfCheckCast(factory.createType("Ljava/lang/Long;")),
@@ -8157,7 +8157,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8229,7 +8229,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label8),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label8),
label5,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8359,7 +8359,7 @@
factory.createProto(factory.booleanType),
factory.createString("isArray")),
false),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
factory.createField(
@@ -8374,7 +8374,7 @@
factory.createProto(factory.classType),
factory.createString("getClass")),
false),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -8434,7 +8434,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label8),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label8),
label4,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8501,7 +8501,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label13),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label13),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8609,7 +8609,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.intArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -8699,7 +8699,7 @@
factory.classType,
factory.createString("recv"))),
new CfConstClass(factory.longArrayType),
- new CfIfCmp(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/UnsupportedOperationException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -8796,7 +8796,7 @@
factory.createType("Ljava/lang/Integer;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8848,7 +8848,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label4),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label4),
label3,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -8949,7 +8949,7 @@
factory.createType("Ljava/lang/Long;"),
factory.classType,
factory.createString("TYPE"))),
- new CfIfCmp(If.Type.NE, ValueType.OBJECT, label2),
+ new CfIfCmp(IfType.NE, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
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 509d6c1..cd2c596 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
@@ -65,7 +65,7 @@
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.IRMetadata;
import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.InstanceFieldInstruction;
import com.android.tools.r8.ir.code.InstanceGet;
import com.android.tools.r8.ir.code.InstanceOf;
@@ -619,10 +619,10 @@
if (right != 0) {
ConstNumber rightConst = code.createIntConstant(right);
rightConst.setPosition(position);
- newIf = new If(Type.EQ, ImmutableList.of(left, rightConst.dest()));
+ newIf = new If(IfType.EQ, ImmutableList.of(left, rightConst.dest()));
ifBlock = BasicBlock.createIfBlock(blockNumber, newIf, code.metadata(), rightConst);
} else {
- newIf = new If(Type.EQ, left);
+ newIf = new If(IfType.EQ, left);
ifBlock = BasicBlock.createIfBlock(blockNumber, newIf, code.metadata());
}
newIf.setPosition(position);
@@ -975,7 +975,7 @@
}
If replacement;
if (theSwitch.isIntSwitch() && theSwitch.asIntSwitch().getFirstKey() == 0) {
- replacement = new If(Type.EQ, theSwitch.value());
+ replacement = new If(IfType.EQ, theSwitch.value());
} else {
Instruction labelConst = theSwitch.materializeFirstKey(appView, code);
labelConst.setPosition(theSwitch.getPosition());
@@ -983,7 +983,7 @@
iterator.add(labelConst);
Instruction dummy = iterator.next();
assert dummy == theSwitch;
- replacement = new If(Type.EQ, ImmutableList.of(theSwitch.value(), labelConst.outValue()));
+ replacement = new If(IfType.EQ, ImmutableList.of(theSwitch.value(), labelConst.outValue()));
}
iterator.replaceCurrentInstruction(replacement);
}
@@ -2793,7 +2793,7 @@
}
if (theIf.isNullTest()) {
- assert theIf.getType() == Type.EQ || theIf.getType() == Type.NE;
+ assert theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE;
if (lhs.isAlwaysNull(appView)) {
simplifyIfWithKnownCondition(code, block, theIf, theIf.targetFromNullObject());
@@ -2806,7 +2806,7 @@
}
}
- if (theIf.getType() == Type.EQ || theIf.getType() == Type.NE) {
+ if (theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE) {
AbstractValue lhsAbstractValue = lhs.getAbstractValue(appView, code.context());
if (lhsAbstractValue.isConstantOrNonConstantNumberValue()
&& !lhsAbstractValue.asConstantOrNonConstantNumberValue().containsInt(0)) {
@@ -2874,7 +2874,7 @@
if (lhsRoot.isDefinedByInstructionSatisfying(Instruction::isCreatingInstanceOrArray)
&& rhsRoot.isDefinedByInstructionSatisfying(Instruction::isCreatingInstanceOrArray)) {
// Comparing two newly created objects.
- assert theIf.getType() == Type.EQ || theIf.getType() == Type.NE;
+ assert theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE;
simplifyIfWithKnownCondition(code, block, theIf, theIf.targetFromCondition(1));
return true;
}
@@ -2888,7 +2888,7 @@
return true;
}
- if (theIf.getType() == Type.EQ || theIf.getType() == Type.NE) {
+ if (theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE) {
AbstractValue lhsAbstractValue = lhs.getAbstractValue(appView, code.context());
AbstractValue rhsAbstractValue = rhs.getAbstractValue(appView, code.context());
if (lhsAbstractValue.isConstantOrNonConstantNumberValue()
@@ -2947,7 +2947,7 @@
}
}
- if (theIf.getType() == Type.EQ || theIf.getType() == Type.NE) {
+ if (theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE) {
ProgramMethod context = code.context();
AbstractValue abstractValue = lhs.getAbstractValue(appView, context);
if (abstractValue.isSingleConstClassValue()) {
@@ -3046,7 +3046,7 @@
}
If ifInstruction = lastInstruction.asIf();
- Type type = ifInstruction.getType();
+ IfType type = ifInstruction.getType();
Value lhs = ifInstruction.inValues().get(0);
Value rhs = !ifInstruction.isZeroTest() ? ifInstruction.inValues().get(1) : null;
@@ -3059,12 +3059,12 @@
// If the type is neither EQ nor NE, we cannot conclude anything about any of the in-values
// of the if-instruction from the outcome of the if-instruction.
- if (type != Type.EQ && type != Type.NE) {
+ if (type != IfType.EQ && type != IfType.NE) {
continue;
}
BasicBlock trueTarget, falseTarget;
- if (type == Type.EQ) {
+ if (type == IfType.EQ) {
trueTarget = ifInstruction.getTrueTarget();
falseTarget = ifInstruction.fallthroughBlock();
} else {
@@ -3538,20 +3538,20 @@
if (trueValue.isConstNumber() && falseValue.isConstNumber()) {
ConstNumber trueNumber = trueValue.getConstInstruction().asConstNumber();
ConstNumber falseNumber = falseValue.getConstInstruction().asConstNumber();
- if ((theIf.getType() == Type.EQ &&
- trueNumber.isIntegerZero() &&
- falseNumber.isIntegerOne()) ||
- (theIf.getType() == Type.NE &&
- trueNumber.isIntegerOne() &&
- falseNumber.isIntegerZero())) {
+ if ((theIf.getType() == IfType.EQ
+ && trueNumber.isIntegerZero()
+ && falseNumber.isIntegerOne())
+ || (theIf.getType() == IfType.NE
+ && trueNumber.isIntegerOne()
+ && falseNumber.isIntegerZero())) {
phi.replaceUsers(testValue);
deadPhis++;
- } else if ((theIf.getType() == Type.NE &&
- trueNumber.isIntegerZero() &&
- falseNumber.isIntegerOne()) ||
- (theIf.getType() == Type.EQ &&
- trueNumber.isIntegerOne() &&
- falseNumber.isIntegerZero())) {
+ } else if ((theIf.getType() == IfType.NE
+ && trueNumber.isIntegerZero()
+ && falseNumber.isIntegerOne())
+ || (theIf.getType() == IfType.EQ
+ && trueNumber.isIntegerOne()
+ && falseNumber.isIntegerZero())) {
Value newOutValue = code.createValue(phi.getType(), phi.getLocalInfo());
ConstNumber cstToUse = trueNumber.isIntegerOne() ? trueNumber : falseNumber;
BasicBlock phiBlock = phi.getBlock();
@@ -3951,7 +3951,7 @@
} else {
// Insert "if (argument != null) ...".
successor = block.unlinkSingleSuccessor();
- If theIf = new If(Type.NE, argument);
+ If theIf = new If(IfType.NE, argument);
theIf.setPosition(position);
BasicBlock ifBlock =
BasicBlock.createIfBlock(code.getNextBlockNumber(), theIf, code.metadata());
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
index 592b645..d19fa89 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/Inliner.java
@@ -41,6 +41,7 @@
import com.android.tools.r8.ir.code.InvokeMethod;
import com.android.tools.r8.ir.code.InvokeVirtual;
import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.MoveException;
import com.android.tools.r8.ir.code.Phi;
import com.android.tools.r8.ir.code.Position;
@@ -676,10 +677,10 @@
}
// Insert the monitor-enter and monitor-exit instructions.
- monitorEnterBlockIterator.add(new Monitor(Monitor.Type.ENTER, lockValue));
+ monitorEnterBlockIterator.add(new Monitor(MonitorType.ENTER, lockValue));
if (monitorExitBlockIterator != null) {
monitorExitBlockIterator.previous();
- monitorExitBlockIterator.add(new Monitor(Monitor.Type.EXIT, lockValue));
+ monitorExitBlockIterator.add(new Monitor(MonitorType.EXIT, lockValue));
monitorExitBlock.close(null);
}
@@ -693,7 +694,7 @@
InstructionListIterator instructionIterator =
block.listIterator(code, block.getInstructions().size() - 1);
instructionIterator.setInsertionPosition(Position.syntheticNone());
- instructionIterator.add(new Monitor(Monitor.Type.EXIT, lockValue));
+ instructionIterator.add(new Monitor(MonitorType.EXIT, lockValue));
}
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java b/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
index 3801d7c..59c066f 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/InliningConstraints.java
@@ -20,7 +20,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.MethodResolutionResult;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.optimize.Inliner.Constraint;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
@@ -143,7 +143,7 @@
return forFieldInstruction(field, context);
}
- public ConstraintWithTarget forInvoke(DexMethod method, Type type, ProgramMethod context) {
+ public ConstraintWithTarget forInvoke(DexMethod method, InvokeType type, ProgramMethod context) {
switch (type) {
case DIRECT:
return forInvokeDirect(method, context);
@@ -171,7 +171,7 @@
public ConstraintWithTarget forInvokeDirect(DexMethod method, ProgramMethod context) {
DexMethod lookup =
- graphLens.lookupMethod(method, context.getReference(), Type.DIRECT).getReference();
+ graphLens.lookupMethod(method, context.getReference(), InvokeType.DIRECT).getReference();
if (lookup.holder.isArrayType()) {
return ConstraintWithTarget.ALWAYS;
}
@@ -185,7 +185,7 @@
public ConstraintWithTarget forInvokeInterface(DexMethod method, ProgramMethod context) {
DexMethod lookup =
- graphLens.lookupMethod(method, context.getReference(), Type.INTERFACE).getReference();
+ graphLens.lookupMethod(method, context.getReference(), InvokeType.INTERFACE).getReference();
return forVirtualInvoke(lookup, context, true);
}
@@ -203,7 +203,7 @@
public ConstraintWithTarget forInvokeStatic(DexMethod method, ProgramMethod context) {
DexMethod lookup =
- graphLens.lookupMethod(method, context.getReference(), Type.STATIC).getReference();
+ graphLens.lookupMethod(method, context.getReference(), InvokeType.STATIC).getReference();
if (lookup.holder.isArrayType()) {
return ConstraintWithTarget.ALWAYS;
}
@@ -260,7 +260,7 @@
public ConstraintWithTarget forInvokeVirtual(DexMethod method, ProgramMethod context) {
DexMethod lookup =
- graphLens.lookupMethod(method, context.getReference(), Type.VIRTUAL).getReference();
+ graphLens.lookupMethod(method, context.getReference(), InvokeType.VIRTUAL).getReference();
return forVirtualInvoke(lookup, context, false);
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
index 543eeb7..72a2169 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/classinliner/InlineCandidateProcessor.java
@@ -37,6 +37,7 @@
import com.android.tools.r8.ir.code.CheckCast;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.InstanceGet;
import com.android.tools.r8.ir.code.InstanceOf;
import com.android.tools.r8.ir.code.InstancePut;
@@ -350,8 +351,8 @@
// Allow some IF instructions.
if (user.isIf()) {
If ifInsn = user.asIf();
- If.Type type = ifInsn.getType();
- if (ifInsn.isZeroTest() && (type == If.Type.EQ || type == If.Type.NE)) {
+ IfType type = ifInsn.getType();
+ if (ifInsn.isZeroTest() && (type == IfType.EQ || type == IfType.NE)) {
// Allow ==/!= null tests, we know that the instance is a non-null value.
continue;
}
@@ -637,13 +638,13 @@
assert ifInsn.isZeroTest()
: "Unexpected usage in non-zero-test IF instruction: " + user;
BasicBlock block = user.getBlock();
- If.Type type = ifInsn.getType();
- assert type == If.Type.EQ || type == If.Type.NE
+ IfType type = ifInsn.getType();
+ assert type == IfType.EQ || type == IfType.NE
: "Unexpected type in zero-test IF instruction: " + user;
- BasicBlock newBlock = type == If.Type.EQ
- ? ifInsn.fallthroughBlock() : ifInsn.getTrueTarget();
- BasicBlock blockToRemove = type == If.Type.EQ
- ? ifInsn.getTrueTarget() : ifInsn.fallthroughBlock();
+ BasicBlock newBlock =
+ type == IfType.EQ ? ifInsn.fallthroughBlock() : ifInsn.getTrueTarget();
+ BasicBlock blockToRemove =
+ type == IfType.EQ ? ifInsn.getTrueTarget() : ifInsn.fallthroughBlock();
assert newBlock != blockToRemove;
block.replaceSuccessor(blockToRemove, newBlock);
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
index 6fb553c..0f7e4bb 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxerImpl.java
@@ -64,6 +64,7 @@
import com.android.tools.r8.ir.code.FieldInstruction;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.InitClass;
import com.android.tools.r8.ir.code.InstanceGet;
import com.android.tools.r8.ir.code.Instruction;
@@ -1218,7 +1219,7 @@
// or e == X with X of same enum type as e. Ex: if (e == MyEnum.A).
private Reason analyzeIfUser(
If theIf, IRCode code, ProgramMethod context, DexProgramClass enumClass, Value enumValue) {
- assert (theIf.getType() == If.Type.EQ || theIf.getType() == If.Type.NE)
+ assert (theIf.getType() == IfType.EQ || theIf.getType() == IfType.NE)
: "Comparing a reference with " + theIf.getType().toString();
// e == null.
if (theIf.isZeroTest()) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCfMethods.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCfMethods.java
index 8ab61f6..be89c4e 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCfMethods.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingCfMethods.java
@@ -31,7 +31,7 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
@@ -58,9 +58,9 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.EQ, ValueType.INT, label1),
+ new CfIf(IfType.EQ, ValueType.INT, label1),
new CfLoad(ValueType.INT, 1),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfFrame(
new Int2ObjectAVLTreeMap<>(
@@ -102,7 +102,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -120,7 +120,7 @@
new int[] {0, 1}, new FrameType[] {FrameType.intType(), FrameType.intType()})),
new CfLoad(ValueType.INT, 0),
new CfLoad(ValueType.INT, 1),
- new CfIfCmp(If.Type.NE, ValueType.INT, label3),
+ new CfIfCmp(IfType.NE, ValueType.INT, label3),
new CfConstNumber(1, ValueType.INT),
new CfGoto(label4),
label3,
@@ -151,7 +151,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -207,7 +207,7 @@
new CfLoad(ValueType.INT, 2),
new CfLoad(ValueType.OBJECT, 1),
new CfArrayLength(),
- new CfIfCmp(If.Type.GE, ValueType.INT, label5),
+ new CfIfCmp(IfType.GE, ValueType.INT, label5),
label3,
new CfLoad(ValueType.OBJECT, 1),
new CfLoad(ValueType.INT, 2),
@@ -245,7 +245,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -279,7 +279,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.INT, 0),
- new CfIf(If.Type.NE, ValueType.INT, label2),
+ new CfIf(IfType.NE, ValueType.INT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/NullPointerException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingLens.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingLens.java
index a76e4d9..fa272ca 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingLens.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/EnumUnboxingLens.java
@@ -17,7 +17,7 @@
import com.android.tools.r8.ir.analysis.value.AbstractValueFactory;
import com.android.tools.r8.ir.analysis.value.SingleFieldValue;
import com.android.tools.r8.ir.analysis.value.SingleValue;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.ExtraUnusedNullParameter;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.BooleanUtils;
@@ -111,12 +111,12 @@
}
@Override
- protected Invoke.Type mapInvocationType(
- DexMethod newMethod, DexMethod originalMethod, Invoke.Type type) {
+ protected InvokeType mapInvocationType(
+ DexMethod newMethod, DexMethod originalMethod, InvokeType type) {
if (typeMap.containsKey(originalMethod.getHolderType())) {
// Methods moved from unboxed enums to the utility class are either static or statified.
assert newMethod != originalMethod;
- return Invoke.Type.STATIC;
+ return InvokeType.STATIC;
}
return type;
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/enums/classification/EnumUnboxerMethodClassificationAnalysis.java b/src/main/java/com/android/tools/r8/ir/optimize/enums/classification/EnumUnboxerMethodClassificationAnalysis.java
index 3d8bccc..1cedaf3 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/enums/classification/EnumUnboxerMethodClassificationAnalysis.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/enums/classification/EnumUnboxerMethodClassificationAnalysis.java
@@ -15,7 +15,7 @@
import com.android.tools.r8.ir.code.Argument;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionIterator;
import com.android.tools.r8.ir.code.Value;
@@ -95,7 +95,7 @@
{
If ifUser = user.asIf();
if (!ifUser.isZeroTest()
- || (ifUser.getType() != Type.EQ && ifUser.getType() != Type.NE)) {
+ || (ifUser.getType() != IfType.EQ && ifUser.getType() != IfType.NE)) {
return false;
}
seenIf = true;
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java b/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
index ed89e93..f8e784e 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/info/MethodOptimizationInfoCollector.java
@@ -72,7 +72,7 @@
import com.android.tools.r8.ir.code.DominatorTree;
import com.android.tools.r8.ir.code.FieldInstruction;
import com.android.tools.r8.ir.code.IRCode;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.InstancePut;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.Instruction.SideEffectAssumption;
@@ -714,9 +714,10 @@
}
private static boolean isNullCheck(Instruction instr, Value value) {
- return instr.isIf() && instr.asIf().isZeroTest()
+ return instr.isIf()
+ && instr.asIf().isZeroTest()
&& instr.inValues().get(0).equals(value)
- && (instr.asIf().getType() == If.Type.EQ || instr.asIf().getType() == If.Type.NE);
+ && (instr.asIf().getType() == IfType.EQ || instr.asIf().getType() == IfType.NE);
}
/**
@@ -1099,7 +1100,7 @@
if (user.isIf()
&& user.asIf().isZeroTest()
- && (user.asIf().getType() == If.Type.EQ || user.asIf().getType() == If.Type.NE)) {
+ && (user.asIf().getType() == IfType.EQ || user.asIf().getType() == IfType.NE)) {
nullCheckedBlocks.add(user.asIf().targetFromNonNullObject());
}
}
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/inliner/multicallerinliner/MultiCallerInlinerInvokeRegistry.java b/src/main/java/com/android/tools/r8/ir/optimize/inliner/multicallerinliner/MultiCallerInlinerInvokeRegistry.java
index e60c8b5..06dab92 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/inliner/multicallerinliner/MultiCallerInlinerInvokeRegistry.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/inliner/multicallerinliner/MultiCallerInlinerInvokeRegistry.java
@@ -11,7 +11,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.conversion.callgraph.InvokeExtractor;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.collections.ProgramMethodSet;
@@ -35,7 +35,7 @@
@Override
protected void processInvokeWithDynamicDispatch(
- Type type, DexClassAndMethod resolutionResult, ProgramMethod context) {
+ InvokeType type, DexClassAndMethod resolutionResult, ProgramMethod context) {
// Skip calls that dispatch to library methods or library method overrides.
if (resolutionResult.isProgramMethod()
&& resolutionResult.getDefinition().isLibraryMethodOverride().isPossiblyFalse()) {
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java b/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
index b56f246..7a888d8 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/outliner/OutlinerImpl.java
@@ -41,9 +41,9 @@
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InstructionListIterator;
import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
import com.android.tools.r8.ir.code.InvokeMethod;
import com.android.tools.r8.ir.code.InvokeStatic;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.LinearFlowInstructionListIterator;
import com.android.tools.r8.ir.code.Mul;
import com.android.tools.r8.ir.code.NewInstance;
@@ -398,13 +398,17 @@
private static class InvokeOutlineInstruction extends OutlineInstruction {
private final DexMethod method;
- private final Invoke.Type invokeType;
+ private final InvokeType invokeType;
private final boolean hasOutValue;
private final DexProto proto;
private final boolean hasReceiver;
private InvokeOutlineInstruction(
- DexMethod method, Type type, boolean hasOutValue, ValueType[] inputTypes, DexProto proto) {
+ DexMethod method,
+ InvokeType type,
+ boolean hasOutValue,
+ ValueType[] inputTypes,
+ DexProto proto) {
super(OutlineInstructionType.INVOKE);
hasReceiver = inputTypes.length != method.proto.parameters.values.length;
assert !hasReceiver || inputTypes[0].isObject();
diff --git a/src/main/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizations.java b/src/main/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizations.java
index f06beb7..3c80c65 100644
--- a/src/main/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizations.java
+++ b/src/main/java/com/android/tools/r8/ir/optimize/templates/CfUtilityMethodsForCodeOptimizations.java
@@ -21,7 +21,7 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.google.common.collect.ImmutableList;
import it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap;
@@ -50,7 +50,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfNew(factory.createType("Ljava/lang/ClassCastException;")),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
@@ -183,7 +183,7 @@
ImmutableList.of(
label0,
new CfLoad(ValueType.OBJECT, 0),
- new CfIf(If.Type.EQ, ValueType.OBJECT, label2),
+ new CfIf(IfType.EQ, ValueType.OBJECT, label2),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInvoke(
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
index 2852ce9..7b43ba8 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/EmulateDispatchSyntheticCfCodeProvider.java
@@ -19,7 +19,7 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import java.util.ArrayList;
import java.util.LinkedHashMap;
@@ -68,7 +68,7 @@
instructions.add(new CfLoad(ValueType.fromDexType(receiverType), 0));
instructions.add(new CfInstanceOf(interfaceMethod.holder));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, labels[nextLabel]));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, labels[nextLabel]));
// Branch with library call.
instructions.add(new CfLoad(ValueType.fromDexType(receiverType), 0));
@@ -84,7 +84,7 @@
instructions.add(frame);
instructions.add(new CfLoad(ValueType.fromDexType(receiverType), 0));
instructions.add(new CfInstanceOf(dispatch.getKey()));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, labels[nextLabel]));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, labels[nextLabel]));
// Call basic block.
instructions.add(new CfLoad(ValueType.fromDexType(receiverType), 0));
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
index 34e3f71..941248a 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/EnumUnboxingCfCodeProvider.java
@@ -30,7 +30,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.analysis.value.AbstractValue;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.optimize.enums.EnumDataMap.EnumData;
import com.android.tools.r8.ir.optimize.enums.EnumInstanceFieldData.EnumInstanceFieldMappingData;
@@ -109,7 +109,7 @@
CfLabel dest = new CfLabel();
instructions.add(new CfLoad(ValueType.fromDexType(factory.intType), 0));
instructions.add(new CfConstNumber(unboxedEnumValue, ValueType.INT));
- instructions.add(new CfIfCmp(If.Type.NE, ValueType.INT, dest));
+ instructions.add(new CfIfCmp(IfType.NE, ValueType.INT, dest));
addCfInstructionsForAbstractValue(instructions, value, returnType);
instructions.add(new CfReturn(ValueType.fromDexType(returnType)));
instructions.add(dest);
@@ -163,7 +163,7 @@
// if (s == null) { throw npe("Name is null"); }
CfLabel nullDest = new CfLabel();
instructions.add(new CfLoad(ValueType.fromDexType(factory.stringType), 0));
- instructions.add(new CfIf(If.Type.NE, ValueType.OBJECT, nullDest));
+ instructions.add(new CfIf(IfType.NE, ValueType.OBJECT, nullDest));
instructions.add(new CfNew(factory.npeType));
instructions.add(new CfStackInstruction(Opcode.Dup));
instructions.add(new CfConstString(appView.dexItemFactory().createString("Name is null")));
@@ -182,7 +182,7 @@
addCfInstructionsForAbstractValue(instructions, value, factory.stringType);
instructions.add(
new CfInvoke(Opcodes.INVOKEVIRTUAL, factory.stringMembers.equals, false));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, dest));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, dest));
instructions.add(new CfConstNumber(unboxedEnumValue, ValueType.INT));
instructions.add(new CfReturn(ValueType.INT));
instructions.add(dest);
@@ -241,7 +241,7 @@
List<CfInstruction> instructions = new ArrayList<>();
CfLabel nullDest = new CfLabel();
instructions.add(new CfStaticFieldRead(utilityField, utilityField));
- instructions.add(new CfIf(If.Type.NE, ValueType.OBJECT, nullDest));
+ instructions.add(new CfIf(IfType.NE, ValueType.OBJECT, nullDest));
instructions.add((new CfConstNumber(numEnumInstances, ValueType.INT)));
assert initializationMethod.getArity() == 1;
instructions.add(new CfInvoke(Opcodes.INVOKESTATIC, initializationMethod, false));
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/ForwardMethodSourceCode.java b/src/main/java/com/android/tools/r8/ir/synthetic/ForwardMethodSourceCode.java
index 9e708cc..f79b740 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/ForwardMethodSourceCode.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/ForwardMethodSourceCode.java
@@ -8,8 +8,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.graph.ProgramMethod;
-import com.android.tools.r8.ir.code.Invoke;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.conversion.IRBuilder;
@@ -32,7 +31,7 @@
private DexMethod originalMethod;
private DexType targetReceiver;
private DexMethod target;
- private Invoke.Type invokeType;
+ private InvokeType invokeType;
private boolean castResult;
private boolean isInterface;
private boolean extraNullParameter;
@@ -67,7 +66,7 @@
return this;
}
- public Builder setInvokeType(Type invokeType) {
+ public Builder setInvokeType(InvokeType invokeType) {
this.invokeType = invokeType;
return this;
}
@@ -104,7 +103,7 @@
private final DexType targetReceiver;
private final DexMethod target;
- private final Invoke.Type invokeType;
+ private final InvokeType invokeType;
private final boolean castResult;
private final boolean isInterface;
private final boolean extraNullParameter;
@@ -115,13 +114,13 @@
DexMethod originalMethod,
DexType targetReceiver,
DexMethod target,
- Type invokeType,
+ InvokeType invokeType,
Position callerPosition,
boolean isInterface,
boolean castResult,
boolean extraNullParameter) {
super(receiver, method, callerPosition, originalMethod);
- assert (targetReceiver == null) == (invokeType == Invoke.Type.STATIC);
+ assert (targetReceiver == null) == (invokeType == InvokeType.STATIC);
this.target = target;
this.targetReceiver = targetReceiver;
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/RecordCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/RecordCfCodeProvider.java
index f328c2c..6602826 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/RecordCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/RecordCfCodeProvider.java
@@ -25,7 +25,7 @@
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.ValueType;
import java.util.ArrayList;
@@ -168,7 +168,7 @@
instructions.add(new CfInvoke(Opcodes.INVOKEVIRTUAL, factory.objectMembers.getClass, false));
instructions.add(new CfLoad(objectType, 1));
instructions.add(new CfInvoke(Opcodes.INVOKEVIRTUAL, factory.objectMembers.getClass, false));
- instructions.add(new CfIfCmp(If.Type.EQ, ValueType.OBJECT, fieldCmp));
+ instructions.add(new CfIfCmp(IfType.EQ, ValueType.OBJECT, fieldCmp));
instructions.add(new CfConstNumber(0, ValueType.INT));
instructions.add(new CfReturn(ValueType.INT));
instructions.add(fieldCmp);
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/EqualsCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/EqualsCfCodeProvider.java
index febbc58..02c7c9d 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/EqualsCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/EqualsCfCodeProvider.java
@@ -20,7 +20,7 @@
import com.android.tools.r8.graph.CfCode;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.ir.synthetic.SyntheticCfCodeProvider;
import it.unimi.dsi.fastutil.ints.Int2ObjectAVLTreeMap;
@@ -57,7 +57,7 @@
// other instanceof WrapperType
instructions.add(new CfLoad(ValueType.OBJECT, 1));
instructions.add(new CfInstanceOf(wrapperType));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, label1));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, label1));
// ((WrapperType) other).wrapperField
instructions.add(new CfLoad(ValueType.OBJECT, 1));
diff --git a/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/NullableConversionCfCodeProvider.java b/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/NullableConversionCfCodeProvider.java
index 8f0f2f4..cb117c5 100644
--- a/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/NullableConversionCfCodeProvider.java
+++ b/src/main/java/com/android/tools/r8/ir/synthetic/apiconverter/NullableConversionCfCodeProvider.java
@@ -36,7 +36,7 @@
import com.android.tools.r8.graph.DexItemFactory;
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.MemberType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.ValueType;
@@ -55,7 +55,7 @@
void generateNullCheck(List<CfInstruction> instructions) {
CfLabel nullDest = new CfLabel();
instructions.add(new CfLoad(ValueType.OBJECT, 0));
- instructions.add(new CfIf(If.Type.NE, ValueType.OBJECT, nullDest));
+ instructions.add(new CfIf(IfType.NE, ValueType.OBJECT, nullDest));
instructions.add(new CfConstNull());
instructions.add(new CfReturn(ValueType.OBJECT));
instructions.add(nullDest);
@@ -114,7 +114,7 @@
instructions.add(frame);
instructions.add(new CfLoad(ValueType.INT, 3));
instructions.add(new CfLoad(ValueType.INT, 1));
- instructions.add(new CfIfCmp(If.Type.GE, ValueType.INT, returnLabel));
+ instructions.add(new CfIfCmp(IfType.GE, ValueType.INT, returnLabel));
// t2[t3] = convert(arg[t3]);
instructions.add(new CfLoad(ValueType.fromDexType(convertedTypeArray), 2));
instructions.add(new CfLoad(ValueType.INT, 3));
@@ -176,7 +176,7 @@
instructions.add(new CfLoad(ValueType.fromDexType(enumType), 0));
instructions.add(
new CfStaticFieldRead(factory.createField(enumType, enumType, enumField.getName())));
- instructions.add(new CfIfCmp(If.Type.NE, ValueType.OBJECT, notEqual));
+ instructions.add(new CfIfCmp(IfType.NE, ValueType.OBJECT, notEqual));
}
instructions.add(
new CfStaticFieldRead(
@@ -225,7 +225,7 @@
CfLabel unwrapDest = new CfLabel();
instructions.add(new CfLoad(ValueType.fromDexType(argType), 0));
instructions.add(new CfInstanceOf(reverseWrapperField.holder));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, unwrapDest));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, unwrapDest));
instructions.add(new CfLoad(ValueType.fromDexType(argType), 0));
instructions.add(new CfCheckCast(reverseWrapperField.holder));
instructions.add(new CfInstanceFieldRead(reverseWrapperField));
@@ -241,7 +241,7 @@
DexType convertArgType = convert.getArgumentType(0, true);
instructions.add(new CfLoad(ValueType.fromDexType(argType), 0));
instructions.add(new CfInstanceOf(convertArgType));
- instructions.add(new CfIf(If.Type.EQ, ValueType.INT, dest));
+ instructions.add(new CfIf(IfType.EQ, ValueType.INT, dest));
instructions.add(new CfLoad(ValueType.fromDexType(argType), 0));
instructions.add(new CfCheckCast(convertArgType));
instructions.add(new CfInvoke(Opcodes.INVOKESTATIC, convert, false));
diff --git a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
index d0677f4..1f89cc6 100644
--- a/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
+++ b/src/main/java/com/android/tools/r8/lightir/Lir2IRConverter.java
@@ -23,7 +23,7 @@
import com.android.tools.r8.ir.code.Goto;
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.InvokeDirect;
import com.android.tools.r8.ir.code.InvokeVirtual;
@@ -315,7 +315,7 @@
}
@Override
- public void onIf(Type ifKind, int blockIndex, int valueIndex) {
+ public void onIf(IfType ifKind, int blockIndex, int valueIndex) {
BasicBlock targetBlock = getBasicBlock(blockIndex);
Value value = getValue(valueIndex);
addInstruction(new If(ifKind, value));
diff --git a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
index 7ec7244..926d64f 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirBuilder.java
@@ -15,7 +15,7 @@
import com.android.tools.r8.ir.analysis.type.TypeElement;
import com.android.tools.r8.ir.code.CatchHandlers;
import com.android.tools.r8.ir.code.IRMetadata;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.ir.code.Position;
import com.android.tools.r8.ir.code.Position.SyntheticPosition;
@@ -345,7 +345,7 @@
return this;
}
- public LirBuilder<V, B> addIf(Type ifKind, ValueType valueType, V value, B trueTarget) {
+ public LirBuilder<V, B> addIf(IfType ifKind, ValueType valueType, V value, B trueTarget) {
int opcode;
switch (ifKind) {
case EQ:
@@ -380,7 +380,7 @@
}
public LirBuilder<V, B> addIfCmp(
- Type ifKind, ValueType valueType, List<V> inValues, B trueTarget) {
+ IfType ifKind, ValueType valueType, List<V> inValues, B trueTarget) {
int opcode;
switch (ifKind) {
case EQ:
diff --git a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
index dba40f8..5b72543 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirParsedInstructionCallback.java
@@ -9,7 +9,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.NumericType;
import it.unimi.dsi.fastutil.ints.IntArrayList;
import it.unimi.dsi.fastutil.ints.IntList;
@@ -74,7 +74,7 @@
onDiv(NumericType.INT, leftValueIndex, rightValueIndex);
}
- public void onIf(If.Type ifKind, int blockIndex, int valueIndex) {
+ public void onIf(IfType ifKind, int blockIndex, int valueIndex) {
onInstruction();
}
@@ -181,7 +181,7 @@
{
int blockIndex = view.getNextBlockOperand();
int valueIndex = getNextValueOperand(view);
- onIf(If.Type.NE, blockIndex, valueIndex);
+ onIf(IfType.NE, blockIndex, valueIndex);
return;
}
case LirOpcodes.GOTO:
diff --git a/src/main/java/com/android/tools/r8/lightir/LirPrinter.java b/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
index 93d117b..4e6e2d6 100644
--- a/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
+++ b/src/main/java/com/android/tools/r8/lightir/LirPrinter.java
@@ -8,7 +8,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.DexString;
import com.android.tools.r8.graph.DexType;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.NumericType;
import com.android.tools.r8.utils.StringUtils;
import it.unimi.dsi.fastutil.ints.IntList;
@@ -134,7 +134,7 @@
}
@Override
- public void onIf(Type ifKind, int blockIndex, int valueIndex) {
+ public void onIf(IfType ifKind, int blockIndex, int valueIndex) {
builder.append(fmtValueIndex(valueIndex)).append(' ').append(fmtInsnIndex(blockIndex));
}
diff --git a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
index b6abede..383c931 100644
--- a/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
+++ b/src/main/java/com/android/tools/r8/optimize/MemberRebindingAnalysis.java
@@ -23,7 +23,7 @@
import com.android.tools.r8.graph.MethodResolutionResult.SingleResolutionResult;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.UseRegistry;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.BiForEachable;
@@ -68,7 +68,7 @@
DexClassAndMethod resolvedMethod,
SingleResolutionResult<?> resolutionResult,
ProgramMethodSet contexts,
- Type invokeType,
+ InvokeType invokeType,
DexMethod original) {
assert !resolvedMethod.isProgramMethod();
@@ -145,7 +145,7 @@
DexClassAndMethod resolvedMethod,
SingleResolutionResult<?> resolutionResult,
ProgramMethodSet contexts,
- Type invokeType,
+ InvokeType invokeType,
DexMethod original) {
// TODO(b/194422791): It could potentially be that `original.holder` is not a subtype of
// `original.holder` on all API levels, in which case it is not OK to rebind to the resolved
@@ -170,11 +170,11 @@
context -> resolutionResult.isAccessibleFrom(context, appView.appInfo()).isTrue());
}
- private boolean isInvokeSuperToInterfaceMethod(DexClassAndMethod method, Type invokeType) {
+ private boolean isInvokeSuperToInterfaceMethod(DexClassAndMethod method, InvokeType invokeType) {
return method.getHolder().isInterface() && invokeType.isSuper();
}
- private boolean isInvokeSuperToAbstractMethod(DexClassAndMethod method, Type invokeType) {
+ private boolean isInvokeSuperToAbstractMethod(DexClassAndMethod method, InvokeType invokeType) {
return method.getAccessFlags().isAbstract() && invokeType.isSuper();
}
@@ -264,24 +264,26 @@
private void computeMethodRebinding(MethodAccessInfoCollection methodAccessInfoCollection) {
// Virtual invokes are on classes, so use class resolution.
computeMethodRebinding(
- methodAccessInfoCollection::forEachVirtualInvoke, this::resolveMethodOnClass, Type.VIRTUAL);
+ methodAccessInfoCollection::forEachVirtualInvoke,
+ this::resolveMethodOnClass,
+ InvokeType.VIRTUAL);
// Interface invokes are always on interfaces, so use interface resolution.
computeMethodRebinding(
methodAccessInfoCollection::forEachInterfaceInvoke,
this::resolveMethodOnInterface,
- Type.INTERFACE);
+ InvokeType.INTERFACE);
// Super invokes can be on both kinds, decide using the holder class.
computeMethodRebinding(
- methodAccessInfoCollection::forEachSuperInvoke, this::resolveMethod, Type.SUPER);
+ methodAccessInfoCollection::forEachSuperInvoke, this::resolveMethod, InvokeType.SUPER);
// Likewise static invokes.
computeMethodRebinding(
- methodAccessInfoCollection::forEachStaticInvoke, this::resolveMethod, Type.STATIC);
+ methodAccessInfoCollection::forEachStaticInvoke, this::resolveMethod, InvokeType.STATIC);
}
private void computeMethodRebinding(
BiForEachable<DexMethod, ProgramMethodSet> methodsWithContexts,
Function<DexMethod, MethodResolutionResult> resolver,
- Type invokeType) {
+ InvokeType invokeType) {
Map<DexProgramClass, List<Pair<DexMethod, DexClassAndMethod>>> bridges =
new IdentityHashMap<>();
TriConsumer<DexProgramClass, DexMethod, DexClassAndMethod> addBridge =
@@ -394,9 +396,9 @@
}
private boolean needsBridgeForInterfaceMethod(
- DexClass originalClass, DexClassAndMethod method, Type invokeType) {
+ DexClass originalClass, DexClassAndMethod method, InvokeType invokeType) {
return options.isGeneratingClassFiles()
- && invokeType == Type.SUPER
+ && invokeType == InvokeType.SUPER
&& method.getHolder() != originalClass
&& method.getHolder().isInterface();
}
diff --git a/src/main/java/com/android/tools/r8/optimize/MemberRebindingLens.java b/src/main/java/com/android/tools/r8/optimize/MemberRebindingLens.java
index 306d53e..367cd15 100644
--- a/src/main/java/com/android/tools/r8/optimize/MemberRebindingLens.java
+++ b/src/main/java/com/android/tools/r8/optimize/MemberRebindingLens.java
@@ -16,7 +16,7 @@
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.GraphLens.NonIdentityGraphLens;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import java.util.Collections;
import java.util.IdentityHashMap;
@@ -25,12 +25,12 @@
public class MemberRebindingLens extends NonIdentityGraphLens {
private final AppView<AppInfoWithLiveness> appView;
- private final Map<Invoke.Type, Map<DexMethod, DexMethod>> methodMaps;
+ private final Map<InvokeType, Map<DexMethod, DexMethod>> methodMaps;
private final Map<DexField, DexField> nonReboundFieldReferenceToDefinitionMap;
public MemberRebindingLens(
AppView<AppInfoWithLiveness> appView,
- Map<Invoke.Type, Map<DexMethod, DexMethod>> methodMaps,
+ Map<InvokeType, Map<DexMethod, DexMethod>> methodMaps,
Map<DexField, DexField> nonReboundFieldReferenceToDefinitionMap) {
super(appView.dexItemFactory(), appView.graphLens());
this.appView = appView;
@@ -167,7 +167,7 @@
public static class Builder {
private final AppView<AppInfoWithLiveness> appView;
- private final Map<Invoke.Type, Map<DexMethod, DexMethod>> methodMaps = new IdentityHashMap<>();
+ private final Map<InvokeType, Map<DexMethod, DexMethod>> methodMaps = new IdentityHashMap<>();
private final Map<DexField, DexField> nonReboundFieldReferenceToDefinitionMap =
new IdentityHashMap<>();
@@ -175,7 +175,7 @@
this.appView = appView;
}
- public void map(DexMethod from, DexMethod to, Invoke.Type type) {
+ public void map(DexMethod from, DexMethod to, InvokeType type) {
if (from == to) {
assert !methodMaps.containsKey(type) || methodMaps.get(type).getOrDefault(from, to) == to;
return;
diff --git a/src/main/java/com/android/tools/r8/optimize/PublicizerLens.java b/src/main/java/com/android/tools/r8/optimize/PublicizerLens.java
index 322ccb1..a3365ce 100644
--- a/src/main/java/com/android/tools/r8/optimize/PublicizerLens.java
+++ b/src/main/java/com/android/tools/r8/optimize/PublicizerLens.java
@@ -9,7 +9,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.GraphLens;
import com.android.tools.r8.graph.NestedGraphLens;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.google.common.collect.Sets;
import java.util.Set;
@@ -39,19 +39,21 @@
@Override
public MethodLookupResult internalDescribeLookupMethod(
MethodLookupResult previous, DexMethod context) {
- if (previous.getType() == Type.DIRECT && publicizedMethods.contains(previous.getReference())) {
+ if (previous.getType() == InvokeType.DIRECT
+ && publicizedMethods.contains(previous.getReference())) {
assert publicizedMethodIsPresentOnHolder(previous.getReference(), context);
return MethodLookupResult.builder(this)
.setReference(previous.getReference())
.setPrototypeChanges(previous.getPrototypeChanges())
- .setType(Type.VIRTUAL)
+ .setType(InvokeType.VIRTUAL)
.build();
}
return previous;
}
private boolean publicizedMethodIsPresentOnHolder(DexMethod method, DexMethod context) {
- MethodLookupResult lookup = appView.graphLens().lookupMethod(method, context, Type.VIRTUAL);
+ MethodLookupResult lookup =
+ appView.graphLens().lookupMethod(method, context, InvokeType.VIRTUAL);
DexMethod signatureInCurrentWorld = lookup.getReference();
DexClass clazz = appView.definitionFor(signatureInCurrentWorld.holder);
assert clazz != null;
diff --git a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorGraphLens.java b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorGraphLens.java
index fc48b5d..35b3a9c 100644
--- a/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorGraphLens.java
+++ b/src/main/java/com/android/tools/r8/optimize/argumentpropagation/ArgumentPropagatorGraphLens.java
@@ -9,7 +9,7 @@
import com.android.tools.r8.graph.DexMethod;
import com.android.tools.r8.graph.NestedGraphLens;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.shaking.AppInfoWithLiveness;
import com.android.tools.r8.utils.collections.BidirectionalOneToOneHashMap;
import com.android.tools.r8.utils.collections.BidirectionalOneToOneMap;
@@ -100,12 +100,13 @@
}
@Override
- protected Type mapInvocationType(DexMethod newMethod, DexMethod originalMethod, Type type) {
+ protected InvokeType mapInvocationType(
+ DexMethod newMethod, DexMethod originalMethod, InvokeType type) {
return hasPrototypeChanges(newMethod)
&& getPrototypeChanges(newMethod)
.getArgumentInfoCollection()
.isConvertedToStaticMethod()
- ? Type.STATIC
+ ? InvokeType.STATIC
: super.mapInvocationType(newMethod, originalMethod, type);
}
diff --git a/src/main/java/com/android/tools/r8/optimize/redundantbridgeremoval/RedundantBridgeRemovalLens.java b/src/main/java/com/android/tools/r8/optimize/redundantbridgeremoval/RedundantBridgeRemovalLens.java
index 042cc6a..343cece 100644
--- a/src/main/java/com/android/tools/r8/optimize/redundantbridgeremoval/RedundantBridgeRemovalLens.java
+++ b/src/main/java/com/android/tools/r8/optimize/redundantbridgeremoval/RedundantBridgeRemovalLens.java
@@ -13,7 +13,7 @@
import com.android.tools.r8.graph.GraphLens.NonIdentityGraphLens;
import com.android.tools.r8.graph.ProgramMethod;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke;
+import com.android.tools.r8.ir.code.InvokeType;
import com.google.common.collect.Sets;
import java.util.IdentityHashMap;
import java.util.Map;
@@ -91,7 +91,7 @@
.setPrototypeChanges(previous.getPrototypeChanges())
.setType(
holderTypeIsInterface && previous.getType().isVirtual()
- ? Invoke.Type.INTERFACE
+ ? InvokeType.INTERFACE
: previous.getType())
.build();
}
diff --git a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
index f7d7554..f0e4959 100644
--- a/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
+++ b/src/main/java/com/android/tools/r8/shaking/AppInfoWithLiveness.java
@@ -52,7 +52,7 @@
import com.android.tools.r8.ir.analysis.type.DynamicType;
import com.android.tools.r8.ir.analysis.type.TypeAnalysis;
import com.android.tools.r8.ir.analysis.type.TypeElement;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.desugar.LambdaDescriptor;
import com.android.tools.r8.ir.desugar.desugaredlibrary.apiconversion.DesugaredLibraryAPIConverter;
import com.android.tools.r8.ir.desugar.itf.InterfaceDesugaringSyntheticHelper;
@@ -1258,7 +1258,7 @@
public DexEncodedMethod lookupSingleTarget(
AppView<? extends AppInfoWithClassHierarchy> appView,
- Type type,
+ InvokeType type,
DexMethod target,
ProgramMethod context,
LibraryModeledPredicate modeledPredicate) {
@@ -1285,7 +1285,7 @@
public ProgramMethod lookupSingleProgramTarget(
AppView<? extends AppInfoWithClassHierarchy> appView,
- Type type,
+ InvokeType type,
DexMethod target,
ProgramMethod context,
LibraryModeledPredicate modeledPredicate) {
diff --git a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
index dc4c7ea..4dd9d86 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMerger.java
@@ -6,9 +6,9 @@
import static com.android.tools.r8.dex.Constants.TEMPORARY_INSTANCE_INITIALIZER_PREFIX;
import static com.android.tools.r8.graph.DexClassAndMethod.asProgramMethodOrNull;
import static com.android.tools.r8.graph.DexProgramClass.asProgramClassOrNull;
-import static com.android.tools.r8.ir.code.Invoke.Type.DIRECT;
-import static com.android.tools.r8.ir.code.Invoke.Type.STATIC;
-import static com.android.tools.r8.ir.code.Invoke.Type.VIRTUAL;
+import static com.android.tools.r8.ir.code.InvokeType.DIRECT;
+import static com.android.tools.r8.ir.code.InvokeType.STATIC;
+import static com.android.tools.r8.ir.code.InvokeType.VIRTUAL;
import static com.android.tools.r8.utils.AndroidApiLevelUtils.getApiReferenceLevelForMerging;
import com.android.tools.r8.androidapi.AndroidApiLevelCompute;
@@ -64,7 +64,7 @@
import com.android.tools.r8.graph.UseRegistryWithResult;
import com.android.tools.r8.graph.classmerging.VerticallyMergedClasses;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.ir.code.Position.SyntheticPosition;
import com.android.tools.r8.ir.optimize.Inliner.ConstraintWithTarget;
import com.android.tools.r8.ir.optimize.MemberPoolCollection.MemberPool;
@@ -1451,7 +1451,7 @@
DexEncodedMethod oldTarget, DexEncodedMethod newTarget) {
DexMethod oldTargetReference = oldTarget.getReference();
DexMethod newTargetReference = newTarget.getReference();
- Type newTargetType = newTarget.isNonPrivateVirtualMethod() ? VIRTUAL : DIRECT;
+ InvokeType newTargetType = newTarget.isNonPrivateVirtualMethod() ? VIRTUAL : DIRECT;
if (source.accessFlags.isInterface()) {
// If we merge a default interface method from interface I to its subtype C, then we need
// to rewrite invocations on the form "invoke-super I.m()" to "invoke-direct C.m$I()".
@@ -2064,7 +2064,7 @@
@Override
public MethodLookupResult lookupMethod(
- DexMethod method, DexMethod context, Type type, GraphLens codeLens) {
+ DexMethod method, DexMethod context, InvokeType type, GraphLens codeLens) {
// First look up the method using the existing graph lens (for example, the type will have
// changed if the method was publicized by ClassAndMemberPublicizer).
MethodLookupResult lookup = appView.graphLens().lookupMethod(method, context, type, codeLens);
@@ -2078,7 +2078,7 @@
.setReference(newMethod)
.setPrototypeChanges(lookup.getPrototypeChanges())
.setType(lookup.getType());
- if (lookup.getType() == Type.INTERFACE) {
+ if (lookup.getType() == InvokeType.INTERFACE) {
// If an interface has been merged into a class, invoke-interface needs to be translated
// to invoke-virtual.
DexClass clazz = appInfo.definitionFor(newMethod.holder);
@@ -2359,14 +2359,14 @@
private DexMethod method;
private DexMethod originalMethod;
private DexMethod invocationTarget;
- private Type type;
+ private InvokeType type;
private final boolean isInterface;
public SynthesizedBridgeCode(
DexMethod method,
DexMethod originalMethod,
DexMethod invocationTarget,
- Type type,
+ InvokeType type,
boolean isInterface) {
this.method = method;
this.originalMethod = originalMethod;
diff --git a/src/main/java/com/android/tools/r8/shaking/VerticalClassMergerGraphLens.java b/src/main/java/com/android/tools/r8/shaking/VerticalClassMergerGraphLens.java
index d0f940b..259c35a 100644
--- a/src/main/java/com/android/tools/r8/shaking/VerticalClassMergerGraphLens.java
+++ b/src/main/java/com/android/tools/r8/shaking/VerticalClassMergerGraphLens.java
@@ -15,7 +15,7 @@
import com.android.tools.r8.graph.classmerging.VerticallyMergedClasses;
import com.android.tools.r8.graph.proto.ArgumentInfoCollection;
import com.android.tools.r8.graph.proto.RewrittenPrototypeDescription;
-import com.android.tools.r8.ir.code.Invoke.Type;
+import com.android.tools.r8.ir.code.InvokeType;
import com.android.tools.r8.utils.IterableUtils;
import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeHashMap;
import com.android.tools.r8.utils.collections.BidirectionalManyToOneRepresentativeMap;
@@ -110,7 +110,7 @@
MethodLookupResult previous, DexMethod context) {
assert context != null || verifyIsContextFreeForMethod(previous.getReference());
assert context == null || previous.getType() != null;
- if (previous.getType() == Type.SUPER && !mergedMethods.contains(context)) {
+ if (previous.getType() == InvokeType.SUPER && !mergedMethods.contains(context)) {
Map<DexMethod, GraphLensLookupResultProvider> virtualToDirectMethodMap =
contextualVirtualToDirectMethodMaps.get(context.getHolderType());
if (virtualToDirectMethodMap != null) {
@@ -159,7 +159,8 @@
}
@Override
- protected Type mapInvocationType(DexMethod newMethod, DexMethod originalMethod, Type type) {
+ protected InvokeType mapInvocationType(
+ DexMethod newMethod, DexMethod originalMethod, InvokeType type) {
return mapVirtualInterfaceInvocationTypes(appView, newMethod, originalMethod, type);
}
diff --git a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
index fbe55a4..e971964 100644
--- a/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
+++ b/src/main/java/com/android/tools/r8/startup/generated/InstrumentationServerImplFactory.java
@@ -47,8 +47,8 @@
import com.android.tools.r8.graph.MethodAccessFlags;
import com.android.tools.r8.graph.MethodCollection.MethodCollectionFactory;
import com.android.tools.r8.graph.NestHostClassAttribute;
-import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.Monitor;
+import com.android.tools.r8.ir.code.IfType;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.ValueType;
import com.android.tools.r8.origin.Origin;
import com.google.common.collect.ImmutableList;
@@ -340,7 +340,7 @@
factory.createString("lines"))),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
new CfStore(ValueType.OBJECT, 2),
- new CfMonitor(Monitor.Type.ENTER),
+ new CfMonitor(MonitorType.ENTER),
label1,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -356,10 +356,10 @@
factory.createProto(factory.booleanType, factory.objectType),
factory.createString("add")),
false),
- new CfIf(If.Type.NE, ValueType.INT, label4),
+ new CfIf(IfType.NE, ValueType.INT, label4),
label2,
new CfLoad(ValueType.OBJECT, 2),
- new CfMonitor(Monitor.Type.EXIT),
+ new CfMonitor(MonitorType.EXIT),
label3,
new CfReturnVoid(),
label4,
@@ -374,7 +374,7 @@
FrameType.initializedNonNullReference(factory.objectType)
})),
new CfLoad(ValueType.OBJECT, 2),
- new CfMonitor(Monitor.Type.EXIT),
+ new CfMonitor(MonitorType.EXIT),
label5,
new CfGoto(label8),
label6,
@@ -392,7 +392,7 @@
Arrays.asList(FrameType.initializedNonNullReference(factory.throwableType)))),
new CfStore(ValueType.OBJECT, 3),
new CfLoad(ValueType.OBJECT, 2),
- new CfMonitor(Monitor.Type.EXIT),
+ new CfMonitor(MonitorType.EXIT),
label7,
new CfLoad(ValueType.OBJECT, 3),
new CfThrow(),
@@ -411,7 +411,7 @@
factory.createType("Lcom/android/tools/r8/startup/InstrumentationServerImpl;"),
factory.booleanType,
factory.createString("writeToLogcat"))),
- new CfIf(If.Type.EQ, ValueType.INT, label10),
+ new CfIf(IfType.EQ, ValueType.INT, label10),
label9,
new CfLoad(ValueType.OBJECT, 0),
new CfLoad(ValueType.OBJECT, 1),
@@ -542,7 +542,7 @@
factory.createString("lines"))),
new CfStackInstruction(CfStackInstruction.Opcode.Dup),
new CfStore(ValueType.OBJECT, 3),
- new CfMonitor(Monitor.Type.ENTER),
+ new CfMonitor(MonitorType.ENTER),
label2,
new CfLoad(ValueType.OBJECT, 0),
new CfInstanceFieldRead(
@@ -581,7 +581,7 @@
factory.createProto(factory.booleanType),
factory.createString("hasNext")),
true),
- new CfIf(If.Type.EQ, ValueType.INT, label6),
+ new CfIf(IfType.EQ, ValueType.INT, label6),
new CfLoad(ValueType.OBJECT, 4),
new CfInvoke(
185,
@@ -618,7 +618,7 @@
FrameType.initializedNonNullReference(factory.objectType)
})),
new CfLoad(ValueType.OBJECT, 3),
- new CfMonitor(Monitor.Type.EXIT),
+ new CfMonitor(MonitorType.EXIT),
label7,
new CfGoto(label10),
label8,
@@ -638,7 +638,7 @@
Arrays.asList(FrameType.initializedNonNullReference(factory.throwableType)))),
new CfStore(ValueType.OBJECT, 6),
new CfLoad(ValueType.OBJECT, 3),
- new CfMonitor(Monitor.Type.EXIT),
+ new CfMonitor(MonitorType.EXIT),
label9,
new CfLoad(ValueType.OBJECT, 6),
new CfThrow(),
diff --git a/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java b/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
index ea86918..019431d 100644
--- a/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
+++ b/src/test/java/com/android/tools/r8/ir/optimize/TrivialGotoEliminationTest.java
@@ -20,7 +20,7 @@
import com.android.tools.r8.ir.code.IRCode;
import com.android.tools.r8.ir.code.IRMetadata;
import com.android.tools.r8.ir.code.If;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.Instruction;
import com.android.tools.r8.ir.code.NumberGenerator;
import com.android.tools.r8.ir.code.Position;
@@ -164,7 +164,7 @@
instruction = new Argument(value, 0, false);
instruction.setPosition(position);
block0.add(instruction, metadata);
- instruction = new If(Type.EQ, value);
+ instruction = new If(IfType.EQ, value);
instruction.setPosition(position);
block0.add(instruction, metadata);
block0.getMutableSuccessors().add(block2);
diff --git a/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java b/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
index 54fe690..cdc2941 100644
--- a/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
+++ b/src/test/java/com/android/tools/r8/smali/ConstantFoldingTest.java
@@ -16,7 +16,7 @@
import com.android.tools.r8.graph.DexCode;
import com.android.tools.r8.graph.DexEncodedMethod;
import com.android.tools.r8.ir.code.Cmp.Bias;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.android.tools.r8.ir.code.SingleConstant;
import com.android.tools.r8.ir.code.WideConstant;
import com.android.tools.r8.utils.AndroidApp;
@@ -692,11 +692,11 @@
final float a;
final float b;
- final Type type;
+ final IfType type;
final Bias bias;
final boolean expected;
- FloatTestData(float a, float b, Type type, Bias bias) {
+ FloatTestData(float a, float b, IfType type, Bias bias) {
this.a = a;
this.b = b;
this.type = type;
@@ -715,12 +715,12 @@
private void cmpFloatMethodBuilder(SmaliBuilder builder, String name, Object parameters) {
String[] ifOpcode = new String[6];
- ifOpcode[Type.EQ.ordinal()] = "if-eqz";
- ifOpcode[Type.NE.ordinal()] = "if-nez";
- ifOpcode[Type.LE.ordinal()] = "if-lez";
- ifOpcode[Type.GE.ordinal()] = "if-gez";
- ifOpcode[Type.LT.ordinal()] = "if-ltz";
- ifOpcode[Type.GT.ordinal()] = "if-gtz";
+ ifOpcode[IfType.EQ.ordinal()] = "if-eqz";
+ ifOpcode[IfType.NE.ordinal()] = "if-nez";
+ ifOpcode[IfType.LE.ordinal()] = "if-lez";
+ ifOpcode[IfType.GE.ordinal()] = "if-gez";
+ ifOpcode[IfType.LT.ordinal()] = "if-ltz";
+ ifOpcode[IfType.GT.ordinal()] = "if-gtz";
FloatTestData test = (FloatTestData) parameters;
String cmpInstruction;
@@ -765,7 +765,7 @@
// Build the test configuration.
for (int i = 0; i < testValues.length; i++) {
for (int j = 0; j < testValues.length; j++) {
- for (Type type : Type.values()) {
+ for (IfType type : IfType.values()) {
for (Bias bias : Bias.values()) {
if (bias == Bias.NONE) {
// Bias NONE is only for long comparison.
@@ -779,10 +779,10 @@
//
// The numerical comparison operators <, <=, >, and >= return false if either or both
// operands are NaN
- if ((type == Type.GE || type == Type.GT) && bias == Bias.GT) {
+ if ((type == IfType.GE || type == IfType.GT) && bias == Bias.GT) {
continue;
}
- if ((type == Type.LE || type == Type.LT) && bias == Bias.LT) {
+ if ((type == IfType.LE || type == IfType.LT) && bias == Bias.LT) {
continue;
}
}
@@ -800,11 +800,11 @@
final double a;
final double b;
- final Type type;
+ final IfType type;
final Bias bias;
final boolean expected;
- DoubleTestData(double a, double b, Type type, Bias bias) {
+ DoubleTestData(double a, double b, IfType type, Bias bias) {
this.a = a;
this.b = b;
this.type = type;
@@ -823,12 +823,12 @@
private void cmpDoubleMethodBuilder(SmaliBuilder builder, String name, Object parameters) {
String[] ifOpcode = new String[6];
- ifOpcode[Type.EQ.ordinal()] = "if-eqz";
- ifOpcode[Type.NE.ordinal()] = "if-nez";
- ifOpcode[Type.LE.ordinal()] = "if-lez";
- ifOpcode[Type.GE.ordinal()] = "if-gez";
- ifOpcode[Type.LT.ordinal()] = "if-ltz";
- ifOpcode[Type.GT.ordinal()] = "if-gtz";
+ ifOpcode[IfType.EQ.ordinal()] = "if-eqz";
+ ifOpcode[IfType.NE.ordinal()] = "if-nez";
+ ifOpcode[IfType.LE.ordinal()] = "if-lez";
+ ifOpcode[IfType.GE.ordinal()] = "if-gez";
+ ifOpcode[IfType.LT.ordinal()] = "if-ltz";
+ ifOpcode[IfType.GT.ordinal()] = "if-gtz";
DoubleTestData test = (DoubleTestData) parameters;
String cmpInstruction;
@@ -874,7 +874,7 @@
// Build the test configuration.
for (int i = 0; i < testValues.length; i++) {
for (int j = 0; j < testValues.length; j++) {
- for (Type type : Type.values()) {
+ for (IfType type : IfType.values()) {
for (Bias bias : Bias.values()) {
if (bias == Bias.NONE) {
// Bias NONE is only for long comparison.
@@ -887,10 +887,10 @@
//
// The numerical comparison operators <, <=, >, and >= return false if either or both
// operands are NaN
- if ((type == Type.GE || type == Type.GT) && bias == Bias.GT) {
+ if ((type == IfType.GE || type == IfType.GT) && bias == Bias.GT) {
continue;
}
- if ((type == Type.LE || type == Type.LT) && bias == Bias.LT) {
+ if ((type == IfType.LE || type == IfType.LT) && bias == Bias.LT) {
continue;
}
}
diff --git a/src/test/java/com/android/tools/r8/smali/IfSimplificationTest.java b/src/test/java/com/android/tools/r8/smali/IfSimplificationTest.java
index fd50cd6..9642e4e 100644
--- a/src/test/java/com/android/tools/r8/smali/IfSimplificationTest.java
+++ b/src/test/java/com/android/tools/r8/smali/IfSimplificationTest.java
@@ -19,7 +19,7 @@
import com.android.tools.r8.dex.code.DexReturnObject;
import com.android.tools.r8.graph.DexCode;
import com.android.tools.r8.graph.DexEncodedMethod;
-import com.android.tools.r8.ir.code.If.Type;
+import com.android.tools.r8.ir.code.IfType;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.Lists;
import java.util.ArrayList;
@@ -32,12 +32,12 @@
static String[] ifOpcode;
static {
ifOpcode = new String[6];
- ifOpcode[Type.EQ.ordinal()] = "if-eq";
- ifOpcode[Type.NE.ordinal()] = "if-ne";
- ifOpcode[Type.LE.ordinal()] = "if-le";
- ifOpcode[Type.GE.ordinal()] = "if-ge";
- ifOpcode[Type.LT.ordinal()] = "if-lt";
- ifOpcode[Type.GT.ordinal()] = "if-gt";
+ ifOpcode[IfType.EQ.ordinal()] = "if-eq";
+ ifOpcode[IfType.NE.ordinal()] = "if-ne";
+ ifOpcode[IfType.LE.ordinal()] = "if-le";
+ ifOpcode[IfType.GE.ordinal()] = "if-ge";
+ ifOpcode[IfType.LT.ordinal()] = "if-lt";
+ ifOpcode[IfType.GT.ordinal()] = "if-gt";
}
@Test
@@ -216,12 +216,12 @@
this.a = a;
this.b = b;
results = new boolean[6];
- results[Type.EQ.ordinal()] = a == b;
- results[Type.NE.ordinal()] = a != b;
- results[Type.LE.ordinal()] = a <= b;
- results[Type.GE.ordinal()] = a >= b;
- results[Type.LT.ordinal()] = a < b;
- results[Type.GT.ordinal()] = a > b;
+ results[IfType.EQ.ordinal()] = a == b;
+ results[IfType.NE.ordinal()] = a != b;
+ results[IfType.LE.ordinal()] = a <= b;
+ results[IfType.GE.ordinal()] = a >= b;
+ results[IfType.LT.ordinal()] = a < b;
+ results[IfType.GT.ordinal()] = a > b;
}
}
@@ -241,7 +241,7 @@
}
for (TestData test : tests) {
- for (Type type : Type.values()) {
+ for (IfType type : IfType.values()) {
DexEncodedMethod method = oneMethodApplication(
"int",
Collections.singletonList("int"),
@@ -265,7 +265,7 @@
}
}
- public void runRewriteIfWithConstZeroTest(Type type, boolean zeroLeft, Class expected) {
+ public void runRewriteIfWithConstZeroTest(IfType type, boolean zeroLeft, Class expected) {
String ifInstruction;
if (zeroLeft) {
ifInstruction = " " + ifOpcode[type.ordinal()] + " v0, v1, :label_2";
@@ -293,19 +293,19 @@
@Test
public void testRewriteIfWithConstZero() {
- runRewriteIfWithConstZeroTest(Type.EQ, true, DexIfEqz.class);
- runRewriteIfWithConstZeroTest(Type.NE, true, DexIfNez.class);
- runRewriteIfWithConstZeroTest(Type.LE, true, DexIfGez.class);
- runRewriteIfWithConstZeroTest(Type.GE, true, DexIfLez.class);
- runRewriteIfWithConstZeroTest(Type.LT, true, DexIfGtz.class);
- runRewriteIfWithConstZeroTest(Type.GT, true, DexIfLtz.class);
+ runRewriteIfWithConstZeroTest(IfType.EQ, true, DexIfEqz.class);
+ runRewriteIfWithConstZeroTest(IfType.NE, true, DexIfNez.class);
+ runRewriteIfWithConstZeroTest(IfType.LE, true, DexIfGez.class);
+ runRewriteIfWithConstZeroTest(IfType.GE, true, DexIfLez.class);
+ runRewriteIfWithConstZeroTest(IfType.LT, true, DexIfGtz.class);
+ runRewriteIfWithConstZeroTest(IfType.GT, true, DexIfLtz.class);
- runRewriteIfWithConstZeroTest(Type.EQ, false, DexIfEqz.class);
- runRewriteIfWithConstZeroTest(Type.NE, false, DexIfNez.class);
- runRewriteIfWithConstZeroTest(Type.LE, false, DexIfLez.class);
- runRewriteIfWithConstZeroTest(Type.GE, false, DexIfGez.class);
- runRewriteIfWithConstZeroTest(Type.LT, false, DexIfLtz.class);
- runRewriteIfWithConstZeroTest(Type.GT, false, DexIfGtz.class);
+ runRewriteIfWithConstZeroTest(IfType.EQ, false, DexIfEqz.class);
+ runRewriteIfWithConstZeroTest(IfType.NE, false, DexIfNez.class);
+ runRewriteIfWithConstZeroTest(IfType.LE, false, DexIfLez.class);
+ runRewriteIfWithConstZeroTest(IfType.GE, false, DexIfGez.class);
+ runRewriteIfWithConstZeroTest(IfType.LT, false, DexIfLtz.class);
+ runRewriteIfWithConstZeroTest(IfType.GT, false, DexIfGtz.class);
}
@Test
diff --git a/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
index b56008f..2e2e926 100644
--- a/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
+++ b/src/test/java/com/android/tools/r8/utils/codeinspector/CfInstructionSubject.java
@@ -38,7 +38,7 @@
import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.DexField;
import com.android.tools.r8.graph.DexMethod;
-import com.android.tools.r8.ir.code.Monitor.Type;
+import com.android.tools.r8.ir.code.MonitorType;
import com.android.tools.r8.ir.code.ValueType;
import java.util.Iterator;
import org.objectweb.asm.Opcodes;
@@ -351,7 +351,7 @@
return false;
}
CfMonitor monitor = (CfMonitor) instruction;
- return monitor.getType() == Type.ENTER;
+ return monitor.getType() == MonitorType.ENTER;
}
@Override
@@ -360,7 +360,7 @@
return false;
}
CfMonitor monitor = (CfMonitor) instruction;
- return monitor.getType() == Type.EXIT;
+ return monitor.getType() == MonitorType.EXIT;
}
@Override