Show monitor type in Monitor.toString
Makes debugging of Monitor instructions easier by overriding
getInstructionName to return either "MonitorEnter" or
"MonitorExit" as instruction name.
Change-Id: I4f53726d88c02aa30756a1b35bda3b4352a83ebe
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 a3b71e1..3c0c062 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
@@ -8,6 +8,7 @@
import com.android.tools.r8.code.MonitorEnter;
import com.android.tools.r8.code.MonitorExit;
+import com.android.tools.r8.errors.Unreachable;
import com.android.tools.r8.graph.AppInfoWithSubtyping;
import com.android.tools.r8.graph.DexType;
import com.android.tools.r8.ir.conversion.DexBuilder;
@@ -89,4 +90,16 @@
// Conservative choice.
return Constraint.NEVER;
}
+
+ @Override
+ public String getInstructionName() {
+ switch (type) {
+ case ENTER:
+ return "MonitorEnter";
+ case EXIT:
+ return "MonitorExit";
+ default:
+ throw new Unreachable("Unknown monitor type:" + type);
+ }
+ }
}