183 lines
12 KiB
Plaintext
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];
|
|
} |