見出し画像

デッドロック発見器

10月19日土曜日、雨

参加してきた。

フライングで試していた実装含めて、今日動くように仕立てたコードがこちら。(Kotlin/Native)

これを(コンパイルして)実行すると次のような出力が得られる。

digraph {
 0 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)" style=bold];
 1 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)" style=solid];
 2 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)" style=solid];
 3 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)" style=solid];
 4 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)" style=solid];
 5 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)" style=solid];
 6 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)" style=solid];
 7 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)" style=solid];
 8 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)" style=solid];
 9 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)" style=solid];
 10 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)" style=solid];
 11 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)" style=solid];
 12 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)" style=solid];
 13 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)" style=solid];
 14 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)" style=solid];
 15 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)" style=solid];
 16 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 17 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)" style=solid];
 18 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)" style=solid];
 19 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 20 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=P0, t=0)" style=solid];
 21 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=1)" style=solid];
 22 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)" style=solid];
 23 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)" style=solid];
 24 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)" style=solid];
 25 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)" style=solid];
 26 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)" style=solid];
 27 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 28 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)" style=solid];
 29 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)" style=solid];
 30 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 31 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 32 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 33 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 34 [label="Shared(x=0)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)" style=solid];
 35 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 36 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 37 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 38 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=P0, t=0)" style=solid];
 39 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=P1, t=1)" style=solid];
 40 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=2)" style=solid];
 41 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)" style=solid];
 42 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=1)" style=solid];
 43 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 44 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)" style=solid];
 45 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)" style=solid];
 46 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)" style=solid];
 47 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=P1, t=0)" style=solid];
 48 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)" style=solid];
 49 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 50 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 51 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 52 [label="Shared(x=0)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)" style=solid];
 53 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 54 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 55 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 56 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 57 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 58 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 59 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 60 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 61 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 62 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 63 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 64 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 65 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P0, t=0)" style=solid];
 66 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=P1, t=1)" style=solid];
 67 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=P2, t=2)" style=solid];
 68 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=2)" style=solid];
 69 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 70 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=1)" style=solid];
 71 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=2)" style=solid];
 72 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 73 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)" style=solid];
 74 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 75 [label="Shared(x=0)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)" style=solid];
 76 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)" style=solid];
 77 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 78 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=P1, t=0)" style=solid];
 79 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=P2, t=1)" style=solid];
 80 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 81 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 82 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 83 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 84 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 85 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 86 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P0, t=0)" style=solid];
 87 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 88 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 89 [label="Shared(x=2)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 90 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 91 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 92 [label="Shared(x=1)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 93 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 94 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 95 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 96 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 97 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 98 [label="Shared(x=2)\nLocal(ir=P0, t=0)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 99 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=2)" style=solid];
 100 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=1)" style=solid];
 101 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=P2, t=2)" style=solid];
 102 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 103 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=2)\nLocal(ir=EXIT, t=2)" style=solid];
 104 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 105 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=2)" style=solid];
 106 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=2)" style=solid];
 107 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 108 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 109 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)" style=solid];
 110 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 111 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 112 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 113 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=0)" style=solid];
 114 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=P2, t=1)" style=solid];
 115 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 116 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 117 [label="Shared(x=2)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 118 [label="Shared(x=1)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 119 [label="Shared(x=2)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 120 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=2)" style=solid];
 121 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=1)" style=solid];
 122 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 123 [label="Shared(x=2)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 124 [label="Shared(x=2)\nLocal(ir=P1, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 125 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P1, t=0)" style=solid];
 126 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 127 [label="Shared(x=1)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 128 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 129 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=0)\nLocal(ir=EXIT, t=1)" style=solid];
 130 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 131 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 132 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 133 [label="Shared(x=2)\nLocal(ir=P1, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 134 [label="Shared(x=2)\nLocal(ir=P1, t=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 135 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=3)" style=solid];
 136 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=2)" style=solid];
 137 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=2)" style=solid];
 138 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=3)\nLocal(ir=EXIT, t=2)" style=solid];
 139 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 140 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 141 [label="Shared(x=2)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 142 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 143 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 144 [label="Shared(x=1)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 145 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=1)" style=solid];
 146 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 147 [label="Shared(x=2)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 148 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=3)" style=solid];
 149 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=2)" style=solid];
 150 [label="Shared(x=2)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 151 [label="Shared(x=2)\nLocal(ir=P2, t=3)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=solid];
 152 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=P2, t=1)" style=solid];
 153 [label="Shared(x=1)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 154 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=1)\nLocal(ir=EXIT, t=1)" style=solid];
 155 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=3)\nLocal(ir=EXIT, t=1)" style=solid];
 156 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 157 [label="Shared(x=2)\nLocal(ir=P2, t=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 158 [label="Shared(x=2)\nLocal(ir=P2, t=3)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=solid];
 159 [label="Shared(x=3)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=3)" style=filled];
 160 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=2)" style=filled];
 161 [label="Shared(x=3)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=3)\nLocal(ir=EXIT, t=2)" style=filled];
 162 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=filled];
 163 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=filled];
 164 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=filled];
 165 [label="Shared(x=1)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=filled];
 166 [label="Shared(x=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=filled];
 167 [label="Shared(x=3)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=3)" style=filled];
 168 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=filled];
 169 [label="Shared(x=3)\nLocal(ir=EXIT, t=3)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=2)" style=filled];
 170 [label="Shared(x=1)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=filled];
 171 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)\nLocal(ir=EXIT, t=1)" style=filled];
 172 [label="Shared(x=3)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=3)\nLocal(ir=EXIT, t=1)" style=filled];
 173 [label="Shared(x=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=filled];
 174 [label="Shared(x=3)\nLocal(ir=EXIT, t=3)\nLocal(ir=EXIT, t=2)\nLocal(ir=EXIT, t=1)" style=filled];
 0 -> 1 [label="read"];
 0 -> 2 [label="read"];
 0 -> 3 [label="read"];
 1 -> 4 [label="increment"];
 1 -> 5 [label="read"];
 1 -> 6 [label="read"];
 2 -> 5 [label="read"];
 2 -> 7 [label="increment"];
 2 -> 8 [label="read"];
 3 -> 6 [label="read"];
 3 -> 8 [label="read"];
 3 -> 9 [label="increment"];
 4 -> 10 [label="write"];
 4 -> 11 [label="read"];
 4 -> 12 [label="read"];
 5 -> 11 [label="increment"];
 5 -> 13 [label="increment"];
 5 -> 14 [label="read"];
 6 -> 12 [label="increment"];
 6 -> 14 [label="read"];
 6 -> 15 [label="increment"];
 7 -> 13 [label="read"];
 7 -> 16 [label="write"];
 7 -> 17 [label="read"];
 8 -> 14 [label="read"];
 8 -> 17 [label="increment"];
 8 -> 18 [label="increment"];
 9 -> 15 [label="read"];
 9 -> 18 [label="read"];
 9 -> 19 [label="write"];
 10 -> 20 [label="read"];
 10 -> 21 [label="read"];
 11 -> 22 [label="write"];
 11 -> 23 [label="increment"];
 11 -> 24 [label="read"];
 12 -> 25 [label="write"];
 12 -> 24 [label="read"];
 12 -> 26 [label="increment"];
 13 -> 23 [label="increment"];
 13 -> 27 [label="write"];
 13 -> 28 [label="read"];
 14 -> 24 [label="increment"];
 14 -> 28 [label="increment"];
 14 -> 29 [label="increment"];
 15 -> 26 [label="increment"];
 15 -> 29 [label="read"];
 15 -> 30 [label="write"];
 16 -> 31 [label="read"];
 16 -> 32 [label="read"];
 17 -> 28 [label="read"];
 17 -> 33 [label="write"];
 17 -> 34 [label="increment"];
 18 -> 29 [label="read"];
 18 -> 34 [label="increment"];
 18 -> 35 [label="write"];
 19 -> 36 [label="read"];
 19 -> 37 [label="read"];
 20 -> 38 [label="increment"];
 20 -> 39 [label="read"];
 21 -> 39 [label="read"];
 21 -> 40 [label="increment"];
 22 -> 41 [label="increment"];
 22 -> 42 [label="read"];
 23 -> 41 [label="write"];
 23 -> 43 [label="write"];
 23 -> 44 [label="read"];
 24 -> 45 [label="write"];
 24 -> 44 [label="increment"];
 24 -> 46 [label="increment"];
 25 -> 47 [label="read"];
 25 -> 48 [label="increment"];
 26 -> 48 [label="write"];
 26 -> 46 [label="read"];
 26 -> 49 [label="write"];
 27 -> 43 [label="increment"];
 27 -> 50 [label="read"];
 28 -> 44 [label="increment"];
 28 -> 51 [label="write"];
 28 -> 52 [label="increment"];
 29 -> 46 [label="increment"];
 29 -> 52 [label="increment"];
 29 -> 53 [label="write"];
 30 -> 49 [label="increment"];
 30 -> 54 [label="read"];
 31 -> 55 [label="increment"];
 31 -> 56 [label="read"];
 32 -> 56 [label="read"];
 32 -> 57 [label="increment"];
 33 -> 58 [label="read"];
 33 -> 59 [label="increment"];
 34 -> 52 [label="read"];
 34 -> 59 [label="write"];
 34 -> 60 [label="write"];
 35 -> 61 [label="read"];
 35 -> 60 [label="increment"];
 36 -> 62 [label="increment"];
 36 -> 63 [label="read"];
 37 -> 63 [label="read"];
 37 -> 64 [label="increment"];
 38 -> 65 [label="write"];
 38 -> 66 [label="read"];
 39 -> 66 [label="increment"];
 39 -> 67 [label="increment"];
 40 -> 67 [label="read"];
 40 -> 68 [label="write"];
 41 -> 69 [label="write"];
 41 -> 70 [label="read"];
 42 -> 70 [label="increment"];
 42 -> 71 [label="increment"];
 43 -> 69 [label="write"];
 43 -> 72 [label="read"];
 44 -> 73 [label="write"];
 44 -> 74 [label="write"];
 44 -> 75 [label="increment"];
 45 -> 73 [label="increment"];
 45 -> 76 [label="increment"];
 46 -> 76 [label="write"];
 46 -> 75 [label="increment"];
 46 -> 77 [label="write"];
 47 -> 78 [label="increment"];
 47 -> 79 [label="increment"];
 48 -> 79 [label="read"];
 48 -> 80 [label="write"];
 49 -> 80 [label="write"];
 49 -> 81 [label="read"];
 50 -> 72 [label="increment"];
 50 -> 82 [label="increment"];
 51 -> 74 [label="increment"];
 51 -> 83 [label="increment"];
 52 -> 75 [label="increment"];
 52 -> 83 [label="write"];
 52 -> 84 [label="write"];
 53 -> 77 [label="increment"];
 53 -> 84 [label="increment"];
 54 -> 81 [label="increment"];
 54 -> 85 [label="increment"];
 55 -> 86 [label="write"];
 55 -> 87 [label="read"];
 56 -> 87 [label="increment"];
 56 -> 88 [label="increment"];
 57 -> 88 [label="read"];
 57 -> 89 [label="write"];
 58 -> 90 [label="increment"];
 58 -> 91 [label="increment"];
 59 -> 91 [label="read"];
 59 -> 92 [label="write"];
 60 -> 93 [label="read"];
 60 -> 92 [label="write"];
 61 -> 94 [label="increment"];
 61 -> 93 [label="increment"];
 62 -> 95 [label="write"];
 62 -> 96 [label="read"];
 63 -> 96 [label="increment"];
 63 -> 97 [label="increment"];
 64 -> 97 [label="read"];
 64 -> 98 [label="write"];
 65 -> 99 [label="read"];
 66 -> 100 [label="write"];
 66 -> 101 [label="increment"];
 67 -> 101 [label="increment"];
 67 -> 102 [label="write"];
 68 -> 103 [label="read"];
 69 -> 104 [label="read"];
 70 -> 104 [label="write"];
 70 -> 105 [label="increment"];
 71 -> 105 [label="increment"];
 71 -> 106 [label="write"];
 72 -> 104 [label="write"];
 72 -> 107 [label="increment"];
 73 -> 108 [label="write"];
 73 -> 109 [label="increment"];
 74 -> 108 [label="write"];
 74 -> 110 [label="increment"];
 75 -> 109 [label="write"];
 75 -> 110 [label="write"];
 75 -> 111 [label="write"];
 76 -> 109 [label="increment"];
 76 -> 112 [label="write"];
 77 -> 112 [label="write"];
 77 -> 111 [label="increment"];
 78 -> 113 [label="write"];
 78 -> 114 [label="increment"];
 79 -> 114 [label="increment"];
 79 -> 115 [label="write"];
 80 -> 115 [label="read"];
 81 -> 115 [label="write"];
 81 -> 116 [label="increment"];
 82 -> 107 [label="increment"];
 82 -> 117 [label="write"];
 83 -> 110 [label="increment"];
 83 -> 118 [label="write"];
 84 -> 111 [label="increment"];
 84 -> 118 [label="write"];
 85 -> 116 [label="increment"];
 85 -> 119 [label="write"];
 86 -> 120 [label="read"];
 87 -> 121 [label="write"];
 87 -> 122 [label="increment"];
 88 -> 122 [label="increment"];
 88 -> 123 [label="write"];
 89 -> 124 [label="read"];
 90 -> 125 [label="write"];
 90 -> 126 [label="increment"];
 91 -> 126 [label="increment"];
 91 -> 127 [label="write"];
 92 -> 127 [label="read"];
 93 -> 128 [label="increment"];
 93 -> 127 [label="write"];
 94 -> 129 [label="write"];
 94 -> 128 [label="increment"];
 95 -> 130 [label="read"];
 96 -> 131 [label="write"];
 96 -> 132 [label="increment"];
 97 -> 132 [label="increment"];
 97 -> 133 [label="write"];
 98 -> 134 [label="read"];
 99 -> 135 [label="increment"];
 100 -> 136 [label="increment"];
 101 -> 136 [label="write"];
 101 -> 137 [label="write"];
 102 -> 137 [label="increment"];
 103 -> 138 [label="increment"];
 104 -> 139 [label="increment"];
 105 -> 139 [label="write"];
 105 -> 140 [label="write"];
 106 -> 140 [label="increment"];
 107 -> 139 [label="write"];
 107 -> 141 [label="write"];
 108 -> 142 [label="increment"];
 109 -> 142 [label="write"];
 109 -> 143 [label="write"];
 110 -> 142 [label="write"];
 110 -> 144 [label="write"];
 111 -> 143 [label="write"];
 111 -> 144 [label="write"];
 112 -> 143 [label="increment"];
 113 -> 145 [label="increment"];
 114 -> 145 [label="write"];
 114 -> 146 [label="write"];
 115 -> 146 [label="increment"];
 116 -> 146 [label="write"];
 116 -> 147 [label="write"];
 117 -> 141 [label="increment"];
 118 -> 144 [label="increment"];
 119 -> 147 [label="increment"];
 120 -> 148 [label="increment"];
 121 -> 149 [label="increment"];
 122 -> 149 [label="write"];
 122 -> 150 [label="write"];
 123 -> 150 [label="increment"];
 124 -> 151 [label="increment"];
 125 -> 152 [label="increment"];
 126 -> 152 [label="write"];
 126 -> 153 [label="write"];
 127 -> 153 [label="increment"];
 128 -> 154 [label="write"];
 128 -> 153 [label="write"];
 129 -> 154 [label="increment"];
 130 -> 155 [label="increment"];
 131 -> 156 [label="increment"];
 132 -> 156 [label="write"];
 132 -> 157 [label="write"];
 133 -> 157 [label="increment"];
 134 -> 158 [label="increment"];
 135 -> 159 [label="write"];
 136 -> 160 [label="write"];
 137 -> 160 [label="write"];
 138 -> 161 [label="write"];
 139 -> 162 [label="write"];
 140 -> 163 [label="write"];
 141 -> 163 [label="write"];
 142 -> 164 [label="write"];
 143 -> 164 [label="write"];
 144 -> 164 [label="write"];
 145 -> 165 [label="write"];
 146 -> 166 [label="write"];
 147 -> 165 [label="write"];
 148 -> 167 [label="write"];
 149 -> 168 [label="write"];
 150 -> 168 [label="write"];
 151 -> 169 [label="write"];
 152 -> 170 [label="write"];
 153 -> 171 [label="write"];
 154 -> 170 [label="write"];
 155 -> 172 [label="write"];
 156 -> 173 [label="write"];
 157 -> 173 [label="write"];
 158 -> 174 [label="write"];
}

これを GraphViz (dot コマンド)に食わせると、こんな絵ができる。(デカすぎて入りきらない)

画像1


この記事が気に入ったらサポートをしてみませんか?