OSDN Git Service

Fix dx test 087.
authorDan Bornstein <danfuzz@android.com>
Fri, 29 Oct 2010 00:44:06 +0000 (17:44 -0700)
committerDan Bornstein <danfuzz@android.com>
Fri, 29 Oct 2010 00:44:06 +0000 (17:44 -0700)
This is another case of block rearrangement.

Change-Id: I402d0056f8b6d314cef2efcfea80337777b20a7d

dx/tests/087-ssa-local-vars/expected.txt

index 6c0a6f7..1c875b9 100644 (file)
@@ -1,13 +1,6 @@
 reading Blort.class...
 method <init> ()V
 first 000c
-block 000a
-  pred 000c
-  live in:{}
-  Blort.java:2@0000: move-param-object(0) v2:"this"NffffLBlort; <- .
-  Blort.java:2@0000: goto . <- .
-  next 0000
-  live out:{2}
 block 0000
   pred 000a
   live in:{2}
@@ -21,6 +14,13 @@ block 0004
   Blort.java:2@0004: goto . <- .
   next 000b
   live out:{}
+block 000a
+  pred 000c
+  live in:{}
+  Blort.java:2@0000: move-param-object(0) v2:"this"NffffLBlort; <- .
+  Blort.java:2@0000: goto . <- .
+  next 0000
+  live out:{2}
 block 000b
   pred 0004
   live in:{}
@@ -40,21 +40,6 @@ block 000d
 
 method arrayCopyTest (I)V
 first 012c
