This repository has been archived on 2024-10-22. You can view files and clone it, but cannot push or open issues or pull requests.
sp-03/test-output/all.dot

626 lines
33 KiB
Text

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