diff options
Diffstat (limited to 'dx/tests/086-ssa-edge-split/expected.txt')
-rw-r--r-- | dx/tests/086-ssa-edge-split/expected.txt | 343 |
1 files changed, 343 insertions, 0 deletions
diff --git a/dx/tests/086-ssa-edge-split/expected.txt b/dx/tests/086-ssa-edge-split/expected.txt new file mode 100644 index 0000000..0a09fb1 --- /dev/null +++ b/dx/tests/086-ssa-edge-split/expected.txt @@ -0,0 +1,343 @@ +reading Blort.class... +method <init> ()V +first 000c +block 0000 + pred 000a + live in:{} + Blort.java:17@0000: move-object v1:NffffLBlort; <- v0:NffffLBlort; + Blort.java:17@0001: Rop{invoke-direct . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.<init>:()V catch) . <- v1:NffffLBlort; + next 0004 + live out:{} +block 0004 + pred 0000 + live in:{} + Blort.java:17@0004: goto . <- . + next 000b + live out:{} +block 000a + pred 000c + live in:{} + Blort.java:17@0000: move-param-object(0) v0:NffffLBlort; <- . + Blort.java:17@0000: goto . <- . + next 0000 + live out:{} +block 000b + pred 0004 + live in:{} + Blort.java:17@0004: return-void . <- . + returns + live out:{} +block 000c + live in:{} + @????: goto . <- . + next 000a + live out:{} + +method edgeSplitPredTest (I)I +first 002f +block 0000 + pred 0026 + live in:{} + Blort.java:26@0000: const-int(1) v4:I=1 <- . + Blort.java:26@0001: move-int v2:I=1 <- v4:I=1 + Blort.java:26@0001: goto . <- . + next 0002 + live out:{} +block 0002 + pred 0000 + live in:{} + Blort.java:29@0002: move-int v4:I <- v1:I + Blort.java:29@0003: Rop{invoke-static . <- I call throws <any>}(java.lang.Integer.toString:(I)Ljava/lang/String; catch java.lang.Object) . <- v4:I + next 0030 + next 002d * + live out:{} +block 0006 + pred 002d + live in:{} + Blort.java:30@0007: move-int v4:I <- v1:I + Blort.java:30@0008: Rop{invoke-static . <- I call throws <any>}(java.lang.Integer.toString:(I)Ljava/lang/String; catch java.lang.Object) . <- v4:I + next 0031 + next 002e * + live out:{} +block 000b + pred 002e + live in:{} + Blort.java:31@000c: add-const-int(1) v2:I <- v2:I + Blort.java:31@000c: goto . <- . + next 000f + live out:{} +block 000f + pred 000b + live in:{} + Blort.java:33@000f: move-int v4:I <- v2:I + Blort.java:33@0010: move-int v0:I <- v4:I + Blort.java:33@0010: goto . <- . + next 0027 + live out:{} +block 0011 + pred 0024 + live in:{} + Blort.java:33@0011: move-object v3:Ljava/lang/Class;=java.lang.Object <- v4:Ljava/lang/Class;=java.lang.Object + Blort.java:33@0011: goto . <- . + next 0012 + live out:{} +block 0012 + pred 0011 + live in:{} + Blort.java:33@0012: move-int v4:I <- v2:I + Blort.java:33@0013: move-int v0:I <- v4:I + Blort.java:33@0013: goto . <- . + next 0027 + live out:{} +block 0024 + pred 0030 + pred 0031 + live in:{} + Blort.java:33@0011: goto . <- . + next 0011 + live out:{} +block 0026 + pred 002f + live in:{} + Blort.java:26@0000: move-param-object(0) v0:LBlort; <- . + Blort.java:26@0000: move-param-int(1) v1:I <- . + Blort.java:26@0000: goto . <- . + next 0000 + live out:{} +block 0027 + pred 000f + pred 0012 + live in:{} + Blort.java:33@0010: return-int . <- v0:I + returns + live out:{} +block 002d + pred 0002 + live in:{} + Blort.java:29@0003: Rop{move-result Ljava/lang/String; <- . flows} v4:Ljava/lang/String; <- . + Blort.java:29@0003: goto . <- . + next 0006 + live out:{} +block 002e + pred 0006 + live in:{} + Blort.java:30@0008: Rop{move-result Ljava/lang/String; <- . flows} v4:Ljava/lang/String; <- . + Blort.java:30@0008: goto . <- . + next 000b + live out:{} +block 002f + live in:{} + @????: goto . <- . + next 0026 + live out:{} +block 0030 + pred 0002 + live in:{} + Blort.java:33@0011: Rop{move-exception Ljava/lang/Object; <- . flows} v4:Ljava/lang/Object; <- . + @????: goto . <- . + next 0024 + live out:{} +block 0031 + pred 0006 + live in:{} + Blort.java:33@0011: Rop{move-exception Ljava/lang/Object; <- . flows} v4:Ljava/lang/Object; <- . + @????: goto . <- . + next 0024 + live out:{} + +method voidFunction ()V +first 0004 +block 0000 + pred 0002 + live in:{} + Blort.java:41@0000: goto . <- . + next 0003 + live out:{} +block 0002 + pred 0004 + live in:{} + Blort.java:41@0000: move-param-object(0) v0:LBlort; <- . + Blort.java:41@0000: goto . <- . + next 0000 + live out:{} +block 0003 + pred 0000 + live in:{} + Blort.java:41@0000: return-void . <- . + returns + live out:{} +block 0004 + live in:{} + @????: goto . <- . + next 0002 + live out:{} + +method edgeSplitMoveException ()V +first 0027 +block 0000 + pred 001e + live in:{} + Blort.java:49@0000: move-object v2:LBlort; <- v0:LBlort; + Blort.java:49@0001: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v2:LBlort; + next 0028 + next 0025 * + live out:{} +block 0004 + pred 0025 + live in:{} + Blort.java:50@0005: move-object v2:LBlort; <- v0:LBlort; + Blort.java:50@0006: Rop{invoke-virtual . <- Ljava/lang/Object; call throws <any>}(java.lang.Object.hashCode:()I catch java.lang.Throwable) . <- v2:LBlort; + next 0029 + next 0026 * + live out:{} +block 0009 + pred 0026 + live in:{} + @????: goto . <- . + next 000a + live out:{} +block 000a + pred 0009 + live in:{} + Blort.java:52@000a: goto . <- . + next 000e + live out:{} +block 000d + pred 001c + live in:{} + Blort.java:51@000d: move-object v1:Ljava/lang/Class;=java.lang.Throwable <- v2:Ljava/lang/Class;=java.lang.Throwable + Blort.java:51@000d: goto . <- . + next 000e + live out:{} +block 000e + pred 000a + pred 000d + live in:{} + Blort.java:53@000e: goto . <- . + next 001f + live out:{} +block 001c + pred 0028 + pred 0029 + live in:{} + Blort.java:51@000d: goto . <- . + next 000d + live out:{} +block 001e + pred 0027 + live in:{} + Blort.java:49@0000: move-param-object(0) v0:LBlort; <- . + Blort.java:49@0000: goto . <- . + next 0000 + live out:{} +block 001f + pred 000e + live in:{} + Blort.java:53@000e: return-void . <- . + returns + live out:{} +block 0025 + pred 0000 + live in:{} + Blort.java:49@0001: Rop{move-result I <- . flows} v2:I <- . + Blort.java:49@0001: goto . <- . + next 0004 + live out:{} +block 0026 + pred 0004 + live in:{} + Blort.java:50@0006: Rop{move-result I <- . flows} v2:I <- . + Blort.java:50@0006: goto . <- . + next 0009 + live out:{} +block 0027 + live in:{} + @????: goto . <- . + next 001e + live out:{} +block 0028 + pred 0000 + live in:{} + Blort.java:51@000d: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:Ljava/lang/Throwable; <- . + @????: goto . <- . + next 001c + live out:{} +block 0029 + pred 0004 + live in:{} + Blort.java:51@000d: Rop{move-exception Ljava/lang/Throwable; <- . flows} v2:Ljava/lang/Throwable; <- . + @????: goto . <- . + next 001c + live out:{} + +method edgeSplitSuccessor (I)I +first 005a +block 0000 + pred 0058 + live in:{} + Blort.java:62@0000: const-int(0) v3:I=0 <- . + Blort.java:62@0001: move-int v2:I=0 <- v3:I=0 + Blort.java:64@0002: move-int v3:I <- v1:I + Blort.java:64@0003: switch({1, 2, 3}) . <- v3:I + next 001c + next 0022 + next 0028 + next 005b * + live out:{} +block 001c + pred 0000 + live in:{} + Blort.java:65@001c: add-const-int(1) v2:I <- v2:I + Blort.java:66@001f: goto . <- . + next 002b + live out:{} +block 0022 + pred 0000 + live in:{} + Blort.java:67@0022: add-const-int(1) v2:I <- v2:I + Blort.java:68@0025: goto . <- . + next 002b + live out:{} +block 0028 + pred 0000 + live in:{} + Blort.java:69@0028: add-const-int(1) v2:I <- v2:I + Blort.java:69@0028: goto . <- . + next 002b + live out:{} +block 002b + pred 001c + pred 0022 + pred 0028 + pred 005b + live in:{} + Blort.java:72@002b: move-int v3:I <- v2:I + Blort.java:72@002c: move-int v0:I <- v3:I + Blort.java:72@002c: goto . <- . + next 0059 + live out:{} +block 0058 + pred 005a + live in:{} + Blort.java:62@0000: move-param-object(0) v0:LBlort; <- . + Blort.java:62@0000: move-param-int(1) v1:I <- . + Blort.java:62@0000: goto . <- . + next 0000 + live out:{} +block 0059 + pred 002b + live in:{} + Blort.java:72@002c: return-int . <- v0:I + returns + live out:{} +block 005a + live in:{} + @????: goto . <- . + next 0058 + live out:{} +block 005b + pred 0000 + live in:{} + @????: goto . <- . + next 002b + live out:{} |