summaryrefslogtreecommitdiff
path: root/docs/chapter11/example1.gv
diff options
context:
space:
mode:
authorCliff Click <cliffc@acm.org>2024-06-30 01:58:08 +0100
committerCliff Click <cliffc@acm.org>2026-10-04 13:30:41 -0700
commit001a42d0e833dc496d8c0d8dcddd34fdf7dcd755 (patch)
treefe398a6f2ed973819115d87a4543b4f86786f97f /docs/chapter11/example1.gv
parentdc07e454afd120722b693e09538c165c2e267e60 (diff)
downloadSimple-001a42d0e833dc496d8c0d8dcddd34fdf7dcd755.tar.gz
Simple-001a42d0e833dc496d8c0d8dcddd34fdf7dcd755.zip
Chapter 11: Splitting Memory
Co-authored-by: Hsiang-Ying Fu <66062782+fuhsnn@users.noreply.github.com> Co-authored-by: Dibyendu Majumdar <mobile@majumdar.org.uk> Co-authored-by: Thalia Archibald <thalia@archibald.dev> Co-authored-by: Tamás Hadházy <85063808+Hels15@users.noreply.github.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: Symious <14933944+symious@users.noreply.github.com> Co-authored-by: RobertObkircher <robert.obkircher@gmail.com> Co-authored-by: Robert Obkircher <robert.obkircher@gmail.com> Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'docs/chapter11/example1.gv')
-rw-r--r--docs/chapter11/example1.gv20
1 files changed, 20 insertions, 0 deletions
diff --git a/docs/chapter11/example1.gv b/docs/chapter11/example1.gv
new file mode 100644
index 00000000..5e059d77
--- /dev/null
+++ b/docs/chapter11/example1.gv
@@ -0,0 +1,20 @@
+digraph Memory {
+ // IR styles match graph/web/render.js; arrows are use -> definition.
+ graph [bgcolor="#fafbfc" fontname="Helvetica" nodesep=0.35 ranksep=0.55 splines=ortho];
+ node [fontname="Helvetica" fontsize=12 color="#758191" fontcolor="#152330" shape=box style="rounded,filled" fillcolor="#edf3f7"];
+ edge [fontname="Helvetica" fontsize=9 color="#536477" fontcolor="#364352" arrowsize=0.7 penwidth=1.5];
+
+ rankdir=BT;
+
+ M [label="Initial memory" shape=octagon style="filled" fillcolor="#dcecff"];
+ X [label="Store x = 42" shape=octagon style="filled" fillcolor="#dcecff"];
+ Y [label="Loop: Store y" shape=octagon style="filled" fillcolor="#dcecff"];
+ L [label="Load x (42)" shape=box style="rounded,filled" fillcolor="#edf3f7"];
+ L -> X -> M [color="#2867b2"]; Y -> M [color="#2867b2"];
+ MemMerge -> X [color="#2867b2"]; MemMerge -> Y [color="#2867b2"];
+ Return -> MemMerge [color="#2867b2"]; Return -> L;
+ { rank=same; MemMerge -> L [style=invis]; }
+ Y -> X [style=invis]; // Layout only: keep the stores in code order.
+ Return [shape=box style="filled" fillcolor="#fff1c4"];
+ MemMerge [shape=octagon style="filled" fillcolor="#dcecff"];
+}