Improve graph visualization

This commit is contained in:
Dmitry Stogov 2023-03-23 03:22:13 +03:00
parent 6d36fb12c3
commit 2406b13359
2 changed files with 259 additions and 255 deletions

View File

@ -4,556 +4,556 @@
<!-- Generated by graphviz version 5.0.0 (0)
-->
<!-- Title: ir Pages: 1 -->
<svg width="1387pt" height="1052pt"
viewBox="0.00 0.00 1386.64 1052.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 1048)">
<svg width="1352pt" height="836pt"
viewBox="0.00 0.00 1351.64 836.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 832)">
<title>ir</title>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-1048 1382.64,-1048 1382.64,4 -4,4"/>
<polygon fill="white" stroke="transparent" points="-4,4 -4,-832 1347.64,-832 1347.64,4 -4,4"/>
<!-- c9 -->
<g id="node1" class="node">
<title>c9</title>
<ellipse fill="yellow" stroke="black" cx="302" cy="-1026" rx="91.78" ry="18"/>
<text text-anchor="middle" x="302" y="-1022.3" font-family="Times,serif" font-size="14.00">C9: CONST I32(1000)</text>
<ellipse fill="yellow" stroke="black" cx="456" cy="-666" rx="91.78" ry="18"/>
<text text-anchor="middle" x="456" y="-662.3" font-family="Times,serif" font-size="14.00">C9: CONST I32(1000)</text>
</g>
<!-- n19 -->
<g id="node32" class="node">
<title>n19</title>
<polygon fill="deepskyblue" stroke="black" points="216,-540 128.86,-522 216,-504 303.14,-522 216,-540"/>
<text text-anchor="middle" x="216" y="-518.3" font-family="Times,serif" font-size="14.00">19: GT BOOL</text>
<polygon fill="deepskyblue" stroke="black" points="478,-324 426.55,-306 478,-288 529.45,-306 478,-324"/>
<text text-anchor="middle" x="478" y="-302.3" font-family="Times,serif" font-size="14.00">19: GT</text>
</g>
<!-- c9&#45;&gt;n19 -->
<g id="edge35" class="edge">
<title>c9&#45;&gt;n19</title>
<path fill="none" stroke="blue" d="M308.56,-1007.77C328.18,-953.78 382.85,-783.41 347,-648 337.57,-612.4 331.85,-602.23 306,-576 290.86,-560.64 270.35,-548.1 252.74,-539.09"/>
<polygon fill="blue" stroke="blue" points="253.82,-535.73 243.3,-534.45 250.73,-542.01 253.82,-535.73"/>
<path fill="none" stroke="blue" d="M511.86,-651.67C532.54,-643.73 553.88,-631.3 566,-612 581.33,-587.6 612.68,-498.16 539,-360 531.12,-345.21 517.31,-332.69 504.82,-323.53"/>
<polygon fill="blue" stroke="blue" points="506.69,-320.57 496.48,-317.75 502.7,-326.32 506.69,-320.57"/>
</g>
<!-- c8 -->
<g id="node2" class="node">
<title>c8</title>
<ellipse fill="yellow" stroke="black" cx="623" cy="-306" rx="106.68" ry="18"/>
<text text-anchor="middle" x="623" y="-302.3" font-family="Times,serif" font-size="14.00">C8: CONST DOUBLE(16)</text>
<ellipse fill="yellow" stroke="black" cx="450" cy="-594" rx="106.68" ry="18"/>
<text text-anchor="middle" x="450" y="-590.3" font-family="Times,serif" font-size="14.00">C8: CONST DOUBLE(16)</text>
</g>
<!-- n14 -->
<g id="node27" class="node">
<title>n14</title>
<polygon fill="deepskyblue" stroke="black" points="623,-252 535.86,-234 623,-216 710.14,-234 623,-252"/>
<text text-anchor="middle" x="623" y="-230.3" font-family="Times,serif" font-size="14.00">14: GT BOOL</text>
<polygon fill="deepskyblue" stroke="black" points="479,-396 427.55,-378 479,-360 530.45,-378 479,-396"/>
<text text-anchor="middle" x="479" y="-374.3" font-family="Times,serif" font-size="14.00">14: GT</text>
</g>
<!-- c8&#45;&gt;n14 -->
<g id="edge27" class="edge">
<title>c8&#45;&gt;n14</title>
<path fill="none" stroke="blue" d="M623,-287.7C623,-279.98 623,-270.71 623,-262.11"/>
<polygon fill="blue" stroke="blue" points="626.5,-262.1 623,-252.1 619.5,-262.1 626.5,-262.1"/>
<path fill="none" stroke="blue" d="M452.32,-575.85C457.38,-538.56 469.4,-449.88 475.42,-405.4"/>
<polygon fill="blue" stroke="blue" points="478.91,-405.73 476.78,-395.35 471.97,-404.79 478.91,-405.73"/>
</g>
<!-- c7 -->
<g id="node3" class="node">
<title>c7</title>
<ellipse fill="yellow" stroke="black" cx="145" cy="-666" rx="78.79" ry="18"/>
<text text-anchor="middle" x="145" y="-662.3" font-family="Times,serif" font-size="14.00">C7: CONST I32(1)</text>
<ellipse fill="yellow" stroke="black" cx="229" cy="-666" rx="78.79" ry="18"/>
<text text-anchor="middle" x="229" y="-662.3" font-family="Times,serif" font-size="14.00">C7: CONST I32(1)</text>
</g>
<!-- n10 -->
<g id="node23" class="node">
<title>n10</title>
<polygon fill="deepskyblue" stroke="black" points="216,-612 135.23,-594 216,-576 296.77,-594 216,-612"/>
<text text-anchor="middle" x="216" y="-590.3" font-family="Times,serif" font-size="14.00">10: ADD I32</text>
<polygon fill="deepskyblue" stroke="black" points="226,-540 165.17,-522 226,-504 286.83,-522 226,-540"/>
<text text-anchor="middle" x="226" y="-518.3" font-family="Times,serif" font-size="14.00">10: ADD</text>
</g>
<!-- c7&#45;&gt;n10 -->
<g id="edge19" class="edge">
<title>c7&#45;&gt;n10</title>
<path fill="none" stroke="blue" d="M161.83,-648.41C171.59,-638.78 184,-626.55 194.47,-616.23"/>
<polygon fill="blue" stroke="blue" points="197.03,-618.62 201.69,-609.11 192.11,-613.64 197.03,-618.62"/>
<path fill="none" stroke="blue" d="M208.22,-648.17C198.25,-638.72 187.32,-626.03 182,-612 176.32,-597.04 176.57,-591.05 182,-576 186.46,-563.65 195.19,-552.14 203.71,-543.02"/>
<polygon fill="blue" stroke="blue" points="206.45,-545.23 211.03,-535.67 201.49,-540.29 206.45,-545.23"/>
</g>
<!-- c6 -->
<g id="node4" class="node">
<title>c6</title>
<ellipse fill="yellow" stroke="black" cx="169" cy="-738" rx="78.79" ry="18"/>
<text text-anchor="middle" x="169" y="-734.3" font-family="Times,serif" font-size="14.00">C6: CONST I32(0)</text>
<ellipse fill="yellow" stroke="black" cx="417" cy="-738" rx="78.79" ry="18"/>
<text text-anchor="middle" x="417" y="-734.3" font-family="Times,serif" font-size="14.00">C6: CONST I32(0)</text>
</g>
<!-- n22 -->
<g id="node11" class="node">
<title>n22</title>
<path fill="red" stroke="black" d="M110,-36C110,-36 42,-36 42,-36 36,-36 30,-30 30,-24 30,-24 30,-12 30,-12 30,-6 36,0 42,0 42,0 110,0 110,0 116,0 122,-6 122,-12 122,-12 122,-24 122,-24 122,-30 116,-36 110,-36"/>
<text text-anchor="middle" x="76" y="-14.3" font-family="Times,serif" font-size="14.00">22: RETURN</text>
<path fill="red" stroke="black" d="M190,-36C190,-36 122,-36 122,-36 116,-36 110,-30 110,-24 110,-24 110,-12 110,-12 110,-6 116,0 122,0 122,0 190,0 190,0 196,0 202,-6 202,-12 202,-12 202,-24 202,-24 202,-30 196,-36 190,-36"/>
<text text-anchor="middle" x="156" y="-14.3" font-family="Times,serif" font-size="14.00">22: RETURN</text>
</g>
<!-- c6&#45;&gt;n22 -->
<g id="edge40" class="edge">
<title>c6&#45;&gt;n22</title>
<path fill="none" stroke="blue" d="M118.47,-724.13C96.51,-716.06 72.35,-703.4 57,-684 31.9,-652.29 38,-635.45 38,-595 38,-595 38,-595 38,-161 38,-119.63 53.23,-73.72 64.41,-45.61"/>
<polygon fill="blue" stroke="blue" points="67.76,-46.67 68.31,-36.09 61.28,-44.02 67.76,-46.67"/>
<path fill="none" stroke="blue" d="M341.18,-733C268.41,-727.39 165.98,-714.23 141,-684 14.8,-531.26 215.48,-446.92 251,-252 263.86,-181.41 207.15,-173.57 178,-108 169.19,-88.18 163.53,-64.25 160.15,-46.19"/>
<polygon fill="blue" stroke="blue" points="163.6,-45.57 158.43,-36.32 156.7,-46.77 163.6,-45.57"/>
</g>
<!-- n9 -->
<g id="node22" class="node">
<title>n9</title>
<ellipse fill="deepskyblue" stroke="black" cx="290" cy="-666" rx="48.19" ry="18"/>
<text text-anchor="middle" x="290" y="-662.3" font-family="Times,serif" font-size="14.00">9: PHI I32</text>
<ellipse fill="deepskyblue" stroke="black" cx="239" cy="-594" rx="48.19" ry="18"/>
<text text-anchor="middle" x="239" y="-590.3" font-family="Times,serif" font-size="14.00">9: PHI I32</text>
</g>
<!-- c6&#45;&gt;n9 -->
<g id="edge16" class="edge">
<title>c6&#45;&gt;n9</title>
<path fill="none" stroke="blue" d="M196.46,-721.12C214.07,-710.92 237.08,-697.61 255.87,-686.74"/>
<polygon fill="blue" stroke="blue" points="257.81,-689.66 264.72,-681.63 254.31,-683.61 257.81,-689.66"/>
<path fill="none" stroke="blue" d="M397.23,-720.54C384.94,-710.21 368.89,-696.5 355,-684 337.71,-668.44 335.12,-662.59 317,-648 302.63,-636.44 285.81,-624.79 271.48,-615.37"/>
<polygon fill="blue" stroke="blue" points="273.21,-612.33 262.91,-609.82 269.4,-618.2 273.21,-612.33"/>
</g>
<!-- c5 -->
<g id="node5" class="node">
<title>c5</title>
<ellipse fill="yellow" stroke="black" cx="865" cy="-810" rx="102.88" ry="18"/>
<text text-anchor="middle" x="865" y="-806.3" font-family="Times,serif" font-size="14.00">C5: CONST DOUBLE(0)</text>
<ellipse fill="yellow" stroke="black" cx="819" cy="-666" rx="102.88" ry="18"/>
<text text-anchor="middle" x="819" y="-662.3" font-family="Times,serif" font-size="14.00">C5: CONST DOUBLE(0)</text>
</g>
<!-- n7 -->
<g id="node18" class="node">
<title>n7</title>
<ellipse fill="deepskyblue" stroke="black" cx="768" cy="-450" rx="72.29" ry="18"/>
<text text-anchor="middle" x="768" y="-446.3" font-family="Times,serif" font-size="14.00">7: PHI DOUBLE</text>
<ellipse fill="deepskyblue" stroke="black" cx="885" cy="-594" rx="72.29" ry="18"/>
<text text-anchor="middle" x="885" y="-590.3" font-family="Times,serif" font-size="14.00">7: PHI DOUBLE</text>
</g>
<!-- c5&#45;&gt;n7 -->
<g id="edge10" class="edge">
<title>c5&#45;&gt;n7</title>
<path fill="none" stroke="blue" d="M805.4,-795.27C744.25,-777.23 658,-739.02 658,-667 658,-667 658,-667 658,-593 658,-549.63 670.98,-537.92 698,-504 707.64,-491.89 720.65,-481.05 732.84,-472.37"/>
<polygon fill="blue" stroke="blue" points="734.82,-475.26 741.09,-466.72 730.87,-469.48 734.82,-475.26"/>
<path fill="none" stroke="blue" d="M834.98,-648.05C843.16,-639.37 853.28,-628.64 862.26,-619.11"/>
<polygon fill="blue" stroke="blue" points="864.86,-621.47 869.17,-611.79 859.76,-616.66 864.86,-621.47"/>
</g>
<!-- n8 -->
<g id="node20" class="node">
<title>n8</title>
<ellipse fill="deepskyblue" stroke="black" cx="543" cy="-738" rx="72.29" ry="18"/>
<text text-anchor="middle" x="543" y="-734.3" font-family="Times,serif" font-size="14.00">8: PHI DOUBLE</text>
<ellipse fill="deepskyblue" stroke="black" cx="723" cy="-594" rx="72.29" ry="18"/>
<text text-anchor="middle" x="723" y="-590.3" font-family="Times,serif" font-size="14.00">8: PHI DOUBLE</text>
</g>
<!-- c5&#45;&gt;n8 -->
<g id="edge13" class="edge">
<title>c5&#45;&gt;n8</title>
<path fill="none" stroke="blue" d="M803.3,-795.59C746.45,-783.23 662.5,-764.98 605.42,-752.57"/>
<polygon fill="blue" stroke="blue" points="605.96,-749.11 595.44,-750.4 604.47,-755.95 605.96,-749.11"/>
<path fill="none" stroke="blue" d="M796.25,-648.41C783.48,-639.1 767.39,-627.37 753.54,-617.27"/>
<polygon fill="blue" stroke="blue" points="755.4,-614.29 745.26,-611.23 751.27,-619.95 755.4,-614.29"/>
</g>
<!-- c4 -->
<g id="node6" class="node">
<title>c4</title>
<ellipse fill="yellow" stroke="black" cx="1030" cy="-954" rx="109.38" ry="18"/>
<text text-anchor="middle" x="1030" y="-950.3" font-family="Times,serif" font-size="14.00">C4: CONST DOUBLE(0.5)</text>
<ellipse fill="yellow" stroke="black" cx="1007" cy="-738" rx="109.38" ry="18"/>
<text text-anchor="middle" x="1007" y="-734.3" font-family="Times,serif" font-size="14.00">C4: CONST DOUBLE(0.5)</text>
</g>
<!-- n4 -->
<g id="node14" class="node">
<title>n4</title>
<polygon fill="deepskyblue" stroke="black" points="1031,-900 924.26,-882 1031,-864 1137.74,-882 1031,-900"/>
<text text-anchor="middle" x="1031" y="-878.3" font-family="Times,serif" font-size="14.00">4: SUB DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="1102,-612 1049.72,-594 1102,-576 1154.28,-594 1102,-612"/>
<text text-anchor="middle" x="1102" y="-590.3" font-family="Times,serif" font-size="14.00">4: SUB</text>
</g>
<!-- c4&#45;&gt;n4 -->
<g id="edge5" class="edge">
<title>c4&#45;&gt;n4</title>
<path fill="none" stroke="blue" d="M1030.25,-935.7C1030.36,-927.98 1030.49,-918.71 1030.61,-910.11"/>
<polygon fill="blue" stroke="blue" points="1034.11,-910.15 1030.76,-900.1 1027.11,-910.05 1034.11,-910.15"/>
<path fill="none" stroke="blue" d="M1016.31,-719.85C1026.42,-701.62 1043.36,-672.13 1060,-648 1067.42,-637.23 1076.34,-625.81 1084.04,-616.33"/>
<polygon fill="blue" stroke="blue" points="1086.77,-618.51 1090.43,-608.56 1081.37,-614.06 1086.77,-618.51"/>
</g>
<!-- c3 -->
<g id="node7" class="node">
<title>c3</title>
<ellipse fill="yellow" stroke="black" cx="473" cy="-162" rx="90.98" ry="18"/>
<text text-anchor="middle" x="473" y="-158.3" font-family="Times,serif" font-size="14.00">C3: CONST BOOL(1)</text>
<ellipse fill="yellow" stroke="black" cx="742" cy="-306" rx="90.98" ry="18"/>
<text text-anchor="middle" x="742" y="-302.3" font-family="Times,serif" font-size="14.00">C3: CONST BOOL(1)</text>
</g>
<!-- c2 -->
<g id="node8" class="node">
<title>c2</title>
<ellipse fill="yellow" stroke="black" cx="416" cy="-18" rx="90.98" ry="18"/>
<text text-anchor="middle" x="416" y="-14.3" font-family="Times,serif" font-size="14.00">C2: CONST BOOL(0)</text>
<ellipse fill="yellow" stroke="black" cx="742" cy="-162" rx="90.98" ry="18"/>
<text text-anchor="middle" x="742" y="-158.3" font-family="Times,serif" font-size="14.00">C2: CONST BOOL(0)</text>
</g>
<!-- c1 -->
<g id="node9" class="node">
<title>c1</title>
<ellipse fill="yellow" stroke="black" cx="1287" cy="-882" rx="91.78" ry="18"/>
<text text-anchor="middle" x="1287" y="-878.3" font-family="Times,serif" font-size="14.00">C1: CONST ADDR(0)</text>
<ellipse fill="yellow" stroke="black" cx="770" cy="-810" rx="91.78" ry="18"/>
<text text-anchor="middle" x="770" y="-806.3" font-family="Times,serif" font-size="14.00">C1: CONST ADDR(0)</text>
</g>
<!-- n1 -->
<g id="node10" class="node">
<title>n1</title>
<path fill="red" stroke="black" d="M474,-1044C474,-1044 424,-1044 424,-1044 418,-1044 412,-1038 412,-1032 412,-1032 412,-1020 412,-1020 412,-1014 418,-1008 424,-1008 424,-1008 474,-1008 474,-1008 480,-1008 486,-1014 486,-1020 486,-1020 486,-1032 486,-1032 486,-1038 480,-1044 474,-1044"/>
<text text-anchor="middle" x="449" y="-1022.3" font-family="Times,serif" font-size="14.00">1: START</text>
</g>
<!-- n1&#45;&gt;n22 -->
<g id="edge1" class="edge">
<title>n1&#45;&gt;n22</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M411.87,-1010.77C304.3,-966.84 0,-822.47 0,-595 0,-595 0,-595 0,-161 0,-115.64 30.52,-70.75 52.88,-43.95"/>
<polygon fill="black" stroke="black" points="55.64,-46.09 59.51,-36.23 50.34,-41.53 55.64,-46.09"/>
</g>
<!-- n5 -->
<g id="node15" class="node">
<title>n5</title>
<polygon fill="lightcoral" stroke="black" points="439.5,-828 380.5,-828 380.5,-792 439.5,-792 439.5,-828"/>
<text text-anchor="middle" x="410" y="-806.3" font-family="Times,serif" font-size="14.00">5: END</text>
</g>
<!-- n1&#45;&gt;n5 -->
<g id="edge6" class="edge">
<title>n1&#45;&gt;n5</title>
<path fill="none" stroke="red" stroke-width="2" d="M442.11,-1007.59C438.32,-997.37 433.82,-984.12 431,-972 420.21,-925.63 414.52,-870.36 411.89,-838.12"/>
<polygon fill="red" stroke="red" stroke-width="2" points="415.38,-837.82 411.12,-828.12 408.4,-838.36 415.38,-837.82"/>
</g>
<!-- n17 -->
<g id="node30" class="node">
<title>n17</title>
<path fill="red" stroke="black" d="M295,-36C295,-36 227,-36 227,-36 221,-36 215,-30 215,-24 215,-24 215,-12 215,-12 215,-6 221,0 227,0 227,0 295,0 295,0 301,0 307,-6 307,-12 307,-12 307,-24 307,-24 307,-30 301,-36 295,-36"/>
<text text-anchor="middle" x="261" y="-14.3" font-family="Times,serif" font-size="14.00">17: RETURN</text>
</g>
<!-- n22&#45;&gt;n17 -->
<g id="edge41" class="edge">
<title>n22&#45;&gt;n17</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M122.25,-18C149.76,-18 177.28,-18 204.79,-18"/>
<polygon fill="black" stroke="black" points="204.93,-21.5 214.93,-18 204.93,-14.5 204.93,-21.5"/>
<path fill="red" stroke="black" d="M648,-828C648,-828 598,-828 598,-828 592,-828 586,-822 586,-816 586,-816 586,-804 586,-804 586,-798 592,-792 598,-792 598,-792 648,-792 648,-792 654,-792 660,-798 660,-804 660,-804 660,-816 660,-816 660,-822 654,-828 648,-828"/>
<text text-anchor="middle" x="623" y="-806.3" font-family="Times,serif" font-size="14.00">1: START</text>
</g>
<!-- n2 -->
<g id="node12" class="node">
<title>n2</title>
<ellipse fill="lightblue" stroke="black" cx="1167" cy="-738" rx="104.78" ry="18"/>
<text text-anchor="middle" x="1167" y="-734.3" font-family="Times,serif" font-size="14.00">2: PARAM DOUBLE &quot;x&quot;</text>
<ellipse fill="lightblue" stroke="black" cx="1239" cy="-738" rx="104.78" ry="18"/>
<text text-anchor="middle" x="1239" y="-734.3" font-family="Times,serif" font-size="14.00">2: PARAM DOUBLE &quot;x&quot;</text>
</g>
<!-- n2&#45;&gt;n1 -->
<!-- n1&#45;&gt;n2 -->
<g id="edge2" class="edge">
<title>n2&#45;&gt;n1</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M1168.33,-756.3C1171.68,-805.07 1178.15,-942.02 1148,-972 1101.91,-1017.83 646.01,-1024.08 496.33,-1024.89"/>
<polygon fill="black" stroke="black" points="496.08,-1021.39 486.09,-1024.94 496.11,-1028.39 496.08,-1021.39"/>
</g>
<!-- n28 -->
<g id="node19" class="node">
<title>n28</title>
<polygon fill="deepskyblue" stroke="black" points="839,-540 724.21,-522 839,-504 953.79,-522 839,-540"/>
<text text-anchor="middle" x="839" y="-518.3" font-family="Times,serif" font-size="14.00">28: ADD DOUBLE</text>
</g>
<!-- n2&#45;&gt;n28 -->
<g id="edge52" class="edge">
<title>n2&#45;&gt;n28</title>
<path fill="none" stroke="blue" d="M1149.09,-720.14C1114.99,-688.68 1037.48,-620.24 963,-576 937.5,-560.85 906.87,-547.72 882.44,-538.31"/>
<polygon fill="blue" stroke="blue" points="883.65,-535.03 873.06,-534.77 881.18,-541.58 883.65,-535.03"/>
<title>n1&#45;&gt;n2</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M670.06,-792.13C869.38,-749.32 926.26,-778.64 1125,-756 1138.02,-754.52 1151.84,-752.68 1165.2,-750.77"/>
<polygon fill="black" stroke="black" points="669.17,-788.75 660.15,-794.3 670.66,-795.58 669.17,-788.75"/>
</g>
<!-- n3 -->
<g id="node13" class="node">
<title>n3</title>
<ellipse fill="lightblue" stroke="black" cx="797" cy="-954" rx="104.78" ry="18"/>
<text text-anchor="middle" x="797" y="-950.3" font-family="Times,serif" font-size="14.00">3: PARAM DOUBLE &quot;y&quot;</text>
<ellipse fill="lightblue" stroke="black" cx="775" cy="-738" rx="104.78" ry="18"/>
<text text-anchor="middle" x="775" y="-734.3" font-family="Times,serif" font-size="14.00">3: PARAM DOUBLE &quot;y&quot;</text>
</g>
<!-- n3&#45;&gt;n1 -->
<!-- n1&#45;&gt;n3 -->
<g id="edge3" class="edge">
<title>n3&#45;&gt;n1</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M731.67,-968.14C663.17,-981.92 557.19,-1003.24 496.34,-1015.48"/>
<polygon fill="black" stroke="black" points="495.36,-1012.11 486.24,-1017.51 496.74,-1018.97 495.36,-1012.11"/>
<title>n1&#45;&gt;n3</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M669.35,-787.65C692.19,-777.14 719.26,-764.67 740.28,-754.99"/>
<polygon fill="black" stroke="black" points="667.8,-784.51 660.18,-791.88 670.73,-790.87 667.8,-784.51"/>
</g>
<!-- n5 -->
<g id="node15" class="node">
<title>n5</title>
<polygon fill="lightcoral" stroke="black" points="652.5,-756 593.5,-756 593.5,-720 652.5,-720 652.5,-756"/>
<text text-anchor="middle" x="623" y="-734.3" font-family="Times,serif" font-size="14.00">5: END</text>
</g>
<!-- n1&#45;&gt;n5 -->
<g id="edge6" class="edge">
<title>n1&#45;&gt;n5</title>
<path fill="none" stroke="red" stroke-width="2" d="M623,-791.7C623,-783.98 623,-774.71 623,-766.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="626.5,-766.1 623,-756.1 619.5,-766.1 626.5,-766.1"/>
</g>
<!-- n22&#45;&gt;n1 -->
<g id="edge1" class="edge">
<title>n22&#45;&gt;n1</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M133.82,-44.51C112.66,-71.52 84,-116.35 84,-161 84,-667 84,-667 84,-667 84,-771.03 464.18,-800.48 585.95,-807.24"/>
<polygon fill="black" stroke="black" points="136.82,-46.36 140.38,-36.38 131.37,-41.96 136.82,-46.36"/>
</g>
<!-- n28 -->
<g id="node19" class="node">
<title>n28</title>
<polygon fill="deepskyblue" stroke="black" points="1042,-396 981.17,-378 1042,-360 1102.83,-378 1042,-396"/>
<text text-anchor="middle" x="1042" y="-374.3" font-family="Times,serif" font-size="14.00">28: ADD</text>
</g>
<!-- n2&#45;&gt;n28 -->
<g id="edge52" class="edge">
<title>n2&#45;&gt;n28</title>
<path fill="none" stroke="blue" d="M1244,-719.8C1257.55,-669.29 1289.51,-519.41 1220,-432 1193.38,-398.52 1146.56,-385.51 1107.61,-380.74"/>
<polygon fill="blue" stroke="blue" points="1107.7,-377.23 1097.38,-379.65 1106.96,-384.19 1107.7,-377.23"/>
</g>
<!-- n3&#45;&gt;n4 -->
<g id="edge4" class="edge">
<title>n3&#45;&gt;n4</title>
<path fill="none" stroke="blue" d="M846.91,-938.07C887.75,-925.85 945.05,-908.71 984.83,-896.81"/>
<polygon fill="blue" stroke="blue" points="985.97,-900.12 994.54,-893.91 983.96,-893.42 985.97,-900.12"/>
<path fill="none" stroke="blue" d="M825.26,-722.07C856.19,-712.36 896.41,-698.78 931,-684 983.33,-661.65 1041.57,-629.73 1074.8,-610.81"/>
<polygon fill="blue" stroke="blue" points="1076.54,-613.85 1083.48,-605.84 1073.06,-607.77 1076.54,-613.85"/>
</g>
<!-- n26 -->
<g id="node21" class="node">
<title>n26</title>
<polygon fill="deepskyblue" stroke="black" points="629,-828 514.21,-810 629,-792 743.79,-810 629,-828"/>
<text text-anchor="middle" x="629" y="-806.3" font-family="Times,serif" font-size="14.00">26: ADD DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="717,-396 656.17,-378 717,-360 777.83,-378 717,-396"/>
<text text-anchor="middle" x="717" y="-374.3" font-family="Times,serif" font-size="14.00">26: ADD</text>
</g>
<!-- n4&#45;&gt;n26 -->
<g id="edge48" class="edge">
<title>n4&#45;&gt;n26</title>
<path fill="none" stroke="blue" d="M981.3,-872.35C907.77,-859.54 770.12,-835.57 690.39,-821.69"/>
<polygon fill="blue" stroke="blue" points="690.94,-818.23 680.49,-819.97 689.74,-825.13 690.94,-818.23"/>
<path fill="none" stroke="blue" d="M1132.76,-586.37C1157.06,-579.34 1189.39,-565.58 1205,-540 1214.81,-523.92 1216.97,-448.02 1202,-432 1187.49,-416.48 897.89,-392.74 773.25,-383.19"/>
<polygon fill="blue" stroke="blue" points="773.38,-379.69 763.14,-382.42 772.85,-386.67 773.38,-379.69"/>
</g>
<!-- n6 -->
<g id="node16" class="node">
<title>n6</title>
<polygon fill="lightcoral" stroke="black" points="450,-252 336,-252 336,-216 450,-216 450,-252"/>
<text text-anchor="middle" x="393" y="-230.3" font-family="Times,serif" font-size="14.00">6: LOOP_BEGIN</text>
<polygon fill="lightcoral" stroke="black" points="680,-684 566,-684 566,-648 680,-648 680,-684"/>
<text text-anchor="middle" x="623" y="-662.3" font-family="Times,serif" font-size="14.00">6: LOOP_BEGIN</text>
</g>
<!-- n5&#45;&gt;n6 -->
<g id="edge7" class="edge">
<title>n5&#45;&gt;n6</title>
<path fill="none" stroke="red" stroke-width="2" d="M410.4,-791.95C410.98,-765.29 412,-712.12 412,-667 412,-667 412,-667 412,-377 412,-336.86 404.45,-290.9 398.87,-262.4"/>
<polygon fill="red" stroke="red" stroke-width="2" points="402.26,-261.5 396.84,-252.39 395.39,-262.88 402.26,-261.5"/>
</g>
<!-- n15 -->
<g id="node28" class="node">
<title>n15</title>
<polygon fill="lightcoral" stroke="black" points="364,-180 310,-180 310,-144 364,-144 364,-180"/>
<text text-anchor="middle" x="337" y="-158.3" font-family="Times,serif" font-size="14.00">15: IF</text>
</g>
<!-- n6&#45;&gt;n15 -->
<g id="edge28" class="edge">
<title>n6&#45;&gt;n15</title>
<path fill="none" stroke="red" stroke-width="2" d="M379.16,-215.7C372.51,-207.39 364.42,-197.28 357.11,-188.14"/>
<polygon fill="red" stroke="red" stroke-width="2" points="359.66,-185.73 350.68,-180.1 354.2,-190.1 359.66,-185.73"/>
<path fill="none" stroke="red" stroke-width="2" d="M623,-719.7C623,-711.98 623,-702.71 623,-694.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="626.5,-694.1 623,-684.1 619.5,-694.1 626.5,-694.1"/>
</g>
<!-- n29 -->
<g id="node17" class="node">
<title>n29</title>
<polygon fill="lightcoral" stroke="black" points="345.5,-324 238.5,-324 238.5,-288 345.5,-288 345.5,-324"/>
<text text-anchor="middle" x="292" y="-302.3" font-family="Times,serif" font-size="14.00">29: LOOP_END</text>
<polygon fill="lightcoral" stroke="black" points="400.5,-36 293.5,-36 293.5,0 400.5,0 400.5,-36"/>
<text text-anchor="middle" x="347" y="-14.3" font-family="Times,serif" font-size="14.00">29: LOOP_END</text>
</g>
<!-- n29&#45;&gt;n6 -->
<!-- n6&#45;&gt;n29 -->
<g id="edge8" class="edge">
<title>n29&#45;&gt;n6</title>
<path fill="none" stroke="red" stroke-width="2" d="M316.71,-287.88C329.67,-278.89 345.73,-267.76 359.77,-258.03"/>
<polygon fill="red" stroke="red" stroke-width="2" points="361.97,-260.76 368.2,-252.19 357.98,-255.01 361.97,-260.76"/>
<title>n6&#45;&gt;n29</title>
<path fill="none" stroke="red" stroke-width="2" d="M623,-637.92C623,-609.35 623,-563 623,-523 623,-523 623,-523 623,-161 623,-61.98 480.81,-31.95 400.54,-22.89"/>
<polygon fill="red" stroke="red" stroke-width="2" points="619.5,-637.95 623,-647.95 626.5,-637.95 619.5,-637.95"/>
</g>
<!-- n7&#45;&gt;n6 -->
<!-- n6&#45;&gt;n7 -->
<g id="edge9" class="edge">
<title>n7&#45;&gt;n6</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M730.58,-434.56C678.47,-413.69 581.99,-372.26 507,-324 486.04,-310.51 483.55,-303.46 464,-288 451.35,-278 437.16,-267.3 424.81,-258.16"/>
<polygon fill="black" stroke="black" points="426.72,-255.22 416.59,-252.1 422.57,-260.85 426.72,-255.22"/>
<title>n6&#45;&gt;n7</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M690.09,-647.08C736.23,-634.75 796.38,-618.68 837.58,-607.67"/>
<polygon fill="black" stroke="black" points="688.93,-643.76 680.17,-649.72 690.74,-650.52 688.93,-643.76"/>
</g>
<!-- n6&#45;&gt;n8 -->
<g id="edge12" class="edge">
<title>n6&#45;&gt;n8</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M655.66,-642.14C670.08,-632.04 686.7,-620.41 699.82,-611.23"/>
<polygon fill="black" stroke="black" points="653.65,-639.27 647.46,-647.88 657.66,-645.01 653.65,-639.27"/>
</g>
<!-- n6&#45;&gt;n9 -->
<g id="edge15" class="edge">
<title>n6&#45;&gt;n9</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M555.74,-647.88C442.49,-626.15 410.34,-634.58 301,-612 292.69,-610.28 283.85,-608.09 275.53,-605.85"/>
<polygon fill="black" stroke="black" points="555.37,-651.38 565.85,-649.86 556.71,-644.51 555.37,-651.38"/>
</g>
<!-- n15 -->
<g id="node28" class="node">
<title>n15</title>
<polygon fill="lightcoral" stroke="black" points="342,-324 288,-324 288,-288 342,-288 342,-324"/>
<text text-anchor="middle" x="315" y="-302.3" font-family="Times,serif" font-size="14.00">15: IF</text>
</g>
<!-- n6&#45;&gt;n15 -->
<g id="edge28" class="edge">
<title>n6&#45;&gt;n15</title>
<path fill="none" stroke="red" stroke-width="2" d="M565.84,-649.93C562.85,-649.25 559.9,-648.61 557,-648 507.86,-637.73 370.38,-646.59 334,-612 304.69,-584.13 315,-563.45 315,-523 315,-523 315,-523 315,-449 315,-409 315,-362.65 315,-334.08"/>
<polygon fill="red" stroke="red" stroke-width="2" points="318.5,-334.05 315,-324.05 311.5,-334.05 318.5,-334.05"/>
</g>
<!-- n7&#45;&gt;n28 -->
<g id="edge11" class="edge">
<title>n7&#45;&gt;n28</title>
<path fill="none" stroke="blue" d="M955.73,-581.46C980.69,-573.81 1006.59,-561.11 1023,-540 1056.51,-496.89 1050.14,-426.66 1045.09,-395.17"/>
<polygon fill="blue" stroke="blue" points="954.54,-578.16 945.87,-584.24 956.44,-584.9 954.54,-578.16"/>
</g>
<!-- n12 -->
<g id="node25" class="node">
<title>n12</title>
<polygon fill="deepskyblue" stroke="black" points="851,-396 735.37,-378 851,-360 966.63,-378 851,-396"/>
<text text-anchor="middle" x="851" y="-374.3" font-family="Times,serif" font-size="14.00">12: MUL DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="951,-540 888.49,-522 951,-504 1013.51,-522 951,-540"/>
<text text-anchor="middle" x="951" y="-518.3" font-family="Times,serif" font-size="14.00">12: MUL</text>
</g>
<!-- n7&#45;&gt;n12 -->
<g id="edge22" class="edge">
<title>n7&#45;&gt;n12</title>
<path fill="none" stroke="blue" d="M782.21,-432.05C792.99,-422.07 807.94,-409.38 821.22,-398.92"/>
<polygon fill="blue" stroke="blue" points="823.45,-401.62 829.22,-392.74 819.17,-396.08 823.45,-401.62"/>
<path fill="none" stroke="blue" d="M895.1,-576.05C903.68,-565.8 915.97,-552.69 926.93,-542.07"/>
<polygon fill="blue" stroke="blue" points="929.37,-544.59 934.25,-535.18 924.57,-539.49 929.37,-544.59"/>
</g>
<!-- n7&#45;&gt;n12 -->
<g id="edge23" class="edge">
<title>n7&#45;&gt;n12</title>
<path fill="none" stroke="blue" d="M793.05,-432.76C805.32,-423.31 819.77,-411.27 831.25,-400.98"/>
<polygon fill="blue" stroke="blue" points="833.66,-403.52 838.67,-394.19 828.93,-398.36 833.66,-403.52"/>
<path fill="none" stroke="blue" d="M906.11,-576.76C915.93,-567.46 927.25,-555.64 936.18,-545.46"/>
<polygon fill="blue" stroke="blue" points="938.94,-547.61 942.74,-537.72 933.6,-543.08 938.94,-547.61"/>
</g>
<!-- n24 -->
<g id="node36" class="node">
<title>n24</title>
<polygon fill="deepskyblue" stroke="black" points="828,-684 712.37,-666 828,-648 943.63,-666 828,-684"/>
<text text-anchor="middle" x="828" y="-662.3" font-family="Times,serif" font-size="14.00">24: MUL DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="1133,-540 1070.49,-522 1133,-504 1195.51,-522 1133,-540"/>
<text text-anchor="middle" x="1133" y="-518.3" font-family="Times,serif" font-size="14.00">24: MUL</text>
</g>
<!-- n7&#45;&gt;n24 -->
<g id="edge43" class="edge">
<title>n7&#45;&gt;n24</title>
<path fill="none" stroke="blue" d="M744.91,-467.08C733.6,-476.4 721.13,-489.21 715,-504 696.63,-548.35 689.25,-571.49 715,-612 727.5,-631.67 749.43,-644.16 770.67,-652.04"/>
<polygon fill="blue" stroke="blue" points="769.75,-655.43 780.35,-655.35 772.02,-648.8 769.75,-655.43"/>
<path fill="none" stroke="blue" d="M930.78,-580.08C977.39,-566.92 1048.93,-546.73 1093.24,-534.22"/>
<polygon fill="blue" stroke="blue" points="1094.4,-537.53 1103.08,-531.45 1092.5,-530.79 1094.4,-537.53"/>
</g>
<!-- n28&#45;&gt;n7 -->
<g id="edge11" class="edge">
<title>n28&#45;&gt;n7</title>
<path fill="none" stroke="blue" d="M823.94,-506.15C814.71,-497.05 802.67,-485.18 792.13,-474.79"/>
<polygon fill="blue" stroke="blue" points="794.35,-472.07 784.78,-467.54 789.44,-477.05 794.35,-472.07"/>
</g>
<!-- n8&#45;&gt;n6 -->
<g id="edge12" class="edge">
<title>n8&#45;&gt;n6</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M522.82,-720.5C495.47,-696.16 450,-647.75 450,-595 450,-595 450,-595 450,-377 450,-336.03 442.34,-325.57 426,-288 422,-278.8 416.58,-269.33 411.29,-260.98"/>
<polygon fill="black" stroke="black" points="414.09,-258.87 405.67,-252.43 408.24,-262.71 414.09,-258.87"/>
<!-- n8&#45;&gt;n26 -->
<g id="edge14" class="edge">
<title>n8&#45;&gt;n26</title>
<path fill="none" stroke="blue" d="M722.23,-565.69C720.98,-520.83 718.51,-432.85 717.47,-395.94"/>
<polygon fill="blue" stroke="blue" points="718.74,-565.95 722.52,-575.85 725.74,-565.76 718.74,-565.95"/>
</g>
<!-- n11 -->
<g id="node24" class="node">
<title>n11</title>
<polygon fill="deepskyblue" stroke="black" points="556,-972 440.37,-954 556,-936 671.63,-954 556,-972"/>
<text text-anchor="middle" x="556" y="-950.3" font-family="Times,serif" font-size="14.00">11: MUL DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="808,-540 745.49,-522 808,-504 870.51,-522 808,-540"/>
<text text-anchor="middle" x="808" y="-518.3" font-family="Times,serif" font-size="14.00">11: MUL</text>
</g>
<!-- n8&#45;&gt;n11 -->
<g id="edge20" class="edge">
<title>n8&#45;&gt;n11</title>
<path fill="none" stroke="blue" d="M519.45,-755.15C509.93,-764.95 500.43,-778.2 496,-792 481.31,-837.71 480.8,-855.57 499,-900 504.12,-912.51 513.57,-923.97 523.43,-933"/>
<polygon fill="blue" stroke="blue" points="521.46,-935.92 531.36,-939.7 525.98,-930.57 521.46,-935.92"/>
<path fill="none" stroke="blue" d="M737.7,-576.05C749.62,-565.3 766.46,-551.41 780.76,-540.54"/>
<polygon fill="blue" stroke="blue" points="782.9,-543.31 788.83,-534.54 778.72,-537.7 782.9,-543.31"/>
</g>
<!-- n8&#45;&gt;n11 -->
<g id="edge21" class="edge">
<title>n8&#45;&gt;n11</title>
<path fill="none" stroke="blue" d="M534.51,-756.08C527.35,-765.78 518.3,-778.63 514,-792 499.31,-837.71 498.8,-855.57 517,-900 521.61,-911.26 529.73,-921.66 537.48,-930.22"/>
<polygon fill="blue" stroke="blue" points="534.98,-932.67 544.39,-937.53 540.07,-927.86 534.98,-932.67"/>
<path fill="none" stroke="blue" d="M748.05,-577.12C761.12,-567.28 776.75,-554.55 788.86,-543.9"/>
<polygon fill="blue" stroke="blue" points="791.52,-546.22 796.61,-536.93 786.83,-541.02 791.52,-546.22"/>
</g>
<!-- n8&#45;&gt;n24 -->
<g id="edge44" class="edge">
<title>n8&#45;&gt;n24</title>
<path fill="none" stroke="blue" d="M592.64,-724.81C643.88,-712.22 723.5,-692.67 775.69,-679.85"/>
<polygon fill="blue" stroke="blue" points="776.55,-683.24 785.43,-677.46 774.88,-676.44 776.55,-683.24"/>
<path fill="none" stroke="blue" d="M775.65,-581.57C785.07,-579.64 794.82,-577.7 804,-576 856.88,-566.2 1006.45,-542.68 1084.4,-530.54"/>
<polygon fill="blue" stroke="blue" points="1085.11,-533.97 1094.45,-528.98 1084.03,-527.06 1085.11,-533.97"/>
</g>
<!-- n26&#45;&gt;n8 -->
<g id="edge14" class="edge">
<title>n26&#45;&gt;n8</title>
<path fill="none" stroke="blue" d="M611.18,-794.5C599.61,-785.08 584.28,-772.6 571.09,-761.87"/>
<polygon fill="blue" stroke="blue" points="573.17,-759.05 563.21,-755.45 568.75,-764.48 573.17,-759.05"/>
</g>
<!-- n9&#45;&gt;n6 -->
<g id="edge15" class="edge">
<title>n9&#45;&gt;n6</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M295.48,-647.9C298.71,-637.55 302.79,-624.08 306,-612 340.62,-481.87 374.37,-324.37 387.38,-262.16"/>
<polygon fill="black" stroke="black" points="390.88,-262.51 389.5,-252.01 384.03,-261.08 390.88,-262.51"/>
<!-- n9&#45;&gt;n10 -->
<g id="edge17" class="edge">
<title>n9&#45;&gt;n10</title>
<path fill="none" stroke="blue" d="M227.46,-566.28C225.39,-557.2 223.81,-547.33 223.22,-539.31"/>
<polygon fill="blue" stroke="blue" points="224.09,-567.24 229.97,-576.05 230.87,-565.5 224.09,-567.24"/>
</g>
<!-- n9&#45;&gt;n10 -->
<g id="edge18" class="edge">
<title>n9&#45;&gt;n10</title>
<path fill="none" stroke="blue" d="M268.26,-649.81C257.13,-640.36 243.88,-628.04 233.41,-617.48"/>
<polygon fill="blue" stroke="blue" points="235.81,-614.93 226.35,-610.16 230.78,-619.79 235.81,-614.93"/>
<path fill="none" stroke="blue" d="M241.7,-575.7C241,-567.22 239.27,-556.88 237.05,-547.6"/>
<polygon fill="blue" stroke="blue" points="240.37,-546.47 234.36,-537.74 233.61,-548.31 240.37,-546.47"/>
</g>
<!-- n10&#45;&gt;n9 -->
<g id="edge17" class="edge">
<title>n10&#45;&gt;n9</title>
<path fill="none" stroke="blue" d="M235.1,-607.97C246.24,-617.24 260.06,-629.98 271.14,-641.06"/>
<polygon fill="blue" stroke="blue" points="268.82,-643.7 278.3,-648.41 273.83,-638.81 268.82,-643.7"/>
<!-- n17 -->
<g id="node30" class="node">
<title>n17</title>
<path fill="red" stroke="black" d="M80,-36C80,-36 12,-36 12,-36 6,-36 0,-30 0,-24 0,-24 0,-12 0,-12 0,-6 6,0 12,0 12,0 80,0 80,0 86,0 92,-6 92,-12 92,-12 92,-24 92,-24 92,-30 86,-36 80,-36"/>
<text text-anchor="middle" x="46" y="-14.3" font-family="Times,serif" font-size="14.00">17: RETURN</text>
</g>
<!-- n10&#45;&gt;n17 -->
<g id="edge32" class="edge">
<title>n10&#45;&gt;n17</title>
<path fill="none" stroke="blue" d="M186.96,-582.46C166.17,-573.71 138.68,-559.54 120,-540 89.51,-508.1 76,-495.13 76,-451 76,-451 76,-451 76,-305 76,-193.99 89.52,-152.47 166,-72 177.96,-59.42 193.58,-49.04 208.69,-40.9"/>
<polygon fill="blue" stroke="blue" points="210.69,-43.8 217.99,-36.12 207.5,-37.58 210.69,-43.8"/>
<path fill="none" stroke="blue" d="M220.42,-505.43C194.79,-433.96 88.31,-136.99 55.6,-45.77"/>
<polygon fill="blue" stroke="blue" points="58.82,-44.4 52.15,-36.17 52.24,-46.76 58.82,-44.4"/>
</g>
<!-- n10&#45;&gt;n19 -->
<g id="edge34" class="edge">
<title>n10&#45;&gt;n19</title>
<path fill="none" stroke="blue" d="M216,-575.7C216,-567.98 216,-558.71 216,-550.11"/>
<polygon fill="blue" stroke="blue" points="219.5,-550.1 216,-540.1 212.5,-550.1 219.5,-550.1"/>
<path fill="none" stroke="blue" d="M241.01,-508.25C283.67,-472.03 405.77,-368.34 456,-325.68"/>
<polygon fill="blue" stroke="blue" points="458.34,-328.29 463.7,-319.15 453.81,-322.95 458.34,-328.29"/>
</g>
<!-- n13 -->
<g id="node26" class="node">
<title>n13</title>
<polygon fill="deepskyblue" stroke="black" points="862,-324 747.21,-306 862,-288 976.79,-306 862,-324"/>
<text text-anchor="middle" x="862" y="-302.3" font-family="Times,serif" font-size="14.00">13: ADD DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="809,-468 748.17,-450 809,-432 869.83,-450 809,-468"/>
<text text-anchor="middle" x="809" y="-446.3" font-family="Times,serif" font-size="14.00">13: ADD</text>
</g>
<!-- n11&#45;&gt;n13 -->
<g id="edge25" class="edge">
<title>n11&#45;&gt;n13</title>
<path fill="none" stroke="blue" d="M600.81,-942.9C707.21,-918.55 968.35,-856.53 997,-828 1035.27,-789.9 1066,-649 1066,-595 1066,-595 1066,-595 1066,-449 1066,-376.04 977,-337.51 916.58,-319.76"/>
<polygon fill="blue" stroke="blue" points="917.34,-316.34 906.77,-316.98 915.44,-323.07 917.34,-316.34"/>
<path fill="none" stroke="blue" d="M808.24,-504.05C808.35,-496.35 808.49,-487.03 808.61,-478.36"/>
<polygon fill="blue" stroke="blue" points="812.11,-478.32 808.75,-468.28 805.11,-478.22 812.11,-478.32"/>
</g>
<!-- n25 -->
<g id="node37" class="node">
<title>n25</title>
<polygon fill="deepskyblue" stroke="black" points="629,-900 516.73,-882 629,-864 741.27,-882 629,-900"/>
<text text-anchor="middle" x="629" y="-878.3" font-family="Times,serif" font-size="14.00">25: SUB DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="951,-468 892.35,-450 951,-432 1009.65,-450 951,-468"/>
<text text-anchor="middle" x="951" y="-446.3" font-family="Times,serif" font-size="14.00">25: SUB</text>
</g>
<!-- n11&#45;&gt;n25 -->
<g id="edge45" class="edge">
<title>n11&#45;&gt;n25</title>
<path fill="none" stroke="blue" d="M571.48,-938.15C581.55,-928.5 594.85,-915.75 606.12,-904.94"/>
<polygon fill="blue" stroke="blue" points="608.75,-907.27 613.54,-897.82 603.9,-902.22 608.75,-907.27"/>
<path fill="none" stroke="blue" d="M830.03,-510.22C854.28,-498.35 893.42,-479.19 920.58,-465.89"/>
<polygon fill="blue" stroke="blue" points="922.2,-468.99 929.65,-461.45 919.13,-462.71 922.2,-468.99"/>
</g>
<!-- n12&#45;&gt;n13 -->
<g id="edge24" class="edge">
<title>n12&#45;&gt;n13</title>
<path fill="none" stroke="blue" d="M853.66,-360.05C854.91,-352.14 856.42,-342.54 857.81,-333.69"/>
<polygon fill="blue" stroke="blue" points="861.27,-334.21 859.36,-323.79 854.35,-333.12 861.27,-334.21"/>
<path fill="none" stroke="blue" d="M929.12,-510.22C905.18,-498.41 866.63,-479.41 839.68,-466.12"/>
<polygon fill="blue" stroke="blue" points="841.19,-462.96 830.67,-461.68 838.09,-469.24 841.19,-462.96"/>
</g>
<!-- n12&#45;&gt;n25 -->
<g id="edge46" class="edge">
<title>n12&#45;&gt;n25</title>
<path fill="none" stroke="blue" d="M870.37,-393.38C896.85,-414.33 943.3,-456.02 963,-504 1031.64,-671.18 986.18,-817.32 977,-828 959.76,-848.06 806.69,-865.23 709.38,-874.24"/>
<polygon fill="blue" stroke="blue" points="708.91,-870.77 699.27,-875.17 709.55,-877.74 708.91,-870.77"/>
<path fill="none" stroke="blue" d="M951,-503.7C951,-495.98 951,-486.71 951,-478.11"/>
<polygon fill="blue" stroke="blue" points="954.5,-478.1 951,-468.1 947.5,-478.1 954.5,-478.1"/>
</g>
<!-- n13&#45;&gt;n14 -->
<g id="edge26" class="edge">
<title>n13&#45;&gt;n14</title>
<path fill="none" stroke="blue" d="M824.13,-293.91C781.42,-281.4 712.07,-261.09 667,-247.89"/>
<polygon fill="blue" stroke="blue" points="667.79,-244.47 657.21,-245.02 665.82,-251.19 667.79,-244.47"/>
<path fill="none" stroke="blue" d="M775.24,-441.84C714.11,-428.87 585.37,-401.56 519.58,-387.61"/>
<polygon fill="blue" stroke="blue" points="520.09,-384.14 509.58,-385.49 518.63,-390.99 520.09,-384.14"/>
</g>
<!-- n14&#45;&gt;n15 -->
<g id="edge29" class="edge">
<title>n14&#45;&gt;n15</title>
<path fill="none" stroke="blue" d="M573.71,-226.02C524.82,-218.33 447.87,-204.17 374.15,-179.99"/>
<polygon fill="blue" stroke="blue" points="374.84,-176.53 364.25,-176.67 372.62,-183.16 374.84,-176.53"/>
<path fill="none" stroke="blue" d="M456.88,-367.56C429.94,-356.06 384.04,-336.47 351.76,-322.69"/>
<polygon fill="blue" stroke="blue" points="352.78,-319.32 342.21,-318.62 350.04,-325.76 352.78,-319.32"/>
</g>
<!-- n16 -->
<g id="node29" class="node">
<title>n16</title>
<polygon fill="lightcoral" stroke="black" points="383,-108 291,-108 291,-72 383,-72 383,-108"/>
<text text-anchor="middle" x="337" y="-86.3" font-family="Times,serif" font-size="14.00">16: IF_TRUE</text>
<polygon fill="lightcoral" stroke="black" points="242,-252 150,-252 150,-216 242,-216 242,-252"/>
<text text-anchor="middle" x="196" y="-230.3" font-family="Times,serif" font-size="14.00">16: IF_TRUE</text>
</g>
<!-- n15&#45;&gt;n16 -->
<g id="edge30" class="edge">
<title>n15&#45;&gt;n16</title>
<path fill="none" stroke="red" stroke-width="2" d="M337,-143.7C337,-135.98 337,-126.71 337,-118.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="340.5,-118.1 337,-108.1 333.5,-118.1 340.5,-118.1"/>
<path fill="none" stroke="red" stroke-width="2" d="M288,-289.12C272,-279.7 251.47,-267.63 233.87,-257.28"/>
<polygon fill="red" stroke="red" stroke-width="2" points="235.37,-254.1 224.98,-252.04 231.82,-260.13 235.37,-254.1"/>
</g>
<!-- n18 -->
<g id="node31" class="node">
<title>n18</title>
<polygon fill="lightcoral" stroke="black" points="273,-108 175,-108 175,-72 273,-72 273,-108"/>
<text text-anchor="middle" x="224" y="-86.3" font-family="Times,serif" font-size="14.00">18: IF_FALSE</text>
<polygon fill="lightcoral" stroke="black" points="396,-252 298,-252 298,-216 396,-216 396,-252"/>
<text text-anchor="middle" x="347" y="-230.3" font-family="Times,serif" font-size="14.00">18: IF_FALSE</text>
</g>
<!-- n15&#45;&gt;n18 -->
<g id="edge33" class="edge">
<title>n15&#45;&gt;n18</title>
<path fill="none" stroke="red" stroke-width="2" d="M309.93,-144.23C295.06,-135.02 276.41,-123.47 260.29,-113.48"/>
<polygon fill="red" stroke="red" stroke-width="2" points="261.97,-110.41 251.63,-108.12 258.29,-116.36 261.97,-110.41"/>
<path fill="none" stroke="red" stroke-width="2" d="M322.91,-287.7C326.55,-279.73 330.95,-270.1 334.99,-261.26"/>
<polygon fill="red" stroke="red" stroke-width="2" points="338.21,-262.65 339.18,-252.1 331.84,-259.74 338.21,-262.65"/>
</g>
<!-- n16&#45;&gt;n17 -->
<g id="edge31" class="edge">
<title>n16&#45;&gt;n17</title>
<path fill="none" stroke="red" stroke-width="2" d="M318.21,-71.7C308.83,-63.05 297.32,-52.45 287.09,-43.03"/>
<polygon fill="red" stroke="red" stroke-width="2" points="289.3,-40.3 279.57,-36.1 284.55,-45.45 289.3,-40.3"/>
<path fill="none" stroke="red" stroke-width="2" d="M183.98,-215.85C157.65,-178.28 94.77,-88.58 63.82,-44.43"/>
<polygon fill="red" stroke="red" stroke-width="2" points="66.68,-42.41 58.08,-36.23 60.95,-46.43 66.68,-42.41"/>
</g>
<!-- n17&#45;&gt;n22 -->
<g id="edge41" class="edge">
<title>n17&#45;&gt;n22</title>
<path fill="none" stroke="black" stroke-dasharray="5,2" d="M102.46,-18C104.9,-18 107.35,-18 109.8,-18"/>
<polygon fill="black" stroke="black" points="102.41,-14.5 92.41,-18 102.41,-21.5 102.41,-14.5"/>
</g>
<!-- n20 -->
<g id="node33" class="node">
<title>n20</title>
<polygon fill="lightcoral" stroke="black" points="237,-468 183,-468 183,-432 237,-432 237,-468"/>
<text text-anchor="middle" x="210" y="-446.3" font-family="Times,serif" font-size="14.00">20: IF</text>
<polygon fill="lightcoral" stroke="black" points="374,-180 320,-180 320,-144 374,-144 374,-180"/>
<text text-anchor="middle" x="347" y="-158.3" font-family="Times,serif" font-size="14.00">20: IF</text>
</g>
<!-- n18&#45;&gt;n20 -->
<g id="edge36" class="edge">
<title>n18&#45;&gt;n20</title>
<path fill="none" stroke="red" stroke-width="2" d="M223.33,-108.09C221.09,-165.38 213.84,-350.9 211.08,-421.44"/>
<polygon fill="red" stroke="red" stroke-width="2" points="207.57,-421.6 210.68,-431.73 214.56,-421.88 207.57,-421.6"/>
<path fill="none" stroke="red" stroke-width="2" d="M347,-215.7C347,-207.98 347,-198.71 347,-190.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="350.5,-190.1 347,-180.1 343.5,-190.1 350.5,-190.1"/>
</g>
<!-- n19&#45;&gt;n20 -->
<g id="edge37" class="edge">
<title>n19&#45;&gt;n20</title>
<path fill="none" stroke="blue" d="M214.55,-504.05C213.89,-496.35 213.09,-487.03 212.35,-478.36"/>
<polygon fill="blue" stroke="blue" points="215.82,-477.94 211.48,-468.28 208.85,-478.54 215.82,-477.94"/>
<path fill="none" stroke="blue" d="M467.69,-291.22C454.05,-273.28 428.92,-241.24 405,-216 395.6,-206.08 384.67,-195.8 374.85,-186.97"/>
<polygon fill="blue" stroke="blue" points="377.06,-184.26 367.26,-180.23 372.41,-189.49 377.06,-184.26"/>
</g>
<!-- n21 -->
<g id="node34" class="node">
<title>n21</title>
<polygon fill="lightcoral" stroke="black" points="196,-252 104,-252 104,-216 196,-216 196,-252"/>
<text text-anchor="middle" x="150" y="-230.3" font-family="Times,serif" font-size="14.00">21: IF_TRUE</text>
<polygon fill="lightcoral" stroke="black" points="279,-108 187,-108 187,-72 279,-72 279,-108"/>
<text text-anchor="middle" x="233" y="-86.3" font-family="Times,serif" font-size="14.00">21: IF_TRUE</text>
</g>
<!-- n20&#45;&gt;n21 -->
<g id="edge38" class="edge">
<title>n20&#45;&gt;n21</title>
<path fill="none" stroke="red" stroke-width="2" d="M205.19,-431.85C194.79,-394.75 170.13,-306.81 157.6,-262.1"/>
<polygon fill="red" stroke="red" stroke-width="2" points="160.9,-260.92 154.83,-252.23 154.16,-262.81 160.9,-260.92"/>
<path fill="none" stroke="red" stroke-width="2" d="M319.98,-144.41C304.98,-135.2 286.11,-123.61 269.78,-113.59"/>
<polygon fill="red" stroke="red" stroke-width="2" points="271.37,-110.45 261.01,-108.2 267.7,-116.42 271.37,-110.45"/>
</g>
<!-- n23 -->
<g id="node35" class="node">
<title>n23</title>
<polygon fill="lightcoral" stroke="black" points="339,-396 241,-396 241,-360 339,-360 339,-396"/>
<text text-anchor="middle" x="290" y="-374.3" font-family="Times,serif" font-size="14.00">23: IF_FALSE</text>
<polygon fill="lightcoral" stroke="black" points="396,-108 298,-108 298,-72 396,-72 396,-108"/>
<text text-anchor="middle" x="347" y="-86.3" font-family="Times,serif" font-size="14.00">23: IF_FALSE</text>
</g>
<!-- n20&#45;&gt;n23 -->
<g id="edge42" class="edge">
<title>n20&#45;&gt;n23</title>
<path fill="none" stroke="red" stroke-width="2" d="M229.78,-431.7C239.75,-422.97 252.01,-412.24 262.86,-402.75"/>
<polygon fill="red" stroke="red" stroke-width="2" points="265.23,-405.32 270.45,-396.1 260.62,-400.06 265.23,-405.32"/>
<path fill="none" stroke="red" stroke-width="2" d="M347,-143.7C347,-135.98 347,-126.71 347,-118.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="350.5,-118.1 347,-108.1 343.5,-118.1 350.5,-118.1"/>
</g>
<!-- n21&#45;&gt;n22 -->
<g id="edge39" class="edge">
<title>n21&#45;&gt;n22</title>
<path fill="none" stroke="red" stroke-width="2" d="M144.07,-215.85C131.21,-178.68 100.7,-90.44 85.27,-45.82"/>
<polygon fill="red" stroke="red" stroke-width="2" points="88.53,-44.54 81.96,-36.23 81.92,-46.83 88.53,-44.54"/>
<path fill="none" stroke="red" stroke-width="2" d="M213.97,-71.7C204.46,-63.05 192.79,-52.45 182.43,-43.03"/>
<polygon fill="red" stroke="red" stroke-width="2" points="184.57,-40.24 174.81,-36.1 179.86,-45.42 184.57,-40.24"/>
</g>
<!-- n23&#45;&gt;n29 -->
<g id="edge53" class="edge">
<title>n23&#45;&gt;n29</title>
<path fill="none" stroke="red" stroke-width="2" d="M290.49,-359.7C290.71,-351.98 290.98,-342.71 291.23,-334.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="294.72,-334.2 291.51,-324.1 287.73,-334 294.72,-334.2"/>
<path fill="none" stroke="red" stroke-width="2" d="M347,-71.7C347,-63.98 347,-54.71 347,-46.11"/>
<polygon fill="red" stroke="red" stroke-width="2" points="350.5,-46.1 347,-36.1 343.5,-46.1 350.5,-46.1"/>
</g>
<!-- n27 -->
<g id="node38" class="node">
<title>n27</title>
<polygon fill="deepskyblue" stroke="black" points="839,-612 724.21,-594 839,-576 953.79,-594 839,-612"/>
<text text-anchor="middle" x="839" y="-590.3" font-family="Times,serif" font-size="14.00">27: ADD DOUBLE</text>
<polygon fill="deepskyblue" stroke="black" points="1132,-468 1071.17,-450 1132,-432 1192.83,-450 1132,-468"/>
<text text-anchor="middle" x="1132" y="-446.3" font-family="Times,serif" font-size="14.00">27: ADD</text>
</g>
<!-- n24&#45;&gt;n27 -->
<g id="edge49" class="edge">
<title>n24&#45;&gt;n27</title>
<path fill="none" stroke="blue" d="M824.77,-648.41C825.16,-640.19 826.52,-630.06 828.4,-620.85"/>
<polygon fill="blue" stroke="blue" points="831.83,-621.52 830.71,-610.99 825.02,-619.92 831.83,-621.52"/>
<path fill="none" stroke="blue" d="M1127.06,-505.46C1125.94,-497.04 1125.51,-486.4 1125.83,-476.77"/>
<polygon fill="blue" stroke="blue" points="1129.34,-476.7 1126.51,-466.49 1122.36,-476.24 1129.34,-476.7"/>
</g>
<!-- n24&#45;&gt;n27 -->
<g id="edge50" class="edge">
<title>n24&#45;&gt;n27</title>
<path fill="none" stroke="blue" d="M836.26,-649.12C838.44,-641.11 840.27,-631.19 841.34,-622.03"/>
<polygon fill="blue" stroke="blue" points="844.85,-622.06 842.22,-611.8 837.88,-621.46 844.85,-622.06"/>
<path fill="none" stroke="blue" d="M1138.5,-505.46C1139.39,-496.95 1139.5,-486.17 1138.89,-476.46"/>
<polygon fill="blue" stroke="blue" points="1142.37,-476.11 1137.94,-466.49 1135.4,-476.78 1142.37,-476.11"/>
</g>
<!-- n25&#45;&gt;n26 -->
<g id="edge47" class="edge">
<title>n25&#45;&gt;n26</title>
<path fill="none" stroke="blue" d="M629,-863.7C629,-855.98 629,-846.71 629,-838.11"/>
<polygon fill="blue" stroke="blue" points="632.5,-838.1 629,-828.1 625.5,-838.1 632.5,-838.1"/>
<path fill="none" stroke="blue" d="M922.77,-440.56C880.99,-428.06 802.55,-404.59 755.51,-390.52"/>
<polygon fill="blue" stroke="blue" points="756.28,-387.1 745.69,-387.58 754.27,-393.8 756.28,-387.1"/>
</g>
<!-- n27&#45;&gt;n28 -->
<g id="edge51" class="edge">
<title>n27&#45;&gt;n28</title>
<path fill="none" stroke="blue" d="M839,-575.7C839,-567.98 839,-558.71 839,-550.11"/>
<polygon fill="blue" stroke="blue" points="842.5,-550.1 839,-540.1 835.5,-550.1 842.5,-550.1"/>
<path fill="none" stroke="blue" d="M1115.91,-436.49C1102.09,-425.73 1081.96,-410.08 1066.19,-397.82"/>
<polygon fill="blue" stroke="blue" points="1067.99,-394.78 1057.95,-391.41 1063.7,-400.31 1067.99,-394.78"/>
</g>
</g>
</svg>

