digraph root { node [label="\N", shape=record ]; subgraph privateInstanceCallMethod { node [label="\N", shape=record, xlabel="" ]; "privateInstanceCallMethodbb-1" [label=e, shape=circle, xlabel=privateInstanceCallMethod]; privateInstanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKESPECIAL ExampleClass.privateInstanceCallTarget ()V|4: // label|\ 5: // line number information|6: ICONST_2 |7: IRETURN }"]; "privateInstanceCallMethodbb-1" -> privateInstanceCallMethodbb0; "privateInstanceCallMethodbb-2" [label=x, shape=circle]; privateInstanceCallMethodbb0 -> "privateInstanceCallMethodbb-2"; } subgraph privateInstanceCallTarget { node [label="\N", shape=record, xlabel="" ]; "privateInstanceCallTargetbb-1" [label=e, shape=circle, xlabel=privateInstanceCallTarget]; privateInstanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"]; "privateInstanceCallTargetbb-1" -> privateInstanceCallTargetbb0; "privateInstanceCallTargetbb-2" [label=x, shape=circle]; privateInstanceCallTargetbb0 -> "privateInstanceCallTargetbb-2"; } subgraph allocAndInit2dArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocAndInit2dArrayMethodbb-1" [label=e, shape=circle, xlabel=allocAndInit2dArrayMethod]; allocAndInit2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_1 |3: ANEWARRAY [I|4: DUP |5: ICONST_0 |6: ICONST_1 |7: NEWARRAY T_INT|\ 8: DUP |9: ICONST_0 |10: ICONST_1 |11: IASTORE |12: AASTORE |13: ARETURN }"]; "allocAndInit2dArrayMethodbb-1" -> allocAndInit2dArrayMethodbb0; "allocAndInit2dArrayMethodbb-2" [label=x, shape=circle]; allocAndInit2dArrayMethodbb0 -> "allocAndInit2dArrayMethodbb-2"; } subgraph allocAndInitIntArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocAndInitIntArrayMethodbb-1" [label=e, shape=circle, xlabel=allocAndInitIntArrayMethod]; allocAndInitIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: NEWARRAY T_INT|4: DUP |5: ICONST_0 |6: ICONST_1 |7: IASTORE |8: DUP |\ 9: ICONST_1 |10: ICONST_2 |11: IASTORE |12: ARETURN }"]; "allocAndInitIntArrayMethodbb-1" -> allocAndInitIntArrayMethodbb0; "allocAndInitIntArrayMethodbb-2" [label=x, shape=circle]; allocAndInitIntArrayMethodbb0 -> "allocAndInitIntArrayMethodbb-2"; } subgraph allocAndInitObjectArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocAndInitObjectArrayMethodbb-1" [label=e, shape=circle, xlabel=allocAndInitObjectArrayMethod]; allocAndInitObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY java/lang/Object|4: DUP |5: ICONST_0 |6: LDC 1|7: AASTORE |\ 8: DUP |9: ICONST_1 |10: LDC 2|11: AASTORE |12: ARETURN }"]; "allocAndInitObjectArrayMethodbb-1" -> allocAndInitObjectArrayMethodbb0; "allocAndInitObjectArrayMethodbb-2" [label=x, shape=circle]; allocAndInitObjectArrayMethodbb0 -> "allocAndInitObjectArrayMethodbb-2"; } subgraph allocIncomplete2dArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocIncomplete2dArrayMethodbb-1" [label=e, shape=circle, xlabel=allocIncomplete2dArrayMethod]; allocIncomplete2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ANEWARRAY [I|4: ARETURN }"]; "allocIncomplete2dArrayMethodbb-1" -> allocIncomplete2dArrayMethodbb0; "allocIncomplete2dArrayMethodbb-2" [label=x, shape=circle]; allocIncomplete2dArrayMethodbb0 -> "allocIncomplete2dArrayMethodbb-2"; } subgraph forMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forMethodbb-1" [label=e, shape=circle, xlabel=forMethod]; forMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |\ 7: ISTORE 3}"]; "forMethodbb-1" -> forMethodbb0; "forMethodbb-2" [label=x, shape=circle]; forMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 23}"]; forMethodbb0 -> forMethodbb8; forMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 2|16: ILOAD 3|17: IADD |18: ISTORE 2|19: // label|20: // line number \ information|21: IINC 1 1|22: GOTO 8}"]; forMethodbb8 -> forMethodbb13; forMethodbb23 [label="23|{23: // label|24: // line number information|25: // stack frame map|26: ILOAD 2|27: IRETURN }"]; forMethodbb8 -> forMethodbb23 [label=T]; forMethodbb13 -> forMethodbb8 [label=T]; forMethodbb23 -> "forMethodbb-2"; } subgraph forWithBreakMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forWithBreakMethodbb-1" [label=e, shape=circle, xlabel=forWithBreakMethod]; forWithBreakMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |\ 7: ISTORE 3}"]; "forWithBreakMethodbb-1" -> forWithBreakMethodbb0; "forWithBreakMethodbb-2" [label=x, shape=circle]; forWithBreakMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 32}"]; forWithBreakMethodbb0 -> forWithBreakMethodbb8; forWithBreakMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"]; forWithBreakMethodbb8 -> forWithBreakMethodbb13; forWithBreakMethodbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: ILOAD 2|36: IRETURN }"]; forWithBreakMethodbb8 -> forWithBreakMethodbb32 [label=T]; forWithBreakMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 32}"]; forWithBreakMethodbb13 -> forWithBreakMethodbb18; forWithBreakMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2|28: // \ label|29: // line number information|30: IINC 3 1|31: GOTO 8}"]; forWithBreakMethodbb13 -> forWithBreakMethodbb21 [label=T]; forWithBreakMethodbb18 -> forWithBreakMethodbb32 [label=T]; forWithBreakMethodbb21 -> forWithBreakMethodbb8 [label=T]; forWithBreakMethodbb32 -> "forWithBreakMethodbb-2"; } subgraph forWithContinueMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forWithContinueMethodbb-1" [label=e, shape=circle, xlabel=forWithContinueMethod]; forWithContinueMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |\ 7: ISTORE 3}"]; "forWithContinueMethodbb-1" -> forWithContinueMethodbb0; "forWithContinueMethodbb-2" [label=x, shape=circle]; forWithContinueMethodbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 33}"]; forWithContinueMethodbb0 -> forWithContinueMethodbb8; forWithContinueMethodbb13 [label="13|{13: // label|14: // line number information|15: ILOAD 3|16: BIPUSH 10|17: IF_ICMPNE 21}"]; forWithContinueMethodbb8 -> forWithContinueMethodbb13; forWithContinueMethodbb33 [label="33|{33: // label|34: // line number information|35: // stack frame map|36: ILOAD 2|37: IRETURN }"]; forWithContinueMethodbb8 -> forWithContinueMethodbb33 [label=T]; forWithContinueMethodbb18 [label="18|{18: // label|19: // line number information|20: GOTO 28}"]; forWithContinueMethodbb13 -> forWithContinueMethodbb18; forWithContinueMethodbb21 [label="21|{21: // label|22: // line number information|23: // stack frame map|24: ILOAD 2|25: ILOAD 3|26: IADD |27: ISTORE 2}"]; forWithContinueMethodbb13 -> forWithContinueMethodbb21 [label=T]; forWithContinueMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: IINC 3 1|32: GOTO 8}"]; forWithContinueMethodbb18 -> forWithContinueMethodbb28 [label=T]; forWithContinueMethodbb21 -> forWithContinueMethodbb28; forWithContinueMethodbb28 -> forWithContinueMethodbb8 [label=T]; forWithContinueMethodbb33 -> "forWithContinueMethodbb-2"; } subgraph ifElseMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "ifElseMethodbb-1" [label=e, shape=circle, xlabel=ifElseMethod]; ifElseMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: \ IFLE 13}"]; "ifElseMethodbb-1" -> ifElseMethodbb0; "ifElseMethodbb-2" [label=x, shape=circle]; ifElseMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_0 |11: ISTORE 2|12: GOTO 18}"]; ifElseMethodbb0 -> ifElseMethodbb8; ifElseMethodbb13 [label="13|{13: // label|14: // line number information|15: // stack frame map|16: ILOAD 1|17: ISTORE 2}"]; ifElseMethodbb0 -> ifElseMethodbb13 [label=T]; ifElseMethodbb18 [label="18|{18: // label|19: // line number information|20: // stack frame map|21: ILOAD 2|22: IRETURN }"]; ifElseMethodbb8 -> ifElseMethodbb18 [label=T]; ifElseMethodbb13 -> ifElseMethodbb18; ifElseMethodbb18 -> "ifElseMethodbb-2"; } subgraph instanceCallMethod { node [label="\N", shape=record, xlabel="" ]; "instanceCallMethodbb-1" [label=e, shape=circle, xlabel=instanceCallMethod]; instanceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEVIRTUAL ExampleClass.instanceCallTarget ()V|4: // label|5: // \ line number information|6: ICONST_2 |7: IRETURN }"]; "instanceCallMethodbb-1" -> instanceCallMethodbb0; "instanceCallMethodbb-2" [label=x, shape=circle]; instanceCallMethodbb0 -> "instanceCallMethodbb-2"; } subgraph instanceCallTarget { node [label="\N", shape=record, xlabel="" ]; "instanceCallTargetbb-1" [label=e, shape=circle, xlabel=instanceCallTarget]; instanceCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"]; "instanceCallTargetbb-1" -> instanceCallTargetbb0; "instanceCallTargetbb-2" [label=x, shape=circle]; instanceCallTargetbb0 -> "instanceCallTargetbb-2"; } subgraph interfaceCallMethod { node [label="\N", shape=record, xlabel="" ]; "interfaceCallMethodbb-1" [label=e, shape=circle, xlabel=interfaceCallMethod]; interfaceCallMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: INVOKEINTERFACE ExampleClass$Interface.interfaceCallTarget ()V|4: // \ label|5: // line number information|6: ICONST_2 |7: IRETURN }"]; "interfaceCallMethodbb-1" -> interfaceCallMethodbb0; "interfaceCallMethodbb-2" [label=x, shape=circle]; interfaceCallMethodbb0 -> "interfaceCallMethodbb-2"; } subgraph nestedFor { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "nestedForbb-1" [label=e, shape=circle, xlabel=nestedFor]; nestedForbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ICONST_0 |\ 7: ISTORE 3}"]; "nestedForbb-1" -> nestedForbb0; "nestedForbb-2" [label=x, shape=circle]; nestedForbb8 [label="8|{8: // label|9: // stack frame map|10: ILOAD 3|11: ILOAD 1|12: IF_ICMPGE 37}"]; nestedForbb0 -> nestedForbb8; nestedForbb13 [label="13|{13: // label|14: // line number information|15: ICONST_0 |16: ISTORE 4}"]; nestedForbb8 -> nestedForbb13; nestedForbb37 [label="37|{37: // label|38: // line number information|39: // stack frame map|40: ILOAD 2|41: IRETURN }"]; nestedForbb8 -> nestedForbb37 [label=T]; nestedForbb17 [label="17|{17: // label|18: // stack frame map|19: ILOAD 4|20: ILOAD 3|21: IF_ICMPGE 32}"]; nestedForbb13 -> nestedForbb17; nestedForbb22 [label="22|{22: // label|23: // line number information|24: ILOAD 2|25: ILOAD 4|26: IADD |27: ISTORE 2|28: // label|29: // line number \ information|30: IINC 4 1|31: GOTO 17}"]; nestedForbb17 -> nestedForbb22; nestedForbb32 [label="32|{32: // label|33: // line number information|34: // stack frame map|35: IINC 3 1|36: GOTO 8}"]; nestedForbb17 -> nestedForbb32 [label=T]; nestedForbb22 -> nestedForbb17 [label=T]; nestedForbb32 -> nestedForbb8 [label=T]; nestedForbb37 -> "nestedForbb-2"; } subgraph nonShortCircuitMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "nonShortCircuitMethodbb-1" [label=e, shape=circle, xlabel=nonShortCircuitMethod]; nonShortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"]; "nonShortCircuitMethodbb-1" -> nonShortCircuitMethodbb0; "nonShortCircuitMethodbb-2" [label=x, shape=circle]; nonShortCircuitMethodbb5 [label="5|{5: ICONST_1 |6: GOTO 10}"]; nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb5; nonShortCircuitMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ICONST_0 }"]; nonShortCircuitMethodbb0 -> nonShortCircuitMethodbb7 [label=T]; nonShortCircuitMethodbb10 [label="10|{10: // label|11: // stack frame map|12: ILOAD 1|13: ILOAD 3|14: IF_ICMPGE 17}"]; nonShortCircuitMethodbb5 -> nonShortCircuitMethodbb10 [label=T]; nonShortCircuitMethodbb7 -> nonShortCircuitMethodbb10; nonShortCircuitMethodbb15 [label="15|{15: ICONST_1 |16: GOTO 20}"]; nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb15; nonShortCircuitMethodbb17 [label="17|{17: // label|18: // stack frame map|19: ICONST_0 }"]; nonShortCircuitMethodbb10 -> nonShortCircuitMethodbb17 [label=T]; nonShortCircuitMethodbb20 [label="20|{20: // label|21: // stack frame map|22: IAND |23: IFEQ 28}"]; nonShortCircuitMethodbb15 -> nonShortCircuitMethodbb20 [label=T]; nonShortCircuitMethodbb17 -> nonShortCircuitMethodbb20; nonShortCircuitMethodbb24 [label="24|{24: // label|25: // line number information|26: ICONST_1 |27: IRETURN }"]; nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb24; nonShortCircuitMethodbb28 [label="28|{28: // label|29: // line number information|30: // stack frame map|31: ICONST_0 |32: IRETURN }"]; nonShortCircuitMethodbb20 -> nonShortCircuitMethodbb28 [label=T]; nonShortCircuitMethodbb24 -> "nonShortCircuitMethodbb-2"; nonShortCircuitMethodbb24 -> nonShortCircuitMethodbb28; nonShortCircuitMethodbb28 -> "nonShortCircuitMethodbb-2"; } subgraph shortCircuitMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "shortCircuitMethodbb-1" [label=e, shape=circle, xlabel=shortCircuitMethod]; shortCircuitMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 12}"]; "shortCircuitMethodbb-1" -> shortCircuitMethodbb0; "shortCircuitMethodbb-2" [label=x, shape=circle]; shortCircuitMethodbb5 [label="5|{5: ILOAD 1|6: ILOAD 3|7: IF_ICMPGE 12}"]; shortCircuitMethodbb0 -> shortCircuitMethodbb5; shortCircuitMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ICONST_0 |16: IRETURN }"]; shortCircuitMethodbb0 -> shortCircuitMethodbb12 [label=T]; shortCircuitMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: IRETURN }"]; shortCircuitMethodbb5 -> shortCircuitMethodbb8; shortCircuitMethodbb5 -> shortCircuitMethodbb12 [label=T]; shortCircuitMethodbb8 -> "shortCircuitMethodbb-2"; shortCircuitMethodbb8 -> shortCircuitMethodbb12; shortCircuitMethodbb12 -> "shortCircuitMethodbb-2"; } subgraph staticCallMethod { node [label="\N", shape=record, xlabel="" ]; "staticCallMethodbb-1" [label=e, shape=circle, xlabel=staticCallMethod]; staticCallMethodbb0 [label="0|{0: // label|1: // line number information|2: INVOKESTATIC ExampleClass.staticCallTarget ()V|3: // label|4: // line number \ information|5: ICONST_2 |6: IRETURN }"]; "staticCallMethodbb-1" -> staticCallMethodbb0; "staticCallMethodbb-2" [label=x, shape=circle]; staticCallMethodbb0 -> "staticCallMethodbb-2"; } subgraph staticCallTarget { node [label="\N", shape=record, xlabel="" ]; "staticCallTargetbb-1" [label=e, shape=circle, xlabel=staticCallTarget]; staticCallTargetbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"]; "staticCallTargetbb-1" -> staticCallTargetbb0; "staticCallTargetbb-2" [label=x, shape=circle]; staticCallTargetbb0 -> "staticCallTargetbb-2"; } subgraph staticFieldReadMethod { node [label="\N", shape=record, xlabel="" ]; "staticFieldReadMethodbb-1" [label=e, shape=circle, xlabel=staticFieldReadMethod]; staticFieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: GETSTATIC ExampleClass.staticField Ljava/lang/String;|3: ARETURN }"]; "staticFieldReadMethodbb-1" -> staticFieldReadMethodbb0; "staticFieldReadMethodbb-2" [label=x, shape=circle]; staticFieldReadMethodbb0 -> "staticFieldReadMethodbb-2"; } subgraph staticFieldWriteMethod { node [label="\N", shape=record, xlabel="" ]; "staticFieldWriteMethodbb-1" [label=e, shape=circle, xlabel=staticFieldWriteMethod]; staticFieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: PUTSTATIC ExampleClass.staticField Ljava/lang/String;|4: // label|\ 5: // line number information|6: RETURN }"]; "staticFieldWriteMethodbb-1" -> staticFieldWriteMethodbb0; "staticFieldWriteMethodbb-2" [label=x, shape=circle]; staticFieldWriteMethodbb0 -> "staticFieldWriteMethodbb-2"; } subgraph switchMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "switchMethodbb-1" [label=e, shape=circle, xlabel=switchMethod]; switchMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: \ TABLESWITCH 0: 8, 1: 14, 2: 20, default: 26}"]; "switchMethodbb-1" -> switchMethodbb0; "switchMethodbb-2" [label=x, shape=circle]; switchMethodbb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"]; switchMethodbb0 -> switchMethodbb8 [label=0]; switchMethodbb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"]; switchMethodbb0 -> switchMethodbb14 [label=1]; switchMethodbb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"]; switchMethodbb0 -> switchMethodbb20 [label=2]; switchMethodbb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"]; switchMethodbb0 -> switchMethodbb26 [label=default]; switchMethodbb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"]; switchMethodbb8 -> switchMethodbb31 [label=T]; switchMethodbb14 -> switchMethodbb31 [label=T]; switchMethodbb20 -> switchMethodbb31 [label=T]; switchMethodbb26 -> switchMethodbb31; switchMethodbb31 -> "switchMethodbb-2"; } subgraph switchMethod2 { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "switchMethod2bb-1" [label=e, shape=circle, xlabel=switchMethod2]; switchMethod2bb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: \ LOOKUPSWITCH 0: 8, 1000: 14, 2000: 20, default: 26}"]; "switchMethod2bb-1" -> switchMethod2bb0; "switchMethod2bb-2" [label=x, shape=circle]; switchMethod2bb8 [label="8|{8: // label|9: // line number information|10: // stack frame map|11: ICONST_0 |12: ISTORE 2|13: GOTO 31}"]; switchMethod2bb0 -> switchMethod2bb8 [label=0]; switchMethod2bb14 [label="14|{14: // label|15: // line number information|16: // stack frame map|17: ICONST_1 |18: ISTORE 2|19: GOTO 31}"]; switchMethod2bb0 -> switchMethod2bb14 [label=1000]; switchMethod2bb20 [label="20|{20: // label|21: // line number information|22: // stack frame map|23: ICONST_2 |24: ISTORE 2|25: GOTO 31}"]; switchMethod2bb0 -> switchMethod2bb20 [label=2000]; switchMethod2bb26 [label="26|{26: // label|27: // line number information|28: // stack frame map|29: ICONST_M1 |30: ISTORE 2}"]; switchMethod2bb0 -> switchMethod2bb26 [label=default]; switchMethod2bb31 [label="31|{31: // label|32: // line number information|33: // stack frame map|34: ILOAD 2|35: IRETURN }"]; switchMethod2bb8 -> switchMethod2bb31 [label=T]; switchMethod2bb14 -> switchMethod2bb31 [label=T]; switchMethod2bb20 -> switchMethod2bb31 [label=T]; switchMethod2bb26 -> switchMethod2bb31; switchMethod2bb31 -> "switchMethod2bb-2"; } subgraph whileMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "whileMethodbb-1" [label=e, shape=circle, xlabel=whileMethod]; whileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"]; "whileMethodbb-1" -> whileMethodbb0; "whileMethodbb-2" [label=x, shape=circle]; whileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 1|8: IFLE 19}"]; whileMethodbb0 -> whileMethodbb4; whileMethodbb9 [label="9|{9: // label|10: // line number information|11: ILOAD 2|12: ILOAD 1|13: IADD |14: ISTORE 2|15: // label|16: // line number \ information|17: IINC 1 -1|18: GOTO 4}"]; whileMethodbb4 -> whileMethodbb9; whileMethodbb19 [label="19|{19: // label|20: // line number information|21: // stack frame map|22: ILOAD 2|23: IRETURN }"]; whileMethodbb4 -> whileMethodbb19 [label=T]; whileMethodbb9 -> whileMethodbb4 [label=T]; whileMethodbb19 -> "whileMethodbb-2"; } subgraph whileTrueMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "whileTrueMethodbb-1" [label=e, shape=circle, xlabel=whileTrueMethod]; whileTrueMethodbb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: GOTO 0}"]; "whileTrueMethodbb-1" -> whileTrueMethodbb0; "whileTrueMethodbb-2" [label=e, shape=circle, xlabel=whileTrueMethod]; whileTrueMethodbb0 -> whileTrueMethodbb0 [label=T]; } subgraph alloc2Of3dArrayMethod { node [label="\N", shape=record, xlabel="" ]; "alloc2Of3dArrayMethodbb-1" [label=e, shape=circle, xlabel=alloc2Of3dArrayMethod]; alloc2Of3dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[[I 2|5: ARETURN }"]; "alloc2Of3dArrayMethodbb-1" -> alloc2Of3dArrayMethodbb0; "alloc2Of3dArrayMethodbb-2" [label=x, shape=circle]; alloc2Of3dArrayMethodbb0 -> "alloc2Of3dArrayMethodbb-2"; } subgraph alloc2dArrayMethod { node [label="\N", shape=record, xlabel="" ]; "alloc2dArrayMethodbb-1" [label=e, shape=circle, xlabel=alloc2dArrayMethod]; alloc2dArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_2 |3: ICONST_3 |4: MULTIANEWARRAY [[I 2|5: ARETURN }"]; "alloc2dArrayMethodbb-1" -> alloc2dArrayMethodbb0; "alloc2dArrayMethodbb-2" [label=x, shape=circle]; alloc2dArrayMethodbb0 -> "alloc2dArrayMethodbb-2"; } subgraph allocIntArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocIntArrayMethodbb-1" [label=e, shape=circle, xlabel=allocIntArrayMethod]; allocIntArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: NEWARRAY T_INT|4: ARETURN }"]; "allocIntArrayMethodbb-1" -> allocIntArrayMethodbb0; "allocIntArrayMethodbb-2" [label=x, shape=circle]; allocIntArrayMethodbb0 -> "allocIntArrayMethodbb-2"; } subgraph allocObjectArrayMethod { node [label="\N", shape=record, xlabel="" ]; "allocObjectArrayMethodbb-1" [label=e, shape=circle, xlabel=allocObjectArrayMethod]; allocObjectArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_3 |3: ANEWARRAY java/lang/Object|4: ARETURN }"]; "allocObjectArrayMethodbb-1" -> allocObjectArrayMethodbb0; "allocObjectArrayMethodbb-2" [label=x, shape=circle]; allocObjectArrayMethodbb0 -> "allocObjectArrayMethodbb-2"; } subgraph allocObjectMethod { node [label="\N", shape=record, xlabel="" ]; "allocObjectMethodbb-1" [label=e, shape=circle, xlabel=allocObjectMethod]; allocObjectMethodbb0 [label="0|{0: // label|1: // line number information|2: NEW java/lang/Object|3: DUP |4: INVOKESPECIAL java/lang/Object. ()V|5: ARETURN }"]; "allocObjectMethodbb-1" -> allocObjectMethodbb0; "allocObjectMethodbb-2" [label=x, shape=circle]; allocObjectMethodbb0 -> "allocObjectMethodbb-2"; } subgraph arrayLengthMethod { node [label="\N", shape=record, xlabel="" ]; "arrayLengthMethodbb-1" [label=e, shape=circle, xlabel=arrayLengthMethod]; arrayLengthMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ARRAYLENGTH |4: IRETURN }"]; "arrayLengthMethodbb-1" -> arrayLengthMethodbb0; "arrayLengthMethodbb-2" [label=x, shape=circle]; arrayLengthMethodbb0 -> "arrayLengthMethodbb-2"; } subgraph arrayReadMethod { node [label="\N", shape=record, xlabel="" ]; "arrayReadMethodbb-1" [label=e, shape=circle, xlabel=arrayReadMethod]; arrayReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: AALOAD |5: ARETURN }"]; "arrayReadMethodbb-1" -> arrayReadMethodbb0; "arrayReadMethodbb-2" [label=x, shape=circle]; arrayReadMethodbb0 -> "arrayReadMethodbb-2"; } subgraph arrayWriteMethod { node [label="\N", shape=record, xlabel="" ]; "arrayWriteMethodbb-1" [label=e, shape=circle, xlabel=arrayWriteMethod]; arrayWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 1|3: ICONST_0 |4: ALOAD 2|5: AASTORE |6: // label|7: // line number information|\ 8: RETURN }"]; "arrayWriteMethodbb-1" -> arrayWriteMethodbb0; "arrayWriteMethodbb-2" [label=x, shape=circle]; arrayWriteMethodbb0 -> "arrayWriteMethodbb-2"; } subgraph condMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "condMethodbb-1" [label=e, shape=circle, xlabel=condMethod]; condMethodbb0 [label="0|{0: // label|1: // line number information|2: ILOAD 1|3: ILOAD 2|4: IF_ICMPLE 7}"]; "condMethodbb-1" -> condMethodbb0; "condMethodbb-2" [label=x, shape=circle]; condMethodbb5 [label="5|{5: ILOAD 1|6: GOTO 10}"]; condMethodbb0 -> condMethodbb5; condMethodbb7 [label="7|{7: // label|8: // stack frame map|9: ILOAD 2}"]; condMethodbb0 -> condMethodbb7 [label=T]; condMethodbb10 [label="10|{10: // label|11: // stack frame map|12: IRETURN }"]; condMethodbb5 -> condMethodbb10 [label=T]; condMethodbb7 -> condMethodbb10; condMethodbb10 -> "condMethodbb-2"; } subgraph doWhileMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "doWhileMethodbb-1" [label=e, shape=circle, xlabel=doWhileMethod]; doWhileMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"]; "doWhileMethodbb-1" -> doWhileMethodbb0; "doWhileMethodbb-2" [label=x, shape=circle]; doWhileMethodbb4 [label="4|{4: // label|5: // line number information|6: // stack frame map|7: ILOAD 2|8: ILOAD 1|9: IADD |10: ISTORE 2|11: // label|\ 12: // line number information|13: IINC 1 -1|14: // label|15: // line number information|16: ILOAD 1|17: IFGT 4}"]; doWhileMethodbb0 -> doWhileMethodbb4; doWhileMethodbb4 -> doWhileMethodbb4 [label=T]; doWhileMethodbb18 [label="18|{18: // label|19: // line number information|20: ILOAD 2|21: IRETURN }"]; doWhileMethodbb4 -> doWhileMethodbb18; doWhileMethodbb18 -> "doWhileMethodbb-2"; } subgraph doWhileTrue { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "doWhileTruebb-1" [label=e, shape=circle, xlabel=doWhileTrue]; doWhileTruebb0 [label="0|{0: // label|1: // line number information|2: // stack frame map|3: IINC 1 1|4: // label|5: // line number information|6: \ GOTO 0}"]; "doWhileTruebb-1" -> doWhileTruebb0; "doWhileTruebb-2" [label=e, shape=circle, xlabel=doWhileTrue]; doWhileTruebb0 -> doWhileTruebb0 [label=T]; } subgraph emptyMethod { node [label="\N", shape=record, xlabel="" ]; "emptyMethodbb-1" [label=e, shape=circle, xlabel=emptyMethod]; emptyMethodbb0 [label="0|{0: // label|1: // line number information|2: RETURN }"]; "emptyMethodbb-1" -> emptyMethodbb0; "emptyMethodbb-2" [label=x, shape=circle]; emptyMethodbb0 -> "emptyMethodbb-2"; } subgraph fieldReadMethod { node [label="\N", shape=record, xlabel="" ]; "fieldReadMethodbb-1" [label=e, shape=circle, xlabel=fieldReadMethod]; fieldReadMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: GETFIELD ExampleClass.field Ljava/lang/String;|4: ARETURN }"]; "fieldReadMethodbb-1" -> fieldReadMethodbb0; "fieldReadMethodbb-2" [label=x, shape=circle]; fieldReadMethodbb0 -> "fieldReadMethodbb-2"; } subgraph fieldWriteMethod { node [label="\N", shape=record, xlabel="" ]; "fieldWriteMethodbb-1" [label=e, shape=circle, xlabel=fieldWriteMethod]; fieldWriteMethodbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: ALOAD 1|4: PUTFIELD ExampleClass.field Ljava/lang/String;|5: // label|\ 6: // line number information|7: RETURN }"]; "fieldWriteMethodbb-1" -> fieldWriteMethodbb0; "fieldWriteMethodbb-2" [label=x, shape=circle]; fieldWriteMethodbb0 -> "fieldWriteMethodbb-2"; } subgraph forEachArrayMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forEachArrayMethodbb-1" [label=e, shape=circle, xlabel=forEachArrayMethod]; forEachArrayMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: \ ASTORE 3|8: ALOAD 3|9: ARRAYLENGTH |10: ISTORE 4|11: ICONST_0 |12: ISTORE 5}"]; "forEachArrayMethodbb-1" -> forEachArrayMethodbb0; "forEachArrayMethodbb-2" [label=x, shape=circle]; forEachArrayMethodbb13 [label="13|{13: // label|14: // stack frame map|15: ILOAD 5|16: ILOAD 4|17: IF_ICMPGE 29}"]; forEachArrayMethodbb0 -> forEachArrayMethodbb13; forEachArrayMethodbb18 [label="18|{18: ALOAD 3|19: ILOAD 5|20: AALOAD |21: ASTORE 6|22: // label|23: // line number information|24: IINC 2 1|25: // label|26: // \ line number information|27: IINC 5 1|28: GOTO 13}"]; forEachArrayMethodbb13 -> forEachArrayMethodbb18; forEachArrayMethodbb29 [label="29|{29: // label|30: // line number information|31: // stack frame map|32: ILOAD 2|33: IRETURN }"]; forEachArrayMethodbb13 -> forEachArrayMethodbb29 [label=T]; forEachArrayMethodbb18 -> forEachArrayMethodbb13 [label=T]; forEachArrayMethodbb29 -> "forEachArrayMethodbb-2"; } subgraph forEachCollectionMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forEachCollectionMethodbb-1" [label=e, shape=circle, xlabel=forEachCollectionMethod]; forEachCollectionMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ALOAD 1|7: \ INVOKEINTERFACE java/util/Set.iterator ()Ljava/util/Iterator;|8: ASTORE 3}"]; "forEachCollectionMethodbb-1" -> forEachCollectionMethodbb0; "forEachCollectionMethodbb-2" [label=x, shape=circle]; forEachCollectionMethodbb9 [label="9|{9: // label|10: // stack frame map|11: ALOAD 3|12: INVOKEINTERFACE java/util/Iterator.hasNext ()Z|13: IFEQ 24}"]; forEachCollectionMethodbb0 -> forEachCollectionMethodbb9; forEachCollectionMethodbb14 [label="14|{14: ALOAD 3|15: INVOKEINTERFACE java/util/Iterator.next ()Ljava/lang/Object;|16: CHECKCAST java/lang/String|17: ASTORE 4|18: // \ label|19: // line number information|20: IINC 2 1|21: // label|22: // line number information|23: GOTO 9}"]; forEachCollectionMethodbb9 -> forEachCollectionMethodbb14; forEachCollectionMethodbb24 [label="24|{24: // label|25: // line number information|26: // stack frame map|27: ILOAD 2|28: IRETURN }"]; forEachCollectionMethodbb9 -> forEachCollectionMethodbb24 [label=T]; forEachCollectionMethodbb14 -> forEachCollectionMethodbb9 [label=T]; forEachCollectionMethodbb24 -> "forEachCollectionMethodbb-2"; } subgraph ifMethod { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "ifMethodbb-1" [label=e, shape=circle, xlabel=ifMethod]; ifMethodbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2|4: // label|5: // line number information|6: ILOAD 1|7: \ IFGE 12}"]; "ifMethodbb-1" -> ifMethodbb0; "ifMethodbb-2" [label=x, shape=circle]; ifMethodbb8 [label="8|{8: // label|9: // line number information|10: ICONST_1 |11: ISTORE 2}"]; ifMethodbb0 -> ifMethodbb8; ifMethodbb12 [label="12|{12: // label|13: // line number information|14: // stack frame map|15: ILOAD 2|16: IRETURN }"]; ifMethodbb0 -> ifMethodbb12 [label=T]; ifMethodbb8 -> ifMethodbb12; ifMethodbb12 -> "ifMethodbb-2"; } subgraph init { node [label="\N", shape=record, xlabel="" ]; "initbb-1" [label=e, shape=circle, xlabel=init]; initbb0 [label="0|{0: // label|1: // line number information|2: ALOAD 0|3: INVOKESPECIAL java/lang/Object. ()V|4: RETURN }"]; "initbb-1" -> initbb0; "initbb-2" [label=x, shape=circle]; initbb0 -> "initbb-2"; } subgraph forEver { node [label="\N", shape=record, xlabel="" ]; edge [label=""]; "forEverbb-1" [label=e, shape=circle, xlabel=forEver]; forEverbb0 [label="0|{0: // label|1: // line number information|2: ICONST_0 |3: ISTORE 2}"]; "forEverbb-1" -> forEverbb0; "forEverbb-2" [label=e, shape=circle, xlabel=forEver]; forEverbb4 [label="4|{4: // label|5: // stack frame map|6: IINC 2 1|7: GOTO 4}"]; forEverbb0 -> forEverbb4; forEverbb4 -> forEverbb4 [label=T]; } }