summaryrefslogtreecommitdiff
path: root/chapter04/docs
diff options
context:
space:
mode:
authorDibyendu Majumdar <dibyendumajumdar@users.noreply.github.com>2023-11-03 21:21:54 +0000
committerGitHub <noreply@github.com>2023-11-03 21:21:54 +0000
commit736c658c274404084b15b450b2ab72d0e7569586 (patch)
tree38f729d42ca6a82f32429dde774eba7666a57391 /chapter04/docs
parent360f4d1f2b5b4a3cb8bd97f1a659e8f7a3d0669e (diff)
downloadSimple-736c658c274404084b15b450b2ab72d0e7569586.tar.gz
Simple-736c658c274404084b15b450b2ab72d0e7569586.zip
Backport changes in Chapter 5 to previous chapters and update Chapter5 documentation (#34)
* Backport changes from chapter 5 to older chapters (#30) * Fix wrong indent * Backport to chapter 4 * Backport to chapter 3 * Backport to chapter 2 * Backport to chapter 1 * Add if statement to comment (#32) * Update visuals for chapters 1,2 & 3. Reenable drawing of edges from constants to Start for these chapters. * Update visuals for chapters 4. Revise text to explain the labeling of edges in graphs and that we omit edge from Constant to Start nodes from chapter 4. * Add code snippets for if statement parsing and the duplication and merging of ScopeNodes. Explain how scopeNodes are duplicated and merged. * Add constant check to minus node (#31) * Fix closing root block with } (#33) * Backport fix closing root block with } to chapter 4 and 3 (#35) * Show use-def edge from Phi to Region as dotted edge. Add example of Phi peephole. Update visuals. Add more examples. * Fix visuals in chapter 1 and README in chapter 4. * Remove subheading * Adjust spaces --------- Co-authored-by: XmiliaH <45106915+XmiliaH@users.noreply.github.com>
Diffstat (limited to 'chapter04/docs')
-rw-r--r--chapter04/docs/04-post-peephole.gv32
-rw-r--r--chapter04/docs/04-post-peephole.svg82
-rw-r--r--chapter04/docs/04-pre-peephole.gv42
-rw-r--r--chapter04/docs/04-pre-peephole.svg116
4 files changed, 137 insertions, 135 deletions
diff --git a/chapter04/docs/04-post-peephole.gv b/chapter04/docs/04-post-peephole.gv
index 22f55468..51e176bc 100644
--- a/chapter04/docs/04-post-peephole.gv
+++ b/chapter04/docs/04-post-peephole.gv
@@ -3,8 +3,10 @@ digraph chapter04 {
return 1+arg+2; #showGraph;
*/
rankdir=BT;
+ ordering="in";
+ concentrate="true";
subgraph cluster_Nodes {
- Start1 [ shape=plaintext label=<
+ Start2 [ shape=plaintext label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR><TD BGCOLOR="yellow">Start</TD></TR>
<TR><TD>
@@ -14,28 +16,28 @@ return 1+arg+2; #showGraph;
</TD></TR>
</TABLE>>
];
- Con_9 [ label="#3" ];
- Add10 [ label="Add" ];
- Return11 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ Con_10 [ label="#3" ];
+ Add11 [ label="+" ];
+ Return12 [ shape=box style=filled fillcolor=yellow label="Return" ];
}
node [shape=plaintext];
- subgraph cluster_0 {
- scope0 [label=<
+ subgraph cluster_Scope1_0 {
+ Scope1_0 [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="cyan">0</TD><TD PORT="scope0_$ctrl">$ctrl</TD><TD PORT="scope0_arg">arg</TD></TR>
+ <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope1_0_$ctrl">$ctrl</TD><TD PORT="Scope1_0_arg">arg</TD></TR>
</TABLE>>];
- subgraph cluster_1 {
- scope1 [label=<
+ subgraph cluster_Scope1_1 {
+ Scope1_1 [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="cyan">1</TD></TR>
</TABLE>>];
}
}
- Add10 -> Start1:p1;
- Add10 -> Con_9;
- Return11 -> Start1:p0 [color=red];
- Return11 -> Add10;
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Add11 -> Start2:p1[taillabel=1];
+ Add11 -> Con_10[taillabel=2];
+ Return12 -> Start2:p0[taillabel=0; color=red];
+ Return12 -> Add11[taillabel=1];
edge [style=dashed color=cornflowerblue];
- scope0:"scope0_$ctrl" -> Start1:p0;
- scope0:"scope0_arg" -> Start1:p1;
+ Scope1_0:"Scope1_0_arg" -> Start2:p1;
} \ No newline at end of file
diff --git a/chapter04/docs/04-post-peephole.svg b/chapter04/docs/04-post-peephole.svg
index 5a45722c..550c16ef 100644
--- a/chapter04/docs/04-post-peephole.svg
+++ b/chapter04/docs/04-post-peephole.svg
@@ -14,16 +14,16 @@
<polygon fill="none" stroke="black" points="8,-8 8,-232 193,-232 193,-8 8,-8"/>
</g>
<g id="clust2" class="cluster">
-<title>cluster_0</title>
+<title>cluster_Scope1_0</title>
<polygon fill="none" stroke="black" points="201,-72 201,-140 401,-140 401,-72 201,-72"/>
</g>
<g id="clust3" class="cluster">
-<title>cluster_1</title>
+<title>cluster_Scope1_1</title>
<polygon fill="none" stroke="black" points="323,-80 323,-132 393,-132 393,-80 323,-80"/>
</g>
-<!-- Start1 -->
+<!-- Start2 -->
<g id="node1" class="node">
-<title>Start1</title>
+<title>Start2</title>
<polygon fill="yellow" stroke="transparent" points="97,-195 97,-220 178,-220 178,-195 97,-195"/>
<polygon fill="none" stroke="black" points="97,-195 97,-220 178,-220 178,-195 97,-195"/>
<text text-anchor="start" x="119" y="-203.8" font-family="Times,serif" font-size="14.00">Start</text>
@@ -34,51 +34,55 @@
<polygon fill="none" stroke="black" points="142,-169 142,-190 173,-190 173,-169 142,-169"/>
<text text-anchor="start" x="145" y="-175.8" font-family="Times,serif" font-size="14.00">arg</text>
</g>
-<!-- Con_9 -->
+<!-- Con_10 -->
<g id="node2" class="node">
-<title>Con_9</title>
+<title>Con_10</title>
<ellipse fill="none" stroke="black" cx="43" cy="-192" rx="27" ry="18"/>
<text text-anchor="middle" x="43" y="-188.3" font-family="Times,serif" font-size="14.00">#3</text>
</g>
-<!-- Add10 -->
+<!-- Add11 -->
<g id="node3" class="node">
-<title>Add10</title>
-<ellipse fill="none" stroke="black" cx="156" cy="-106" rx="28.7" ry="18"/>
-<text text-anchor="middle" x="156" y="-102.3" font-family="Times,serif" font-size="14.00">Add</text>
+<title>Add11</title>
+<ellipse fill="none" stroke="black" cx="158" cy="-106" rx="27" ry="18"/>
+<text text-anchor="middle" x="158" y="-102.3" font-family="Times,serif" font-size="14.00">+</text>
</g>
-<!-- Add10&#45;&gt;Start1 -->
+<!-- Add11&#45;&gt;Start2 -->
<g id="edge1" class="edge">
-<title>Add10&#45;&gt;Start1:p1</title>
-<path fill="none" stroke="black" d="M156.86,-124.09C157.28,-133.54 157.73,-145.77 157.92,-157.68"/>
-<polygon fill="black" stroke="black" points="154.42,-158.03 158,-168 161.42,-157.97 154.42,-158.03"/>
+<title>Add11&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M158,-124.09C158,-133.55 158,-145.77 158,-157.69"/>
+<polygon fill="black" stroke="black" points="154.5,-158 158,-168 161.5,-158 154.5,-158"/>
+<text text-anchor="middle" x="155" y="-126.69" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
</g>
-<!-- Add10&#45;&gt;Con_9 -->
+<!-- Add11&#45;&gt;Con_10 -->
<g id="edge2" class="edge">
-<title>Add10&#45;&gt;Con_9</title>
-<path fill="none" stroke="black" d="M136.93,-119.61C121.35,-130.08 98.91,-145.53 80,-160 75.7,-163.29 71.22,-166.89 66.91,-170.44"/>
-<polygon fill="black" stroke="black" points="64.38,-168 58.96,-177.1 68.87,-173.37 64.38,-168"/>
+<title>Add11&#45;&gt;Con_10</title>
+<path fill="none" stroke="black" d="M139.03,-119.12C123,-129.54 99.59,-145.19 80,-160 75.68,-163.26 71.19,-166.85 66.88,-170.4"/>
+<polygon fill="black" stroke="black" points="64.34,-167.96 58.92,-177.06 68.84,-173.32 64.34,-167.96"/>
+<text text-anchor="middle" x="136.03" y="-121.72" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
</g>
-<!-- Return11 -->
+<!-- Return12 -->
<g id="node4" class="node">
-<title>Return11</title>
-<polygon fill="yellow" stroke="black" points="163,-52 97,-52 97,-16 163,-16 163,-52"/>
-<text text-anchor="middle" x="130" y="-30.3" font-family="Times,serif" font-size="14.00">Return</text>
+<title>Return12</title>
+<polygon fill="yellow" stroke="black" points="165,-52 99,-52 99,-16 165,-16 165,-52"/>
+<text text-anchor="middle" x="132" y="-30.3" font-family="Times,serif" font-size="14.00">Return</text>
</g>
-<!-- Return11&#45;&gt;Start1 -->
+<!-- Return12&#45;&gt;Start2 -->
<g id="edge3" class="edge">
-<title>Return11&#45;&gt;Start1:p0</title>
-<path fill="none" stroke="red" d="M123.24,-52.04C121.12,-58.23 119.05,-65.33 118,-72 113.28,-101.85 115.86,-109.85 118,-140 118.58,-148.23 120.12,-152.3 121.11,-157.68"/>
-<polygon fill="red" stroke="red" points="117.66,-158.34 122,-168 124.63,-157.74 117.66,-158.34"/>
+<title>Return12&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M126.36,-52.13C124.59,-58.32 122.88,-65.4 122,-72 116.87,-110.66 121.12,-123.21 121.89,-157.66"/>
+<polygon fill="red" stroke="red" points="118.39,-158.04 122,-168 125.39,-157.96 118.39,-158.04"/>
+<text text-anchor="middle" x="123.36" y="-54.73" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
</g>
-<!-- Return11&#45;&gt;Add10 -->
+<!-- Return12&#45;&gt;Add11 -->
<g id="edge4" class="edge">
-<title>Return11&#45;&gt;Add10</title>
-<path fill="none" stroke="black" d="M136.43,-52.3C139.4,-60.3 142.99,-69.98 146.29,-78.85"/>
-<polygon fill="black" stroke="black" points="143.06,-80.22 149.83,-88.38 149.63,-77.78 143.06,-80.22"/>
+<title>Return12&#45;&gt;Add11</title>
+<path fill="none" stroke="black" d="M138.43,-52.3C141.4,-60.3 144.99,-69.98 148.29,-78.85"/>
+<polygon fill="black" stroke="black" points="145.06,-80.22 151.83,-88.38 151.63,-77.78 145.06,-80.22"/>
+<text text-anchor="middle" x="135.43" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
</g>
-<!-- scope0 -->
+<!-- Scope1_0 -->
<g id="node5" class="node">
-<title>scope0</title>
+<title>Scope1_0</title>
<polygon fill="cyan" stroke="transparent" points="218,-95 218,-116 234,-116 234,-95 218,-95"/>
<polygon fill="none" stroke="black" points="218,-95 218,-116 234,-116 234,-95 218,-95"/>
<text text-anchor="start" x="221" y="-101.8" font-family="Times,serif" font-size="14.00">0</text>
@@ -87,21 +91,15 @@
<polygon fill="none" stroke="black" points="274,-95 274,-116 305,-116 305,-95 274,-95"/>
<text text-anchor="start" x="277" y="-101.8" font-family="Times,serif" font-size="14.00">arg</text>
</g>
-<!-- scope0&#45;&gt;Start1 -->
+<!-- Scope1_0&#45;&gt;Start2 -->
<g id="edge5" class="edge">
-<title>scope0:scope0_$ctrl&#45;&gt;Start1:p0</title>
-<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M254,-117C254,-176.09 137.5,-113.66 123.39,-158.03"/>
-<polygon fill="cornflowerblue" stroke="cornflowerblue" points="119.92,-157.61 122,-168 126.85,-158.58 119.92,-157.61"/>
-</g>
-<!-- scope0&#45;&gt;Start1 -->
-<g id="edge6" class="edge">
-<title>scope0:scope0_arg&#45;&gt;Start1:p1</title>
+<title>Scope1_0:Scope1_0_arg&#45;&gt;Start2:p1</title>
<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M290,-117C290,-172.03 239,-178.4 184.25,-178.95"/>
<polygon fill="cornflowerblue" stroke="cornflowerblue" points="183.98,-175.45 174,-179 184.02,-182.45 183.98,-175.45"/>
</g>
-<!-- scope1 -->
+<!-- Scope1_1 -->
<g id="node6" class="node">
-<title>scope1</title>
+<title>Scope1_1</title>
<polygon fill="cyan" stroke="transparent" points="350,-95 350,-116 366,-116 366,-95 350,-95"/>
<polygon fill="none" stroke="black" points="350,-95 350,-116 366,-116 366,-95 350,-95"/>
<text text-anchor="start" x="353" y="-101.8" font-family="Times,serif" font-size="14.00">1</text>
diff --git a/chapter04/docs/04-pre-peephole.gv b/chapter04/docs/04-pre-peephole.gv
index e8016c87..b6fefc2d 100644
--- a/chapter04/docs/04-pre-peephole.gv
+++ b/chapter04/docs/04-pre-peephole.gv
@@ -3,8 +3,10 @@ digraph chapter04 {
return 1+arg+2; #showGraph;
*/
rankdir=BT;
+ ordering="in";
+ concentrate="true";
subgraph cluster_Nodes {
- Start1 [ shape=plaintext label=<
+ Start2 [ shape=plaintext label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
<TR><TD BGCOLOR="yellow">Start</TD></TR>
<TR><TD>
@@ -14,32 +16,32 @@ return 1+arg+2; #showGraph;
</TD></TR>
</TABLE>>
];
- Con_4 [ label="#1" ];
- Con_5 [ label="#2" ];
- Add6 [ label="Add" ];
- Add7 [ label="Add" ];
- Return8 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ Con_5 [ label="#1" ];
+ Con_6 [ label="#2" ];
+ Add7 [ label="+" ];
+ Add8 [ label="+" ];
+ Return9 [ shape=box style=filled fillcolor=yellow label="Return" ];
}
node [shape=plaintext];
- subgraph cluster_0 {
- scope0 [label=<
+ subgraph cluster_Scope1_0 {
+ Scope1_0 [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
- <TR><TD BGCOLOR="cyan">0</TD><TD PORT="scope0_$ctrl">$ctrl</TD><TD PORT="scope0_arg">arg</TD></TR>
+ <TR><TD BGCOLOR="cyan">0</TD><TD PORT="Scope1_0_$ctrl">$ctrl</TD><TD PORT="Scope1_0_arg">arg</TD></TR>
</TABLE>>];
- subgraph cluster_1 {
- scope1 [label=<
+ subgraph cluster_Scope1_1 {
+ Scope1_1 [label=<
<TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
<TR><TD BGCOLOR="cyan">1</TD></TR>
</TABLE>>];
}
}
- Add6 -> Start1:p1;
- Add6 -> Con_5;
- Add7 -> Con_4;
- Add7 -> Add6;
- Return8 -> Start1:p0 [color=red];
- Return8 -> Add7;
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Add7 -> Start2:p1[taillabel=1];
+ Add7 -> Con_6[taillabel=2];
+ Add8 -> Con_5[taillabel=1];
+ Add8 -> Add7[taillabel=2];
+ Return9 -> Start2:p0[taillabel=0; color=red];
+ Return9 -> Add8[taillabel=1];
edge [style=dashed color=cornflowerblue];
- scope0:"scope0_$ctrl" -> Start1:p0;
- scope0:"scope0_arg" -> Start1:p1;
-}
+ Scope1_0:"Scope1_0_arg" -> Start2:p1;
+} \ No newline at end of file
diff --git a/chapter04/docs/04-pre-peephole.svg b/chapter04/docs/04-pre-peephole.svg
index b1ab4eee..9ec38d27 100644
--- a/chapter04/docs/04-pre-peephole.svg
+++ b/chapter04/docs/04-pre-peephole.svg
@@ -14,16 +14,16 @@
<polygon fill="none" stroke="black" points="8,-8 8,-304 193,-304 193,-8 8,-8"/>
</g>
<g id="clust2" class="cluster">
-<title>cluster_0</title>
+<title>cluster_Scope1_0</title>
<polygon fill="none" stroke="black" points="201,-144 201,-212 401,-212 401,-144 201,-144"/>
</g>
<g id="clust3" class="cluster">
-<title>cluster_1</title>
+<title>cluster_Scope1_1</title>
<polygon fill="none" stroke="black" points="323,-152 323,-204 393,-204 393,-152 323,-152"/>
</g>
-<!-- Start1 -->
+<!-- Start2 -->
<g id="node1" class="node">
-<title>Start1</title>
+<title>Start2</title>
<polygon fill="yellow" stroke="transparent" points="97,-267 97,-292 178,-292 178,-267 97,-267"/>
<polygon fill="none" stroke="black" points="97,-267 97,-292 178,-292 178,-267 97,-267"/>
<text text-anchor="start" x="119" y="-275.8" font-family="Times,serif" font-size="14.00">Start</text>
@@ -34,75 +34,81 @@
<polygon fill="none" stroke="black" points="142,-241 142,-262 173,-262 173,-241 142,-241"/>
<text text-anchor="start" x="145" y="-247.8" font-family="Times,serif" font-size="14.00">arg</text>
</g>
-<!-- Con_4 -->
+<!-- Con_5 -->
<g id="node2" class="node">
-<title>Con_4</title>
-<ellipse fill="none" stroke="black" cx="119" cy="-178" rx="27" ry="18"/>
-<text text-anchor="middle" x="119" y="-174.3" font-family="Times,serif" font-size="14.00">#1</text>
+<title>Con_5</title>
+<ellipse fill="none" stroke="black" cx="115" cy="-178" rx="27" ry="18"/>
+<text text-anchor="middle" x="115" y="-174.3" font-family="Times,serif" font-size="14.00">#1</text>
</g>
-<!-- Con_5 -->
+<!-- Con_6 -->
<g id="node3" class="node">
-<title>Con_5</title>
+<title>Con_6</title>
<ellipse fill="none" stroke="black" cx="43" cy="-264" rx="27" ry="18"/>
<text text-anchor="middle" x="43" y="-260.3" font-family="Times,serif" font-size="14.00">#2</text>
</g>
-<!-- Add6 -->
+<!-- Add7 -->
<g id="node4" class="node">
-<title>Add6</title>
-<ellipse fill="none" stroke="black" cx="45" cy="-178" rx="28.7" ry="18"/>
-<text text-anchor="middle" x="45" y="-174.3" font-family="Times,serif" font-size="14.00">Add</text>
+<title>Add7</title>
+<ellipse fill="none" stroke="black" cx="43" cy="-178" rx="27" ry="18"/>
+<text text-anchor="middle" x="43" y="-174.3" font-family="Times,serif" font-size="14.00">+</text>
</g>
-<!-- Add6&#45;&gt;Start1 -->
+<!-- Add7&#45;&gt;Start2 -->
<g id="edge1" class="edge">
-<title>Add6&#45;&gt;Start1:p1</title>
-<path fill="none" stroke="black" d="M59.56,-193.83C66.26,-200.06 74.59,-207 83,-212 110.12,-228.12 148.12,-209.69 156.37,-230.12"/>
-<polygon fill="black" stroke="black" points="152.92,-230.7 158,-240 159.83,-229.56 152.92,-230.7"/>
+<title>Add7&#45;&gt;Start2:p1</title>
+<path fill="none" stroke="black" d="M56.63,-193.93C62.95,-200.18 70.86,-207.11 79,-212 107.43,-229.09 147.88,-208.4 156.39,-229.99"/>
+<polygon fill="black" stroke="black" points="152.96,-230.68 158,-240 159.87,-229.57 152.96,-230.68"/>
+<text text-anchor="middle" x="53.63" y="-196.53" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
</g>
-<!-- Add6&#45;&gt;Con_5 -->
+<!-- Add7&#45;&gt;Con_6 -->
<g id="edge2" class="edge">
-<title>Add6&#45;&gt;Con_5</title>
-<path fill="none" stroke="black" d="M44.6,-196C44.33,-207.31 43.97,-222.42 43.66,-235.43"/>
-<polygon fill="black" stroke="black" points="40.15,-235.66 43.41,-245.74 47.15,-235.82 40.15,-235.66"/>
+<title>Add7&#45;&gt;Con_6</title>
+<path fill="none" stroke="black" d="M43,-196.4C43,-207.74 43,-222.77 43,-235.68"/>
+<polygon fill="black" stroke="black" points="39.5,-235.9 43,-245.9 46.5,-235.9 39.5,-235.9"/>
+<text text-anchor="middle" x="40" y="-199" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
</g>
-<!-- Add7 -->
+<!-- Add8 -->
<g id="node5" class="node">
-<title>Add7</title>
-<ellipse fill="none" stroke="black" cx="117" cy="-106" rx="28.7" ry="18"/>
-<text text-anchor="middle" x="117" y="-102.3" font-family="Times,serif" font-size="14.00">Add</text>
+<title>Add8</title>
+<ellipse fill="none" stroke="black" cx="115" cy="-106" rx="27" ry="18"/>
+<text text-anchor="middle" x="115" y="-102.3" font-family="Times,serif" font-size="14.00">+</text>
</g>
-<!-- Add7&#45;&gt;Con_4 -->
+<!-- Add8&#45;&gt;Con_5 -->
<g id="edge3" class="edge">
-<title>Add7&#45;&gt;Con_4</title>
-<path fill="none" stroke="black" d="M117.49,-124.3C117.71,-132.02 117.98,-141.29 118.23,-149.89"/>
-<polygon fill="black" stroke="black" points="114.73,-150 118.51,-159.9 121.72,-149.8 114.73,-150"/>
+<title>Add8&#45;&gt;Con_5</title>
+<path fill="none" stroke="black" d="M115,-124.3C115,-132.02 115,-141.29 115,-149.89"/>
+<polygon fill="black" stroke="black" points="111.5,-149.9 115,-159.9 118.5,-149.9 111.5,-149.9"/>
+<text text-anchor="middle" x="112" y="-126.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
</g>
-<!-- Add7&#45;&gt;Add6 -->
+<!-- Add8&#45;&gt;Add7 -->
<g id="edge4" class="edge">
-<title>Add7&#45;&gt;Add6</title>
-<path fill="none" stroke="black" d="M102.08,-121.5C92.04,-131.27 78.62,-144.31 67.32,-155.3"/>
-<polygon fill="black" stroke="black" points="64.63,-153.03 59.9,-162.51 69.51,-158.05 64.63,-153.03"/>
+<title>Add8&#45;&gt;Add7</title>
+<path fill="none" stroke="black" d="M100.43,-121.17C90.25,-131.06 76.48,-144.45 64.97,-155.64"/>
+<polygon fill="black" stroke="black" points="62.53,-153.13 57.8,-162.62 67.41,-158.15 62.53,-153.13"/>
+<text text-anchor="middle" x="97.43" y="-123.77" font-family="Helvetica,sans-Serif" font-size="8.00">2</text>
</g>
-<!-- Return8 -->
+<!-- Return9 -->
<g id="node6" class="node">
-<title>Return8</title>
-<polygon fill="yellow" stroke="black" points="167,-52 101,-52 101,-16 167,-16 167,-52"/>
-<text text-anchor="middle" x="134" y="-30.3" font-family="Times,serif" font-size="14.00">Return</text>
+<title>Return9</title>
+<polygon fill="yellow" stroke="black" points="166,-52 100,-52 100,-16 166,-16 166,-52"/>
+<text text-anchor="middle" x="133" y="-30.3" font-family="Times,serif" font-size="14.00">Return</text>
</g>
-<!-- Return8&#45;&gt;Start1 -->
+<!-- Return9&#45;&gt;Start2 -->
<g id="edge5" class="edge">
-<title>Return8&#45;&gt;Start1:p0</title>
-<path fill="none" stroke="red" d="M142.72,-52.17C147.37,-62.31 152.62,-75.56 155,-88 165.33,-142.13 178.15,-161.99 155,-212 148.81,-225.36 132.76,-223.4 125.57,-230.38"/>
-<polygon fill="red" stroke="red" points="122.2,-229.41 122,-240 128.76,-231.84 122.2,-229.41"/>
+<title>Return9&#45;&gt;Start2:p0</title>
+<path fill="none" stroke="red" d="M140.48,-52.3C144.47,-62.48 148.97,-75.73 151,-88 159.98,-142.37 172.54,-161.27 151,-212 145.75,-224.37 132.06,-223.86 125.55,-230.39"/>
+<polygon fill="red" stroke="red" points="122.18,-229.41 122,-240 128.74,-231.83 122.18,-229.41"/>
+<text text-anchor="middle" x="137.48" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">0</text>
</g>
-<!-- Return8&#45;&gt;Add7 -->
+<!-- Return9&#45;&gt;Add8 -->
<g id="edge6" class="edge">
-<title>Return8&#45;&gt;Add7</title>
-<path fill="none" stroke="black" d="M129.8,-52.3C127.9,-60.1 125.62,-69.49 123.52,-78.17"/>
-<polygon fill="black" stroke="black" points="120.11,-77.35 121.15,-87.9 126.92,-79 120.11,-77.35"/>
+<title>Return9&#45;&gt;Add8</title>
+<path fill="none" stroke="black" d="M128.55,-52.3C126.55,-60.1 124.13,-69.49 121.9,-78.17"/>
+<polygon fill="black" stroke="black" points="118.5,-77.34 119.4,-87.9 125.28,-79.08 118.5,-77.34"/>
+<text text-anchor="middle" x="125.55" y="-54.9" font-family="Helvetica,sans-Serif" font-size="8.00">1</text>
</g>
-<!-- scope0 -->
+<!-- Scope1_0 -->
<g id="node7" class="node">
-<title>scope0</title>
+<title>Scope1_0</title>
<polygon fill="cyan" stroke="transparent" points="218,-167 218,-188 234,-188 234,-167 218,-167"/>
<polygon fill="none" stroke="black" points="218,-167 218,-188 234,-188 234,-167 218,-167"/>
<text text-anchor="start" x="221" y="-173.8" font-family="Times,serif" font-size="14.00">0</text>
@@ -111,21 +117,15 @@
<polygon fill="none" stroke="black" points="274,-167 274,-188 305,-188 305,-167 274,-167"/>
<text text-anchor="start" x="277" y="-173.8" font-family="Times,serif" font-size="14.00">arg</text>
</g>
-<!-- scope0&#45;&gt;Start1 -->
+<!-- Scope1_0&#45;&gt;Start2 -->
<g id="edge7" class="edge">
-<title>scope0:scope0_$ctrl&#45;&gt;Start1:p0</title>
-<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M254,-189C254,-248.09 137.5,-185.66 123.39,-230.03"/>
-<polygon fill="cornflowerblue" stroke="cornflowerblue" points="119.92,-229.61 122,-240 126.85,-230.58 119.92,-229.61"/>
-</g>
-<!-- scope0&#45;&gt;Start1 -->
-<g id="edge8" class="edge">
-<title>scope0:scope0_arg&#45;&gt;Start1:p1</title>
+<title>Scope1_0:Scope1_0_arg&#45;&gt;Start2:p1</title>
<path fill="none" stroke="cornflowerblue" stroke-dasharray="5,2" d="M290,-189C290,-244.03 239,-250.4 184.25,-250.95"/>
<polygon fill="cornflowerblue" stroke="cornflowerblue" points="183.98,-247.45 174,-251 184.02,-254.45 183.98,-247.45"/>
</g>
-<!-- scope1 -->
+<!-- Scope1_1 -->
<g id="node8" class="node">
-<title>scope1</title>
+<title>Scope1_1</title>
<polygon fill="cyan" stroke="transparent" points="350,-167 350,-188 366,-188 366,-167 350,-167"/>
<polygon fill="none" stroke="black" points="350,-167 350,-188 366,-188 366,-167 350,-167"/>
<text text-anchor="start" x="353" y="-173.8" font-family="Times,serif" font-size="14.00">1</text>