summaryrefslogtreecommitdiff
path: root/chapter10/docs/example2b.gv
diff options
context:
space:
mode:
Diffstat (limited to 'chapter10/docs/example2b.gv')
-rw-r--r--chapter10/docs/example2b.gv19
1 files changed, 19 insertions, 0 deletions
diff --git a/chapter10/docs/example2b.gv b/chapter10/docs/example2b.gv
new file mode 100644
index 00000000..c7d64509
--- /dev/null
+++ b/chapter10/docs/example2b.gv
@@ -0,0 +1,19 @@
+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=RL;
+
+ P [label="Phi(memory)" shape=hexagon style="filled" fillcolor="#f5e4fa"];
+ S [label="Loop-body Store" shape=octagon style="filled" fillcolor="#dcecff"];
+ P -> Entry [color="#2867b2"];
+ P -> S [color="#2867b2",constraint=false]; // Backedge must not place Store before Phi.
+ S -> P [color="#2867b2"];
+ P -> Loop [style=dashed,color="#9396a3"]; Return -> P [color="#2867b2"];
+ Return -> S [style=invis]; // Layout only: Phi, Store, Return from left to right.
+ Return [shape=box style="filled" fillcolor="#fff1c4"];
+ Entry [shape=octagon style="filled" fillcolor="#dcecff"];
+ Loop [shape=box style="rounded,filled" fillcolor="#ffe0ab"];
+}