-block 0112
-  pred 012c
-  live in:{62, 63}
-  Blort.java:5@0000: move-param-int(0) v12:"k"I <- .
-  Blort.java:5@0000: goto . <- .
-  next 0000
-  live out:{12, 62, 63}
-block 0119
-  pred 0000
-  live in:{62, 63}
-  Blort.java:7@0004: Rop{move-result-pseudo [Ljava/lang/String; <- . flows} v15
-  :[Ljava/lang/String; <- .
-  Blort.java:7@0004: goto . <- .
-  next 0007
-  live out:{15, 62, 63}
 block 0000
   pred 0112
   live in:{12, 62, 63}
@@ -62,14 +47,6 @@ block 0000
   Blort.java:7@0004: new-array-object(java.lang.String[] catch) . <- v63:I=8
   next 0119
   live out:{62, 63}
-block 011a
-  pred 0007
-  live in:{15, 62}
-  Blort.java:8@000a: Rop{move-result-pseudo [Ljava/lang/Object; <- . flows} v17
-  :[Ljava/lang/Object; <- .
-  Blort.java:8@000a: goto . <- .
-  next 000d
-  live out:{15, 17, 62}
 block 0007
   pred 0119
   live in:{15, 62, 63}
@@ -87,14 +64,6 @@ block 000d
   next 0016 *
   next 0131
   live out:{15, 17, 62}
-block 011b
-  pred 0016
-  live in:{15, 17, 62}
-  Blort.java:13@0016: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v19:Ljava/io/PrintStream; <- .
-  Blort.java:13@0016: goto . <- .
-  next 0019
-  live out:{15, 17, 19, 62}
 block 0016
   pred 000d
   live in:{15, 17, 62}
@@ -102,14 +71,6 @@ block 0016
   am; catch) . <- .
   next 011b
   live out:{15, 17, 62}
-block 011c
-  pred 0019
-  live in:{15, 17, 19, 62}
-  Blort.java:13@0019: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v20
-  :Ljava/lang/String;="foo" <- .
-  Blort.java:13@0019: goto . <- .
-  next 001b
-  live out:{15, 17, 19, 20, 62}
 block 0019
   pred 011b
   live in:{15, 17, 19, 62}
@@ -133,13 +94,6 @@ block 001e
   Blort.java:17@001f: goto . <- .
   next 0021
   live out:{15, 17, 23, 62}
-block 011d
-  pred 0021
-  live in:{15, 17, 30, 62}
-  Blort.java:17@0024: Rop{move-result-pseudo I <- . flows} v31:I <- .
-  Blort.java:17@0024: goto . <- .
-  next 0025
-  live out:{15, 17, 30, 31, 62}
 block 0021
   pred 001e
   pred 0038
@@ -155,28 +109,12 @@ block 0025
   next 0028 *
   next 003e
   live out:{15, 17, 30, 62}
-block 011e
-  pred 0028
-  live in:{15, 17, 30, 62}
-  Blort.java:18@002b: Rop{move-result-pseudo N002bLjava/lang/String; <- . flows
-  } v32:N002bLjava/lang/String; <- .
-  Blort.java:18@002b: goto . <- .
-  next 002e
-  live out:{15, 17, 30, 32, 62}
 block 0028
   pred 0025
   live in:{15, 17, 30, 62}
   Blort.java:18@002b: new-instance(java.lang.String catch) . <- .
   next 011e
   live out:{15, 17, 30, 62}
-block 011f
-  pred 002e
-  live in:{15, 17, 30, 32, 62}
-  Blort.java:18@0031: Rop{move-result Ljava/lang/String; <- . flows} v33:Ljava/
-  lang/String; <- .
-  Blort.java:18@0031: goto . <- .
-  next 0034
-  live out:{15, 17, 30, 32, 33, 62}
 block 002e
   pred 011e
   live in:{15, 17, 30, 32, 62}
@@ -206,14 +144,6 @@ block 0038
   Blort.java:17@003b: goto . <- .
   next 0021
   live out:{15, 17, 34, 62}
-block 0120
-  pred 003e
-  live in:{15, 17, 62}
-  Blort.java:20@003e: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v35:Ljava/io/PrintStream; <- .
-  Blort.java:20@003e: goto . <- .
-  next 0041
-  live out:{15, 17, 35, 62}
 block 003e
   pred 0025
   live in:{15, 17, 62}
@@ -221,14 +151,6 @@ block 003e
   am; catch) . <- .
   next 0120
   live out:{15, 17, 62}
-block 0121
-  pred 0041
-  live in:{15, 17, 35, 62}
-  Blort.java:20@0041: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v36
-  :Ljava/lang/String;="string -> object" <- .
-  Blort.java:20@0041: goto . <- .
-  next 0043
-  live out:{15, 17, 35, 36, 62}
 block 0041
   pred 0120
   live in:{15, 17, 35, 62}
@@ -244,13 +166,6 @@ block 0043
   t"
   next 0046
   live out:{15, 17, 62}
-block 0122
-  pred 0046
-  live in:{15, 17, 62}
-  Blort.java:21@004b: Rop{move-result-pseudo I <- . flows} v39:I <- .
-  Blort.java:21@004b: goto . <- .
-  next 004c
-  live out:{15, 17, 39, 62}
 block 0046
   pred 0043
   live in:{15, 17, 62}
@@ -266,14 +181,6 @@ block 004c
   lang/Object; v62:I=0 v39:I
   next 004f
   live out:{15, 17, 62}
-block 0123
-  pred 004f
-  live in:{15, 17, 62}
-  Blort.java:22@004f: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v40:Ljava/io/PrintStream; <- .
-  Blort.java:22@004f: goto . <- .
-  next 0052
-  live out:{15, 17, 40, 62}
 block 004f
   pred 004c
   live in:{15, 17, 62}
@@ -281,14 +188,6 @@ block 004f
   am; catch) . <- .
   next 0123
   live out:{15, 17, 62}
-block 0124
-  pred 0052
-  live in:{15, 17, 40, 62}
-  Blort.java:22@0052: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v41
-  :Ljava/lang/String;="object -> string" <- .
-  Blort.java:22@0052: goto . <- .
-  next 0054
-  live out:{15, 17, 40, 41, 62}
 block 0052
   pred 0123
   live in:{15, 17, 40, 62}
@@ -304,13 +203,6 @@ block 0054
   g"
   next 0057
   live out:{15, 17, 62}
-block 0125
-  pred 0057
-  live in:{15, 17, 62}
-  Blort.java:23@005c: Rop{move-result-pseudo I <- . flows} v44:I <- .
-  Blort.java:23@005c: goto . <- .
-  next 005d
-  live out:{15, 17, 44, 62}
 block 0057
   pred 0054
   live in:{15, 17, 62}
@@ -326,14 +218,6 @@ block 005d
   lang/String; v62:I=0 v44:I
   next 0060
   live out:{15, 17}
-block 0126
-  pred 0060
-  live in:{15, 17}
-  Blort.java:24@0060: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v45:Ljava/io/PrintStream; <- .
-  Blort.java:24@0060: goto . <- .
-  next 0063
-  live out:{15, 17, 45}
 block 0060
   pred 005d
   live in:{15, 17}
@@ -341,14 +225,6 @@ block 0060
   am; catch) . <- .
   next 0126
   live out:{15, 17}
-block 0127
-  pred 0063
-  live in:{15, 17, 45}
-  Blort.java:24@0063: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v46
-  :Ljava/lang/String;="object -> string (modified)" <- .
-  Blort.java:24@0063: goto . <- .
-  next 0065
-  live out:{15, 17, 45, 46}
 block 0063
   pred 0126
   live in:{15, 17, 45}
