Files
2026-03-05 18:03:55 +01:00

183 lines
12 KiB
Plaintext

digraph CFG {
// Analysis: Live Variables + Reached Uses
graph [splines=ortho, overlap=false, ranksep=0.7, nodesep=0.45];
node [fontname="Helvetica"];
n1 [label="START", shape=ellipse, style=filled, color=gray];
n1 -> n3;
n3 [label="33", shape=box];
n3 -> n4;
n4 [label="s = 33", shape=box];
a4 [label="LivingVariables\nIn := []\nOut := [('', 's')]", shape=note, style="filled", fillcolor="#b2f7ec", color="#3fd1b9", fontcolor="#3fd1b9"];
a4 -> n4 [style=dotted, arrowhead=none, color="#3fd1b9"];
n4 -> n5;
n5 [label="0", shape=box];
n5 -> n6;
n6 [label="i = 0", shape=box];
a6 [label="LivingVariables\nIn := [('', 's')]\nOut := [('', 'i'), ('', 's')]", shape=note, style="filled", fillcolor="#c3b2f7", color="#633fd1", fontcolor="#633fd1"];
a6 -> n6 [style=dotted, arrowhead=none, color="#633fd1"];
n6 -> n7;
n7 [label="0", shape=box];
n7 -> n8;
n8 [label="j = 0", shape=box];
a8 [label="LivingVariables\nIn := [('', 'i'), ('', 's')]\nOut := [('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#f7b2c9", color="#d13f70", fontcolor="#d13f70"];
a8 -> n8 [style=dotted, arrowhead=none, color="#d13f70"];
n8 -> n9;
n9 [label="i", shape=box];
n9 -> n10;
n10 [label="j", shape=box];
n10 -> n11;
n11 [label="i + j", shape=box];
n11 -> n12;
n12 [label="t = (i + j)", shape=box];
a12 [label="LivingVariables\nIn := [('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#b2f7d5", color="#3fd188", fontcolor="#3fd188"];
a12 -> n12 [style=dotted, arrowhead=none, color="#3fd188"];
n12 -> n13;
n13 [label="6", shape=box];
n13 -> n14;
n14 [label="f = 6", shape=box];
a14 [label="LivingVariables\nIn := [('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#b2b8f7", color="#3f4bd1", fontcolor="#3f4bd1"];
a14 -> n14 [style=dotted, arrowhead=none, color="#3f4bd1"];
n14 -> n16;
n16 [label="s", shape=box];
n16 -> n17;
n17 [label="42", shape=box];
n17 -> n18;
n18 [label="s < 42", shape=box];
a18 [label="LivingVariables\nIn := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#f7e6b2", color="#d1ac3f", fontcolor="#d1ac3f"];
a18 -> n18 [style=dotted, arrowhead=none, color="#d1ac3f"];
n18 -> n19;
n19 [label="<?>", shape=diamond];
n19 -> n2 [label="T"];
n19 -> n21 [label="F"];
n2 [label="END", shape=ellipse, style=filled, color=gray];
n21 [label="s", shape=box];
n21 -> n22;
n22 [label="1", shape=box];
n22 -> n23;
n23 [label="s - 1", shape=box];
n23 -> n24;
n24 [label="a = (s - 1)", shape=box];
a24 [label="LivingVariables\nIn := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#f7b2f7", color="#d13fd1", fontcolor="#d13fd1"];
a24 -> n24 [style=dotted, arrowhead=none, color="#d13fd1"];
n24 -> n25;
n25 [label="i", shape=box];
n25 -> n26;
n26 [label="j", shape=box];
n26 -> n27;
n27 [label="i + j", shape=box];
n27 -> n28;
n28 [label="f", shape=box];
n28 -> n29;
n29 [label="1", shape=box];
n29 -> n30;
n30 [label="f + 1", shape=box];
n30 -> n31;
n31 [label="(i + j) * (f + 1)", shape=box];
n31 -> n32;
n32 [label="c = ((i + j) * (f + 1))", shape=box];
a32 [label="LivingVariables\nIn := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'c'), ('', 'f'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#e0b2f7", color="#a03fd1", fontcolor="#a03fd1"];
a32 -> n32 [style=dotted, arrowhead=none, color="#a03fd1"];
n32 -> n33;
n33 [label="c", shape=box];
n33 -> n34;
n34 [label="0", shape=box];
n34 -> n35;
n35 [label="c > 0", shape=box];
a35 [label="LivingVariables\nIn := [('', 'c'), ('', 'f'), ('', 'j'), ('', 's')]\nOut := [('', 'c'), ('', 'f'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#b2c1f7", color="#3f5ed1", fontcolor="#3f5ed1"];
a35 -> n35 [style=dotted, arrowhead=none, color="#3f5ed1"];
n35 -> n36;
n36 [label="<?>", shape=diamond];
n36 -> n40 [label="T"];
n36 -> n44 [label="F"];
n40 [label="j", shape=box];
n40 -> n41;
n41 [label="c", shape=box];
n41 -> n42;
n42 [label="j / c", shape=box];
n42 -> n43;
n43 [label="j = (j / c)", shape=box];
a43 [label="LivingVariables\nIn := [('', 'c'), ('', 'f'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#b2d8f7", color="#3f8fd1", fontcolor="#3f8fd1"];
a43 -> n43 [style=dotted, arrowhead=none, color="#3f8fd1"];
n43 -> n48;
n48 [label="j", shape=box];
n48 -> n49;
n49 [label="2", shape=box];
n49 -> n50;
n50 [label="j * 2", shape=box];
n50 -> n51;
n51 [label="f", shape=box];
n51 -> n52;
n52 [label="(j * 2) / f", shape=box];
n52 -> n53;
n53 [label="i = ((j * 2) / f)", shape=box];
a53 [label="LivingVariables\nIn := [('', 'f'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#d7b2f7", color="#8d3fd1", fontcolor="#8d3fd1"];
a53 -> n53 [style=dotted, arrowhead=none, color="#8d3fd1"];
n53 -> n54;
n54 [label="s", shape=box];
n54 -> n55;
n55 [label="1", shape=box];
n55 -> n56;
n56 [label="s + 1", shape=box];
n56 -> n57;
n57 [label="s = (s + 1)", shape=box];
a57 [label="LivingVariables\nIn := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'i'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#def7b2", color="#9bd13f", fontcolor="#9bd13f"];
a57 -> n57 [style=dotted, arrowhead=none, color="#9bd13f"];
n57 -> n16;
n44 [label="j", shape=box];
n44 -> n45;
n45 [label="c", shape=box];
n45 -> n46;
n46 [label="j * c", shape=box];
n46 -> n47;
n47 [label="i = (j * c)", shape=box];
a47 [label="LivingVariables\nIn := [('', 'c'), ('', 'f'), ('', 'j'), ('', 's')]\nOut := [('', 'f'), ('', 'j'), ('', 's')]", shape=note, style="filled", fillcolor="#f7c6b2", color="#d1693f", fontcolor="#d1693f"];
a47 -> n47 [style=dotted, arrowhead=none, color="#d1693f"];
n47 -> n48;
rh4 [shape=point, width=0.05, height=0.05, color="#3fd1b9", fillcolor="#3fd1b9", style=filled];
{ rank=same; n4; rh4; }
n4:se -> rh4 [color="#3fd1b9", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh4 -> n16:ne [color="#3fd1b9", fontcolor="#3fd1b9", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh4 -> n21:se [color="#3fd1b9", fontcolor="#3fd1b9", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh4 -> n54:ne [color="#3fd1b9", fontcolor="#3fd1b9", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh6 [shape=point, width=0.05, height=0.05, color="#633fd1", fillcolor="#633fd1", style=filled];
{ rank=same; n6; rh6; }
n6:sw -> rh6 [color="#633fd1", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh6 -> n9:sw [color="#633fd1", fontcolor="#633fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh6 -> n25:sw [color="#633fd1", fontcolor="#633fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh8 [shape=point, width=0.05, height=0.05, color="#d13f70", fillcolor="#d13f70", style=filled];
{ rank=same; n8; rh8; }
n8:se -> rh8 [color="#d13f70", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh8 -> n10:ne [color="#d13f70", fontcolor="#d13f70", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh8 -> n26:ne [color="#d13f70", fontcolor="#d13f70", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh8 -> n40:ne [color="#d13f70", fontcolor="#d13f70", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh8 -> n44:ne [color="#d13f70", fontcolor="#d13f70", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh8 -> n48:ne [color="#d13f70", fontcolor="#d13f70", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh14 [shape=point, width=0.05, height=0.05, color="#3f4bd1", fillcolor="#3f4bd1", style=filled];
{ rank=same; n14; rh14; }
n14:se -> rh14 [color="#3f4bd1", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh14 -> n28:ne [color="#3f4bd1", fontcolor="#3f4bd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh14 -> n51:se [color="#3f4bd1", fontcolor="#3f4bd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh32 [shape=point, width=0.05, height=0.05, color="#a03fd1", fillcolor="#a03fd1", style=filled];
{ rank=same; n32; rh32; }
n32:se -> rh32 [color="#a03fd1", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh32 -> n33:se [color="#a03fd1", fontcolor="#a03fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh32 -> n41:se [color="#a03fd1", fontcolor="#a03fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh32 -> n45:se [color="#a03fd1", fontcolor="#a03fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh43 [shape=point, width=0.05, height=0.05, color="#3f8fd1", fillcolor="#3f8fd1", style=filled];
{ rank=same; n43; rh43; }
n43:sw -> rh43 [color="#3f8fd1", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh43 -> n26:nw [color="#3f8fd1", fontcolor="#3f8fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh43 -> n40:nw [color="#3f8fd1", fontcolor="#3f8fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh43 -> n44:nw [color="#3f8fd1", fontcolor="#3f8fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh43 -> n48:nw [color="#3f8fd1", fontcolor="#3f8fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh53 [shape=point, width=0.05, height=0.05, color="#8d3fd1", fillcolor="#8d3fd1", style=filled];
{ rank=same; n53; rh53; }
n53:sw -> rh53 [color="#8d3fd1", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh53 -> n25:sw [color="#8d3fd1", fontcolor="#8d3fd1", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh57 [shape=point, width=0.05, height=0.05, color="#9bd13f", fillcolor="#9bd13f", style=filled];
{ rank=same; n57; rh57; }
n57:se -> rh57 [color="#9bd13f", style=dashed, penwidth=1.2, arrowhead=none, constraint=false, tailclip=true, headclip=true];
rh57 -> n16:ne [color="#9bd13f", fontcolor="#9bd13f", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh57 -> n21:se [color="#9bd13f", fontcolor="#9bd13f", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
rh57 -> n54:ne [color="#9bd13f", fontcolor="#9bd13f", fontsize=8, style=dashed, penwidth=1.0, arrowsize=0.6, constraint=false, tailclip=true, headclip=true];
}