summaryrefslogtreecommitdiff
path: root/docs/chapter06/06-graph3-nonconst.gv
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2023-11-11 23:17:22 +0000
committerCliff Click <cliffc@acm.org>2026-10-08 16:52:27 -0700
commitb6d5e06a2099749e867d3068aec9d555ab2fe693 (patch)
tree6c07fa52ed381198c86c2fe657195a2805875a1d /docs/chapter06/06-graph3-nonconst.gv
parentf5ad15e3699c0d07ab2b06865f3a8ae209d021d0 (diff)
downloadSimple-b6d5e06a2099749e867d3068aec9d555ab2fe693.tar.gz
Simple-b6d5e06a2099749e867d3068aec9d555ab2fe693.zip
Chapter 6: Peepholes for If
Co-authored-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Co-authored-by: Thalia Archibald <thalia@archibald.dev> Co-authored-by: Yichen Yan <oraluben@outlook.com> Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com> Co-authored-by: tannal <tannal2409@gmail.com> Co-authored-by: hadha <helsgithub15@gmail.com> Co-authored-by: fuhsnn <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.com> Co-authored-by: Tamas Hadhazy <helsgithub15@gmail.com> Co-authored-by: RobertObkircher <robert.obkircher@gmail.com> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com> Co-authored-by: Jun Kawasaki <jun784@gmail.com>
Diffstat (limited to 'docs/chapter06/06-graph3-nonconst.gv')
-rw-r--r--docs/chapter06/06-graph3-nonconst.gv86
1 files changed, 86 insertions, 0 deletions
diff --git a/docs/chapter06/06-graph3-nonconst.gv b/docs/chapter06/06-graph3-nonconst.gv
new file mode 100644
index 00000000..7cd4e8e2
--- /dev/null
+++ b/docs/chapter06/06-graph3-nonconst.gv
@@ -0,0 +1,86 @@
+digraph chapter06 {
+/*
+int a = 0;
+int b = 1;
+if( arg ) {
+ a = 2;
+ if( arg ) { b = 2; }
+ else b = 3;
+}
+return a+b;
+
+*/
+ rankdir=BT;
+ ordering="in";
+ concentrate="true";
+ subgraph cluster_Nodes {
+ Start2 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">Start</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">$ctrl</TD><TD PORT="p1">arg</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Stop3 [ shape=box style=filled fillcolor=yellow label="Stop" ];
+ Con_6 [ label="#0" ];
+ Con_7 [ label="#1" ];
+ If8 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_12 [ label="#2" ];
+ If13 [ shape=plaintext label=<
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0" CELLPADDING="4">
+ <TR><TD BGCOLOR="yellow">If</TD></TR>
+ <TR><TD>
+ <TABLE BORDER="0" CELLBORDER="1" CELLSPACING="0">
+ <TR><TD PORT="p0" BGCOLOR="yellow">True</TD><TD PORT="p1" BGCOLOR="yellow">False</TD></TR>
+ </TABLE>
+ </TD></TR>
+ </TABLE>>
+ ];
+ Con_17 [ label="#2" ];
+ Con_18 [ label="#3" ];
+ Region19 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_b20 [ style=filled fillcolor=lightyellow label="&phi;_b" ];
+ Region21 [ shape=box style=filled fillcolor=yellow label="Region" ];
+ Phi_a22 [ style=filled fillcolor=lightyellow label="&phi;_a" ];
+ Phi_b23 [ style=filled fillcolor=lightyellow label="&phi;_b" ];
+ Add24 [ label="+" ];
+ Return25 [ shape=box style=filled fillcolor=yellow label="Return" ];
+ { rank=same; Region19;Phi_b20;}
+ { rank=same; Region21;Phi_b23;Phi_a22;}
+ }
+ edge [ fontname=Helvetica, fontsize=8 ];
+ Stop3 -> Return25[taillabel=0 color=red];
+ If8 -> Start2:p0[taillabel=0 color=red];
+ If8 -> Start2:p1[taillabel=1];
+ If13 -> If8:p0[taillabel=0 color=red];
+ If13 -> Start2:p1[taillabel=1];
+ Region19 -> If13:p0[taillabel=1 color=red];
+ Region19 -> If13:p1[taillabel=2 color=red];
+ Phi_b20 -> Region19 [style=dotted taillabel=0];
+ Phi_b20 -> Con_17[taillabel=1];
+ Phi_b20 -> Con_18[taillabel=2];
+ Region21 -> Region19[taillabel=1 color=red];
+ Region21 -> If8:p1[taillabel=2 color=red];
+ Phi_a22 -> Region21 [style=dotted taillabel=0];
+ Phi_a22 -> Con_12[taillabel=1];
+ Phi_a22 -> Con_6[taillabel=2];
+ Phi_b23 -> Region21 [style=dotted taillabel=0];
+ Phi_b23 -> Phi_b20[taillabel=1];
+ Phi_b23 -> Con_7[taillabel=2];
+ Add24 -> Phi_b23[taillabel=1];
+ Add24 -> Phi_a22[taillabel=2];
+ Return25 -> Region21[taillabel=0 color=red];
+ Return25 -> Add24[taillabel=1];
+}