@@ -364,14 +240,6 @@ block 0065
   g (modified)"
   next 0068
   live out:{15, 17}
-block 0128
-  pred 0068
-  live in:{15, 17, 47}
-  Blort.java:25@006a: Rop{move-result-pseudo N006aLjava/lang/Object; <- . flows
-  } v48:N006aLjava/lang/Object; <- .
-  Blort.java:25@006a: goto . <- .
-  next 006d
-  live out:{15, 17, 47, 48}
 block 0068
   pred 0065
   live in:{15, 17}
@@ -393,13 +261,6 @@ block 0071
   /lang/Object; v47:I=4
   next 0072
   live out:{15, 17}
-block 0129
-  pred 0072
-  live in:{15, 17, 49, 50}
-  Blort.java:27@0077: Rop{move-result-pseudo I <- . flows} v51:I <- .
-  Blort.java:27@0077: goto . <- .
-  next 0078
-  live out:{15, 17, 49, 50, 51}
 block 0072
   pred 0071
   live in:{15, 17}
@@ -426,14 +287,6 @@ block 007b
   Blort.java:31@007b: goto . <- .
   next 0088
   live out:{}
-block 012a
-  pred 007e
-  live in:{}
-  Blort.java:30@0080: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v59:Ljava/io/PrintStream; <- .
-  Blort.java:30@0080: goto . <- .
-  next 0083
-  live out:{59}
 block 007e
   pred 0107
   live in:{58}
@@ -442,14 +295,6 @@ block 007e
   am; catch) . <- .
   next 012a
   live out:{}
-block 012b
-  pred 0083
-  live in:{59}
-  Blort.java:30@0083: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v60
-  :Ljava/lang/String;="caught ArrayStoreException (expected)" <- .
-  Blort.java:30@0083: goto . <- .
-  next 0085
-  live out:{59, 60}
 block 0083
   pred 012a
   live in:{59}
@@ -473,12 +318,6 @@ block 0088
   Blort.java:32@0088: goto . <- .
   next 0113
   live out:{}
-block 0113
-  pred 0088
-  live in:{}
-  Blort.java:32@0088: return-void . <- .
-  next 0132
-  live out:{}
 block 0107
   pred 012d
   pred 012e
@@ -488,6 +327,167 @@ block 0107
   Blort.java:28@007e: goto . <- .
   next 007e
   live out:{58}