Before

Width:  |  Height:  |  Size: 28 KiB

After

Width:  |  Height:  |  Size: 27 KiB

View File

@ -54,9 +54,9 @@ void ir_dump(ir_ctx *ctx, FILE *f)
void ir_dump_dot(ir_ctx *ctx, FILE *f)
{
int DATA_WEIGHT = 1;
int CONTROL_WEIGHT = 2;
int REF_WEIGHT = 1;
int DATA_WEIGHT = 0;
int CONTROL_WEIGHT = 5;
int REF_WEIGHT = 4;
ir_ref i, j, n, ref, *p;
ir_insn *insn;
uint32_t flags;
@ -73,11 +73,11 @@ void ir_dump_dot(ir_ctx *ctx, FILE *f)
flags = ir_op_flags[insn->op];
if (flags & IR_OP_FLAG_CONTROL) {
if (insn->op == IR_START) {
fprintf(f, "\t{rank=min; n%d [label=\"%d: %s\",shape=box,style=\"rounded,filled\",fillcolor=red,rank=min];}\n", i, i, ir_op_name[insn->op]);
fprintf(f, "\t{rank=min; n%d [label=\"%d: %s\",shape=box,style=\"rounded,filled\",fillcolor=red];}\n", i, i, ir_op_name[insn->op]);
} else if (insn->op == IR_ENTRY) {
fprintf(f, "\t{n%d [label=\"%d: %s\",shape=box,style=\"rounded,filled\",fillcolor=red];}\n", i, i, ir_op_name[insn->op]);
} else if (flags & IR_OP_FLAG_TERMINATOR) {
fprintf(f, "\t{rank=max; n%d [label=\"%d: %s\",shape=box,style=\"rounded,filled\",fillcolor=red,rank=max];}\n", i, i, ir_op_name[insn->op]);
fprintf(f, "\t{rank=max; n%d [label=\"%d: %s\",shape=box,style=\"rounded,filled\",fillcolor=red];}\n", i, i, ir_op_name[insn->op]);
} else if (flags & IR_OP_FLAG_MEM) {
fprintf(f, "\tn%d [label=\"%d: %s\",shape=box,style=filled,fillcolor=pink];\n", i, i, ir_op_name[insn->op]);
} else {
@ -86,7 +86,7 @@ void ir_dump_dot(ir_ctx *ctx, FILE *f)
} else if (flags & IR_OP_FLAG_DATA) {
if (IR_OPND_KIND(flags, 1) == IR_OPND_DATA) {
/* not a leaf */
fprintf(f, "\tn%d [label=\"%d: %s %s\"", i, i, ir_op_name[insn->op], ir_type_name[insn->type]);
fprintf(f, "\tn%d [label=\"%d: %s\"", i, i, ir_op_name[insn->op]);
fprintf(f, ",shape=diamond,style=filled,fillcolor=deepskyblue];\n");
} else {
if (insn->op == IR_PARAM) {
@ -108,13 +108,17 @@ void ir_dump_dot(ir_ctx *ctx, FILE *f)
case IR_OPND_VAR:
if (IR_IS_CONST_REF(ref)) {
fprintf(f, "\tc%d -> n%d [color=blue,weight=%d];\n", -ref, i, DATA_WEIGHT);
} else if (insn->op == IR_PHI
&& ctx->ir_base[insn->op1].op == IR_LOOP_BEGIN
&& ctx->ir_base[ir_insn_op(&ctx->ir_base[insn->op1], j - 1)].op == IR_LOOP_END) {
fprintf(f, "\tn%d -> n%d [color=blue,dir=back];\n", i, ref);
} else {
fprintf(f, "\tn%d -> n%d [color=blue,weight=%d];\n", ref, i, DATA_WEIGHT);
}
break;
case IR_OPND_CONTROL:
if (insn->op == IR_LOOP_BEGIN && ctx->ir_base[ref].op == IR_LOOP_END) {
fprintf(f, "\tn%d -> n%d [style=bold,color=red,weight=%d];\n", ref, i, REF_WEIGHT);
fprintf(f, "\tn%d -> n%d [style=bold,color=red,dir=back];\n", i, ref);
} else if (insn->op == IR_ENTRY) {
fprintf(f, "\tn%d -> n%d [style=bold,color=red,style=dashed,weight=%d];\n", ref, i, CONTROL_WEIGHT);
} else {
@ -123,7 +127,7 @@ void ir_dump_dot(ir_ctx *ctx, FILE *f)
break;
case IR_OPND_CONTROL_DEP:
case IR_OPND_CONTROL_REF:
fprintf(f, "\tn%d -> n%d [style=dashed,weight=%d];\n", i, ref, REF_WEIGHT);
fprintf(f, "\tn%d -> n%d [style=dashed,dir=back,weight=%d];\n", ref, i, REF_WEIGHT);
break;
}
}