+block 0112
+  pred 012c
+  live in:{62, 63}
+  Blort.java:5@0000: move-param-int(0) v12:"k"I <- .
+  Blort.java:5@0000: goto . <- .
+  next 0000
+  live out:{12, 62, 63}
+block 0113
+  pred 0088
+  live in:{}
+  Blort.java:32@0088: return-void . <- .
+  next 0132
+  live out:{}
+block 0119
+  pred 0000
+  live in:{62, 63}
+  Blort.java:7@0004: Rop{move-result-pseudo [Ljava/lang/String; <- . flows} v15
+  :[Ljava/lang/String; <- .
+  Blort.java:7@0004: goto . <- .
+  next 0007
+  live out:{15, 62, 63}
+block 011a
+  pred 0007
+  live in:{15, 62}
+  Blort.java:8@000a: Rop{move-result-pseudo [Ljava/lang/Object; <- . flows} v17
+  :[Ljava/lang/Object; <- .
+  Blort.java:8@000a: goto . <- .
+  next 000d
+  live out:{15, 17, 62}
+block 011b
+  pred 0016
+  live in:{15, 17, 62}
+  Blort.java:13@0016: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v19:Ljava/io/PrintStream; <- .
+  Blort.java:13@0016: goto . <- .
+  next 0019
+  live out:{15, 17, 19, 62}
+block 011c
+  pred 0019
+  live in:{15, 17, 19, 62}
+  Blort.java:13@0019: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v20
+  :Ljava/lang/String;="foo" <- .
+  Blort.java:13@0019: goto . <- .
+  next 001b
+  live out:{15, 17, 19, 20, 62}
+block 011d
+  pred 0021
+  live in:{15, 17, 30, 62}
+  Blort.java:17@0024: Rop{move-result-pseudo I <- . flows} v31:I <- .
+  Blort.java:17@0024: goto . <- .
+  next 0025
+  live out:{15, 17, 30, 31, 62}
+block 011e
+  pred 0028
+  live in:{15, 17, 30, 62}
+  Blort.java:18@002b: Rop{move-result-pseudo N002bLjava/lang/String; <- . flows
+  } v32:N002bLjava/lang/String; <- .
+  Blort.java:18@002b: goto . <- .
+  next 002e
+  live out:{15, 17, 30, 32, 62}
+block 011f
+  pred 002e
+  live in:{15, 17, 30, 32, 62}
+  Blort.java:18@0031: Rop{move-result Ljava/lang/String; <- . flows} v33:Ljava/
+  lang/String; <- .
+  Blort.java:18@0031: goto . <- .
+  next 0034
+  live out:{15, 17, 30, 32, 33, 62}
+block 0120
+  pred 003e
+  live in:{15, 17, 62}
+  Blort.java:20@003e: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v35:Ljava/io/PrintStream; <- .
+  Blort.java:20@003e: goto . <- .
+  next 0041
+  live out:{15, 17, 35, 62}
+block 0121
+  pred 0041
+  live in:{15, 17, 35, 62}
+  Blort.java:20@0041: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v36
+  :Ljava/lang/String;="string -> object" <- .
+  Blort.java:20@0041: goto . <- .
+  next 0043
+  live out:{15, 17, 35, 36, 62}
+block 0122
+  pred 0046
+  live in:{15, 17, 62}
+  Blort.java:21@004b: Rop{move-result-pseudo I <- . flows} v39:I <- .
+  Blort.java:21@004b: goto . <- .
+  next 004c
+  live out:{15, 17, 39, 62}
+block 0123
+  pred 004f
+  live in:{15, 17, 62}
+  Blort.java:22@004f: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v40:Ljava/io/PrintStream; <- .
+  Blort.java:22@004f: goto . <- .
+  next 0052
+  live out:{15, 17, 40, 62}
+block 0124
+  pred 0052
+  live in:{15, 17, 40, 62}
+  Blort.java:22@0052: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v41
+  :Ljava/lang/String;="object -> string" <- .
+  Blort.java:22@0052: goto . <- .
+  next 0054
+  live out:{15, 17, 40, 41, 62}
+block 0125
+  pred 0057
+  live in:{15, 17, 62}
+  Blort.java:23@005c: Rop{move-result-pseudo I <- . flows} v44:I <- .
+  Blort.java:23@005c: goto . <- .
+  next 005d
+  live out:{15, 17, 44, 62}
+block 0126
+  pred 0060
+  live in:{15, 17}
+  Blort.java:24@0060: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v45:Ljava/io/PrintStream; <- .
+  Blort.java:24@0060: goto . <- .
+  next 0063
+  live out:{15, 17, 45}
+block 0127
+  pred 0063
+  live in:{15, 17, 45}
+  Blort.java:24@0063: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v46
+  :Ljava/lang/String;="object -> string (modified)" <- .
+  Blort.java:24@0063: goto . <- .
+  next 0065
+  live out:{15, 17, 45, 46}
+block 0128
+  pred 0068
+  live in:{15, 17, 47}
+  Blort.java:25@006a: Rop{move-result-pseudo N006aLjava/lang/Object; <- . flows
+  } v48:N006aLjava/lang/Object; <- .
+  Blort.java:25@006a: goto . <- .
+  next 006d
+  live out:{15, 17, 47, 48}
+block 0129
+  pred 0072
+  live in:{15, 17, 49, 50}
+  Blort.java:27@0077: Rop{move-result-pseudo I <- . flows} v51:I <- .
+  Blort.java:27@0077: goto . <- .
+  next 0078
+  live out:{15, 17, 49, 50, 51}
+block 012a
+  pred 007e
+  live in:{}
+  Blort.java:30@0080: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v59:Ljava/io/PrintStream; <- .
+  Blort.java:30@0080: goto . <- .
+  next 0083
+  live out:{59}
+block 012b
+  pred 0083
+  live in:{59}
+  Blort.java:30@0083: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v60
+  :Ljava/lang/String;="caught ArrayStoreException (expected)" <- .
+  Blort.java:30@0083: goto . <- .
+  next 0085
+  live out:{59, 60}
 block 012c
   live in:{}
   @????: const-int(8) v63:I=8 <- .
@@ -537,13 +537,6 @@ block 0132
 
 method testConstructor ()V
 first 0035
-block 002c
-  pred 0035
-  live in:{}
-  Blort.java:35@0000: move-param-object(0) v6:"this"LBlort; <- .
-  Blort.java:35@0000: goto . <- .
-  next 0000
-  live out:{}
 block 0000
   pred 002c
   live in:{}
@@ -552,14 +545,6 @@ block 0000
   Blort.java:35@0001: goto . <- .
   next 0002
   live out:{7}
-block 0033
-  pred 0002
-  live in:{7}
-  Blort.java:37@0002: Rop{move-result-pseudo N0002LBlort; <- . flows} v8:N0002L
-  Blort; <- .
-  Blort.java:37@0002: goto . <- .
-  next 0005
-  live out:{7, 8}
 block 0002
   pred 0000
   live in:{7}
@@ -594,14 +579,6 @@ block 000d
   Blort.java:38@000d: goto . <- .
   next 000e
   live out:{7}
-block 0034
-  pred 000e
-  live in:{14}
-  Blort.java:40@000e: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
-  v15:Ljava/io/PrintStream; <- .
-  Blort.java:40@000e: goto . <- .
-  next 0011
-  live out:{14, 15}
 block 000e
   pred 000a
   pred 000d
@@ -626,12 +603,6 @@ block 0015
   Blort.java:41@0015: goto . <- .
   next 002d
   live out:{}
-block 002d
-  pred 0015
-  live in:{}
-  Blort.java:41@0015: return-void . <- .
-  next 0038
-  live out:{}
 block 0023
   pred 0036
   pred 0037
@@ -639,6 +610,35 @@ block 0023
   Blort.java:38@000d: goto . <- .
   next 000d
   live out:{7}
+block 002c
+  pred 0035
+  live in:{}
+  Blort.java:35@0000: move-param-object(0) v6:"this"LBlort; <- .
+  Blort.java:35@0000: goto . <- .
+  next 0000
+  live out:{}
+block 002d
+  pred 0015
+  live in:{}
+  Blort.java:41@0015: return-void . <- .
+  next 0038
+  live out:{}
+block 0033
+  pred 0002
+  live in:{7}
+  Blort.java:37@0002: Rop{move-result-pseudo N0002LBlort; <- . flows} v8:N0002L
+  Blort; <- .
+  Blort.java:37@0002: goto . <- .
+  next 0005
+  live out:{7, 8}
+block 0034
+  pred 000e
+  live in:{14}
+  Blort.java:40@000e: Rop{move-result-pseudo Ljava/io/PrintStream; <- . flows} 
+  v15:Ljava/io/PrintStream; <- .
+  Blort.java:40@000e: goto . <- .
+  next 0011
+  live out:{14, 15}
 block 0035
   live in:{}
   @????: goto . <- .
@@ -666,20 +666,8 @@ block 0038
   returns
   live out:{}
 
-method parseHeaderGroup (Ljava/lang/Object;Ljava/lang/Object;II)V
-first 01c6
-block 01ae
-  pred 01c6
-  live in:{99, 100, 101}
-  Blort.java:57@0000: move-param-object(0) v15:"headGroup"Ljava/lang/Object; <-
-   .
-  Blort.java:57@0000: move-param-object(1) v16:"inbuffer"Ljava/lang/Object; <- 
-  .
-  Blort.java:57@0000: move-param-int(2) v17:"maxHeaderCount"I <- .
-  Blort.java:57@0000: move-param-int(3) v18:"maxLineLen"I <- .
-  Blort.java:57@0000: goto . <- .
-  next 0000
-  live out:{16, 17, 18, 99, 100, 101}
+method parseHeaderGroup (Ljava/lang/Object;Ljava/lang/Object;II)V
+first 01c6
 block 0000
   pred 01ae
   live in:{16, 17, 18, 99, 100, 101}
@@ -697,14 +685,6 @@ block 0006
   next 000b *
   next 0019
   live out:{16, 17, 18, 30, 31, 99, 100, 101}
-block 01b5
-  pred 000b
-  live in:{16, 17, 18, 30, 99, 100, 101}
-  Blort.java:61@000b: Rop{move-result-pseudo N000bLjava/lang/StringBuilder; <- 
-  . flows} v32:N000bLjava/lang/StringBuilder; <- .
-  Blort.java:61@000b: goto . <- .
-  next 000e
-  live out:{16, 17, 18, 30, 32, 99, 100, 101}
 block 000b
   pred 0006
   live in:{16, 17, 18, 30, 99, 100, 101}
@@ -727,12 +707,6 @@ block 0014
   Blort.java:61@0016: goto . <- .
   next 001f
   live out:{16, 17, 18, 30, 32, 99, 100, 101}
-block 01b6
-  pred 0019
-  live in:{16, 17, 18, 30, 31, 99, 100, 101}
-  Blort.java:63@001b: goto . <- .
-  next 001e
-  live out:{16, 17, 18, 30, 31, 99, 100, 101}
 block 0019
   pred 0006
   live in:{16, 17, 18, 30, 31, 99, 100, 101}
@@ -747,13 +721,6 @@ block 001e
   @????: goto . <- .
   next 001f
   live out:{16, 17, 18, 30, 31, 99, 100, 101}
-block 01b7
-  pred 001f
-  live in:{16, 17, 18, 30, 39, 99, 100, 101}
-  Blort.java:65@0020: Rop{move-result I <- . flows} v40:I <- .
-  Blort.java:65@0020: goto . <- .
-  next 0023
-  live out:{16, 17, 18, 30, 39, 40, 99, 100, 101}
 block 001f
   pred 0014
   pred 001e
@@ -773,13 +740,6 @@ block 0023
   next 002b *
   next 01d4
   live out:{16, 17, 18, 30, 39, 99, 100, 101}
-block 01b8
-  pred 002b
-  live in:{16, 17, 18, 30, 39, 99, 100, 101}
-  Blort.java:66@002d: Rop{move-result I <- . flows} v42:I <- .
-  Blort.java:66@002d: goto . <- .
-  next 0030
-  live out:{16, 17, 18, 30, 39, 42, 99, 100, 101}
 block 002b
   pred 0023
   live in:{16, 17, 18, 30, 39, 99, 100, 101}
@@ -802,13 +762,6 @@ block 0034
   Blort.java:67@0034: goto . <- .
   next 00d6
   live out:{}
-block 01b9
-  pred 0037
-  live in:{16, 17, 18, 30, 39, 99, 100, 101}
-  Blort.java:70@003a: Rop{move-result C <- . flows} v45:C <- .
-  Blort.java:70@003a: goto . <- .
-  next 003d
-  live out:{16, 17, 18, 30, 39, 45, 99, 100, 101}
 block 0037
   pred 0030
   live in:{16, 17, 18, 30, 39, 99, 100, 101}
@@ -824,13 +777,6 @@ block 003d
   next 0042 *
   next 01d3
   live out:{16, 17, 18, 30, 39, 99, 100, 101}
-block 01ba
-  pred 0042
-  live in:{16, 17, 18, 30, 39, 99, 100, 101}
-  Blort.java:70@0045: Rop{move-result C <- . flows} v48:C <- .
-  Blort.java:70@0045: goto . <- .
-  next 0048
-  live out:{16, 17, 18, 30, 39, 48, 99, 100, 101}
 block 0042
   pred 003d
   live in:{16, 17, 18, 30, 39, 99, 100, 101}
@@ -861,13 +807,6 @@ block 0052
   Blort.java:71@0053: goto . <- .
   next 0055
   live out:{16, 17, 18, 30, 39, 67, 99, 100, 101}
-block 01bb
-  pred 0055
-  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-  Blort.java:72@0059: Rop{move-result I <- . flows} v72:I <- .
-  Blort.java:72@0059: goto . <- .
-  next 005c
-  live out:{16, 17, 18, 30, 39, 71, 72, 99, 100, 101}
 block 0055
   pred 0052
   pred 0079
@@ -885,13 +824,6 @@ block 005c
   next 005f *
   next 01cf
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01bc
-  pred 005f
-  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-  Blort.java:73@0063: Rop{move-result C <- . flows} v73:C <- .
-  Blort.java:73@0063: goto . <- .
-  next 0066
-  live out:{16, 17, 18, 30, 39, 71, 73, 99, 100, 101}
 block 005f
   pred 005c
   live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
@@ -936,13 +868,6 @@ block 007f
   next 0083 *
   next 01cc
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01bd
-  pred 0083
-  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-  Blort.java:79@0085: Rop{move-result I <- . flows} v82:I <- .
-  Blort.java:79@0085: goto . <- .
-  next 0088
-  live out:{16, 17, 18, 30, 39, 71, 82, 99, 100, 101}
 block 0083
   pred 007f
   live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
@@ -951,13 +876,6 @@ block 0083
   ingBuilder;
   next 01bd
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01be
-  pred 0088
-  live in:{16, 17, 18, 30, 39, 71, 84, 99, 100, 101}
-  Blort.java:79@008c: Rop{move-result I <- . flows} v85:I <- .
-  Blort.java:79@008c: goto . <- .
-  next 008f
-  live out:{16, 17, 18, 30, 39, 71, 84, 85, 99, 100, 101}
 block 0088
   pred 01bd
   live in:{16, 17, 18, 30, 39, 71, 82, 99, 100, 101}
@@ -976,28 +894,12 @@ block 008f
   next 0097 *
   next 01cb
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01bf
-  pred 0097
-  live in:{}
-  Blort.java:81@0097: Rop{move-result-pseudo N0097Ljava/io/IOException; <- . fl
-  ows} v88:N0097Ljava/io/IOException; <- .
-  Blort.java:81@0097: goto . <- .
-  next 009a
-  live out:{88}
 block 0097
   pred 008f
   live in:{}
   Blort.java:81@0097: new-instance(java.io.IOException catch) . <- .
   next 01bf
   live out:{}
-block 01c0
-  pred 009a
-  live in:{88}
-  Blort.java:81@009b: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v89
-  :Ljava/lang/String;="Maximum line length limit exceeded" <- .
-  Blort.java:81@009b: goto . <- .
-  next 009d
-  live out:{88, 89}
 block 009a
   pred 01bf
   live in:{88}
@@ -1020,12 +922,6 @@ block 00a0
   Blort.java:81@00a0: throw(catch) . <- v88:Ljava/io/IOException;
   next 01d5
   live out:{}
-block 01c1
-  pred 00a1
-  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-  Blort.java:83@00a5: goto . <- .
-  next 00a8
-  live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
 block 00a1
   pred 01cb
   pred 01cc
@@ -1035,13 +931,6 @@ block 00a1
   ch) . <- v30:Ljava/lang/StringBuilder; v99:I=32
   next 01c1
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01c2
-  pred 00a8
-  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-  Blort.java:84@00b1: Rop{move-result I <- . flows} v94:I <- .
-  Blort.java:84@00b1: goto . <- .
-  next 00b4
-  live out:{16, 17, 18, 30, 39, 71, 94, 99, 100, 101}
 block 00a8
   pred 01c1
   live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
@@ -1050,12 +939,6 @@ block 00a8
   ingBuilder;
   next 01c2
   live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
-block 01c3
-  pred 00b4
-  live in:{16, 17, 18, 30, 39, 99, 100, 101}
-  Blort.java:84@00b7: goto . <- .
-  next 00ba
-  live out:{16, 17, 18, 30, 39, 99, 100, 101}
 block 00b4
   pred 01c2
   live in:{16, 17, 18, 30, 39, 71, 94, 99, 100, 101}
@@ -1090,28 +973,12 @@ block 00c5
   next 00c9 *
   next 00d3
   live out:{16, 17, 18, 61, 62, 99, 100, 101}
-block 01c4
-  pred 00c9
-  live in:{}
-  Blort.java:90@00c9: Rop{move-result-pseudo N00c9Ljava/io/IOException; <- . fl
-  ows} v63:N00c9Ljava/io/IOException; <- .
-  Blort.java:90@00c9: goto . <- .
-  next 00cc
-  live out:{63}
 block 00c9
   pred 00c5
   live in:{}
   Blort.java:90@00c9: new-instance(java.io.IOException catch) . <- .
   next 01c4
   live out:{}
-block 01c5
-  pred 00cc
-  live in:{63}
-  Blort.java:90@00cd: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v64
-  :Ljava/lang/String;="Maximum header count exceeded" <- .
-  Blort.java:90@00cd: goto . <- .
-  next 00cf
-  live out:{63, 64}
 block 00cc
   pred 01c4
   live in:{63}
@@ -1147,12 +1014,145 @@ block 00d6
   Blort.java:93@00d6: goto . <- .
   next 01af
   live out:{}
+block 01ae
+  pred 01c6
+  live in:{99, 100, 101}
+  Blort.java:57@0000: move-param-object(0) v15:"headGroup"Ljava/lang/Object; <-
+   .
+  Blort.java:57@0000: move-param-object(1) v16:"inbuffer"Ljava/lang/Object; <- 
+  .
+  Blort.java:57@0000: move-param-int(2) v17:"maxHeaderCount"I <- .
+  Blort.java:57@0000: move-param-int(3) v18:"maxLineLen"I <- .
+  Blort.java:57@0000: goto . <- .
+  next 0000
+  live out:{16, 17, 18, 99, 100, 101}
 block 01af
   pred 00d6
   live in:{}
   Blort.java:93@00d6: return-void . <- .
   next 01d5
   live out:{}
+block 01b5
+  pred 000b
+  live in:{16, 17, 18, 30, 99, 100, 101}
+  Blort.java:61@000b: Rop{move-result-pseudo N000bLjava/lang/StringBuilder; <- 
+  . flows} v32:N000bLjava/lang/StringBuilder; <- .
+  Blort.java:61@000b: goto . <- .
+  next 000e
+  live out:{16, 17, 18, 30, 32, 99, 100, 101}
+block 01b6
+  pred 0019
+  live in:{16, 17, 18, 30, 31, 99, 100, 101}
+  Blort.java:63@001b: goto . <- .
+  next 001e
+  live out:{16, 17, 18, 30, 31, 99, 100, 101}
+block 01b7
+  pred 001f
+  live in:{16, 17, 18, 30, 39, 99, 100, 101}
+  Blort.java:65@0020: Rop{move-result I <- . flows} v40:I <- .
+  Blort.java:65@0020: goto . <- .
+  next 0023
+  live out:{16, 17, 18, 30, 39, 40, 99, 100, 101}
+block 01b8
+  pred 002b
+  live in:{16, 17, 18, 30, 39, 99, 100, 101}
+  Blort.java:66@002d: Rop{move-result I <- . flows} v42:I <- .
+  Blort.java:66@002d: goto . <- .
+  next 0030
+  live out:{16, 17, 18, 30, 39, 42, 99, 100, 101}
+block 01b9
+  pred 0037
+  live in:{16, 17, 18, 30, 39, 99, 100, 101}
+  Blort.java:70@003a: Rop{move-result C <- . flows} v45:C <- .
+  Blort.java:70@003a: goto . <- .
+  next 003d
+  live out:{16, 17, 18, 30, 39, 45, 99, 100, 101}
+block 01ba
+  pred 0042
+  live in:{16, 17, 18, 30, 39, 99, 100, 101}
+  Blort.java:70@0045: Rop{move-result C <- . flows} v48:C <- .
+  Blort.java:70@0045: goto . <- .
+  next 0048
+  live out:{16, 17, 18, 30, 39, 48, 99, 100, 101}
+block 01bb
+  pred 0055
+  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+  Blort.java:72@0059: Rop{move-result I <- . flows} v72:I <- .
+  Blort.java:72@0059: goto . <- .
+  next 005c
+  live out:{16, 17, 18, 30, 39, 71, 72, 99, 100, 101}
+block 01bc
+  pred 005f
+  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+  Blort.java:73@0063: Rop{move-result C <- . flows} v73:C <- .
+  Blort.java:73@0063: goto . <- .
+  next 0066
+  live out:{16, 17, 18, 30, 39, 71, 73, 99, 100, 101}
+block 01bd
+  pred 0083
+  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+  Blort.java:79@0085: Rop{move-result I <- . flows} v82:I <- .
+  Blort.java:79@0085: goto . <- .
+  next 0088
+  live out:{16, 17, 18, 30, 39, 71, 82, 99, 100, 101}
+block 01be
+  pred 0088
+  live in:{16, 17, 18, 30, 39, 71, 84, 99, 100, 101}
+  Blort.java:79@008c: Rop{move-result I <- . flows} v85:I <- .
+  Blort.java:79@008c: goto . <- .
+  next 008f
+  live out:{16, 17, 18, 30, 39, 71, 84, 85, 99, 100, 101}
+block 01bf
+  pred 0097
+  live in:{}
+  Blort.java:81@0097: Rop{move-result-pseudo N0097Ljava/io/IOException; <- . fl
+  ows} v88:N0097Ljava/io/IOException; <- .
+  Blort.java:81@0097: goto . <- .
+  next 009a
+  live out:{88}
+block 01c0
+  pred 009a
+  live in:{88}
+  Blort.java:81@009b: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v89
+  :Ljava/lang/String;="Maximum line length limit exceeded" <- .
+  Blort.java:81@009b: goto . <- .
+  next 009d
+  live out:{88, 89}
+block 01c1
+  pred 00a1
+  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+  Blort.java:83@00a5: goto . <- .
+  next 00a8
+  live out:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+block 01c2
+  pred 00a8
+  live in:{16, 17, 18, 30, 39, 71, 99, 100, 101}
+  Blort.java:84@00b1: Rop{move-result I <- . flows} v94:I <- .
+  Blort.java:84@00b1: goto . <- .
+  next 00b4
+  live out:{16, 17, 18, 30, 39, 71, 94, 99, 100, 101}
+block 01c3
+  pred 00b4
+  live in:{16, 17, 18, 30, 39, 99, 100, 101}
+  Blort.java:84@00b7: goto . <- .
+  next 00ba
+  live out:{16, 17, 18, 30, 39, 99, 100, 101}
+block 01c4
+  pred 00c9
+  live in:{}
+  Blort.java:90@00c9: Rop{move-result-pseudo N00c9Ljava/io/IOException; <- . fl
+  ows} v63:N00c9Ljava/io/IOException; <- .
+  Blort.java:90@00c9: goto . <- .
+  next 00cc
+  live out:{63}
+block 01c5
+  pred 00cc
+  live in:{63}
+  Blort.java:90@00cd: Rop{move-result-pseudo Ljava/lang/String; <- . flows} v64
+  :Ljava/lang/String;="Maximum header count exceeded" <- .
+  Blort.java:90@00cd: goto . <- .
+  next 00cf
+  live out:{63, 64}
 block 01c6
   live in:{}
   @????: const-int(9) v101:I=9 <- .