summaryrefslogtreecommitdiff
path: root/chapter10b/docs
diff options
context:
space:
mode:
Diffstat (limited to 'chapter10b/docs')
-rw-r--r--chapter10b/docs/example1.gv6
-rw-r--r--chapter10b/docs/example1.svg84
-rw-r--r--chapter10b/docs/example2a.gv6
-rw-r--r--chapter10b/docs/example2a.svg82
-rw-r--r--chapter10b/docs/example2b.gv8
-rw-r--r--chapter10b/docs/example2b.svg136
-rw-r--r--chapter10b/docs/example2c.gv4
-rw-r--r--chapter10b/docs/example2c.svg50
8 files changed, 188 insertions, 188 deletions
diff --git a/chapter10b/docs/example1.gv b/chapter10b/docs/example1.gv
index d1b2d456..2194ae8f 100644
--- a/chapter10b/docs/example1.gv
+++ b/chapter10b/docs/example1.gv
@@ -5,7 +5,7 @@ digraph Memory {
X [label="Store x = 42"];
Y [label="Loop: Store y"];
L [label="Load x -> 42"];
- M -> X -> L [color=blue]; M -> Y [color=green];
- X -> MemMerge [color=blue]; Y -> MemMerge [color=green];
- MemMerge -> Return; L -> Return;
+ L -> X -> M [color=blue]; Y -> M [color=green];
+ MemMerge -> X [color=blue]; MemMerge -> Y [color=green];
+ Return -> MemMerge; Return -> L;
}
diff --git a/chapter10b/docs/example1.svg b/chapter10b/docs/example1.svg
index bcd2a221..c441bc7b 100644
--- a/chapter10b/docs/example1.svg
+++ b/chapter10b/docs/example1.svg
@@ -12,80 +12,80 @@
<!-- M -->
<g id="node1" class="node">
<title>M</title>
-<polygon fill="none" stroke="black" points="98.5,-63 0,-63 0,-27 98.5,-27 98.5,-63"/>
-<text text-anchor="middle" x="49.25" y="-39.95" font-family="Times New Roman,serif" font-size="14.00">Initial memory</text>
+<polygon fill="none" stroke="black" points="439.5,-63 341,-63 341,-27 439.5,-27 439.5,-63"/>
+<text text-anchor="middle" x="390.25" y="-39.95" font-family="Times New Roman,serif" font-size="14.00">Initial memory</text>
</g>
<!-- X -->
<g id="node2" class="node">
<title>X</title>
-<polygon fill="none" stroke="black" points="222.12,-90 137.88,-90 137.88,-54 222.12,-54 222.12,-90"/>
-<text text-anchor="middle" x="180" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Store x = 42</text>
+<polygon fill="none" stroke="black" points="301.62,-90 217.38,-90 217.38,-54 301.62,-54 301.62,-90"/>
+<text text-anchor="middle" x="259.5" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Store x = 42</text>
</g>
-<!-- M&#45;&gt;X -->
-<g id="edge1" class="edge">
-<title>M&#45;&gt;X</title>
-<path fill="none" stroke="blue" d="M98.92,-55.21C107.84,-57.08 117.18,-59.04 126.2,-60.93"/>
-<polygon fill="blue" stroke="blue" points="125.43,-64.34 135.93,-62.97 126.86,-57.49 125.43,-64.34"/>
+<!-- X&#45;&gt;M -->
+<g id="edge2" class="edge">
+<title>X&#45;&gt;M</title>
+<path fill="none" stroke="blue" d="M301.95,-63.31C310.73,-61.47 320.16,-59.49 329.47,-57.54"/>
+<polygon fill="blue" stroke="blue" points="330.15,-60.97 339.22,-55.49 328.71,-54.12 330.15,-60.97"/>
</g>
<!-- Y -->
<g id="node3" class="node">
<title>Y</title>
-<polygon fill="none" stroke="black" points="225.5,-36 134.5,-36 134.5,0 225.5,0 225.5,-36"/>
-<text text-anchor="middle" x="180" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Loop: Store y</text>
+<polygon fill="none" stroke="black" points="305,-36 214,-36 214,0 305,0 305,-36"/>
+<text text-anchor="middle" x="259.5" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Loop: Store y</text>
</g>
-<!-- M&#45;&gt;Y -->
+<!-- Y&#45;&gt;M -->
<g id="edge3" class="edge">
-<title>M&#45;&gt;Y</title>
-<path fill="none" stroke="green" d="M98.92,-34.79C106.77,-33.15 114.94,-31.43 122.94,-29.76"/>
-<polygon fill="green" stroke="green" points="123.52,-33.21 132.59,-27.73 122.09,-26.36 123.52,-33.21"/>
+<title>Y&#45;&gt;M</title>
+<path fill="none" stroke="green" d="M305.17,-27.37C313.06,-29.02 321.38,-30.77 329.61,-32.49"/>
+<polygon fill="green" stroke="green" points="328.72,-35.88 339.22,-34.51 330.16,-29.03 328.72,-35.88"/>
</g>
<!-- L -->
<g id="node4" class="node">
<title>L</title>
-<polygon fill="none" stroke="black" points="349.5,-90 261.5,-90 261.5,-54 349.5,-54 349.5,-90"/>
-<text text-anchor="middle" x="305.5" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Load x &#45;&gt; 42</text>
+<polygon fill="none" stroke="black" points="178,-90 90,-90 90,-54 178,-54 178,-90"/>
+<text text-anchor="middle" x="134" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Load x &#45;&gt; 42</text>
</g>
-<!-- X&#45;&gt;L -->
-<g id="edge2" class="edge">
-<title>X&#45;&gt;L</title>
-<path fill="none" stroke="blue" d="M222.47,-72C231.24,-72 240.62,-72 249.8,-72"/>
-<polygon fill="blue" stroke="blue" points="249.73,-75.5 259.73,-72 249.73,-68.5 249.73,-75.5"/>
+<!-- L&#45;&gt;X -->
+<g id="edge1" class="edge">
+<title>L&#45;&gt;X</title>
+<path fill="none" stroke="blue" d="M178.19,-72C187.1,-72 196.56,-72 205.76,-72"/>
+<polygon fill="blue" stroke="blue" points="205.69,-75.5 215.69,-72 205.69,-68.5 205.69,-75.5"/>
</g>
<!-- MemMerge -->
<g id="node5" class="node">
<title>MemMerge</title>
-<polygon fill="none" stroke="black" points="346.5,-36 264.5,-36 264.5,0 346.5,0 346.5,-36"/>
-<text text-anchor="middle" x="305.5" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
+<polygon fill="none" stroke="black" points="175,-36 93,-36 93,0 175,0 175,-36"/>
+<text text-anchor="middle" x="134" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
</g>
-<!-- X&#45;&gt;MemMerge -->
+<!-- MemMerge&#45;&gt;X -->
<g id="edge4" class="edge">
-<title>X&#45;&gt;MemMerge</title>
-<path fill="none" stroke="blue" d="M222.47,-53.87C232.56,-49.46 243.46,-44.69 253.92,-40.11"/>
-<polygon fill="blue" stroke="blue" points="255.04,-43.45 262.8,-36.23 252.24,-37.03 255.04,-43.45"/>
+<title>MemMerge&#45;&gt;X</title>
+<path fill="none" stroke="blue" d="M175.44,-35.68C185.46,-40.06 196.34,-44.82 206.82,-49.4"/>
+<polygon fill="blue" stroke="blue" points="205.17,-52.5 215.74,-53.3 207.98,-46.09 205.17,-52.5"/>
</g>
-<!-- Y&#45;&gt;MemMerge -->
+<!-- MemMerge&#45;&gt;Y -->
<g id="edge5" class="edge">
-<title>Y&#45;&gt;MemMerge</title>
-<path fill="none" stroke="green" d="M225.94,-18C234.66,-18 243.88,-18 252.8,-18"/>
-<polygon fill="green" stroke="green" points="252.79,-21.5 262.79,-18 252.79,-14.5 252.79,-21.5"/>
+<title>MemMerge&#45;&gt;Y</title>
+<path fill="none" stroke="green" d="M175.44,-18C184.05,-18 193.28,-18 202.35,-18"/>
+<polygon fill="green" stroke="green" points="202.19,-21.5 212.19,-18 202.19,-14.5 202.19,-21.5"/>
</g>
<!-- Return -->
<g id="node6" class="node">
<title>Return</title>
-<polygon fill="none" stroke="black" points="439.5,-63 385.5,-63 385.5,-27 439.5,-27 439.5,-63"/>
-<text text-anchor="middle" x="412.5" y="-39.95" font-family="Times New Roman,serif" font-size="14.00">Return</text>
+<polygon fill="none" stroke="black" points="54,-63 0,-63 0,-27 54,-27 54,-63"/>
+<text text-anchor="middle" x="27" y="-39.95" font-family="Times New Roman,serif" font-size="14.00">Return</text>
</g>
-<!-- L&#45;&gt;Return -->
+<!-- Return&#45;&gt;L -->
<g id="edge7" class="edge">
-<title>L&#45;&gt;Return</title>
-<path fill="none" stroke="black" d="M349.81,-60.86C357.86,-58.79 366.2,-56.65 374.06,-54.63"/>
-<polygon fill="black" stroke="black" points="374.84,-58.04 383.65,-52.16 373.1,-51.26 374.84,-58.04"/>
+<title>Return&#45;&gt;L</title>
+<path fill="none" stroke="black" d="M54.5,-51.81C61.93,-53.72 70.3,-55.88 78.72,-58.04"/>
+<polygon fill="black" stroke="black" points="77.74,-61.4 88.3,-60.5 79.48,-54.62 77.74,-61.4"/>
</g>
-<!-- MemMerge&#45;&gt;Return -->
+<!-- Return&#45;&gt;MemMerge -->
<g id="edge6" class="edge">
-<title>MemMerge&#45;&gt;Return</title>
-<path fill="none" stroke="black" d="M346.8,-28.36C355.72,-30.66 365.15,-33.08 373.96,-35.35"/>
-<polygon fill="black" stroke="black" points="373.07,-38.73 383.63,-37.83 374.82,-31.95 373.07,-38.73"/>
+<title>Return&#45;&gt;MemMerge</title>
+<path fill="none" stroke="black" d="M54.5,-38.19C62.79,-36.05 72.25,-33.62 81.65,-31.2"/>
+<polygon fill="black" stroke="black" points="82.32,-34.65 91.14,-28.77 80.58,-27.87 82.32,-34.65"/>
</g>
</g>
</svg>
diff --git a/chapter10b/docs/example2a.gv b/chapter10b/docs/example2a.gv
index 50f7ec80..c2db6771 100644
--- a/chapter10b/docs/example2a.gv
+++ b/chapter10b/docs/example2a.gv
@@ -4,7 +4,7 @@ digraph Memory {
M [label="Default memory"];
X [label="Store x"];
Y [label="Store y"];
- M -> X [color=blue]; M -> Y [color=green];
- M -> MemMerge [label="default"]; X -> MemMerge [label="x",color=blue];
- Y -> MemMerge [label="y",color=green]; MemMerge -> Return;
+ X -> M [color=blue]; Y -> M [color=green];
+ MemMerge -> M [label="default"]; MemMerge -> X [label="x",color=blue];
+ MemMerge -> Y [label="y",color=green]; Return -> MemMerge;
}
diff --git a/chapter10b/docs/example2a.svg b/chapter10b/docs/example2a.svg
index 74cb48e0..fc95e08c 100644
--- a/chapter10b/docs/example2a.svg
+++ b/chapter10b/docs/example2a.svg
@@ -4,79 +4,79 @@
<!-- Generated by graphviz version 12.2.0 (20241103.1931)
-->
<!-- Title: Memory Pages: 1 -->
-<svg width="423pt" height="128pt"
- viewBox="0.00 0.00 422.50 127.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 123.8)">
+<svg width="423pt" height="126pt"
+ viewBox="0.00 0.00 422.50 125.93" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 121.93)">
<title>Memory</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-123.8 418.5,-123.8 418.5,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-121.93 418.5,-121.93 418.5,4 -4,4"/>
<!-- M -->
<g id="node1" class="node">
<title>M</title>
-<polygon fill="none" stroke="black" points="106.75,-65.8 0,-65.8 0,-29.8 106.75,-29.8 106.75,-65.8"/>
-<text text-anchor="middle" x="53.38" y="-42.75" font-family="Times New Roman,serif" font-size="14.00">Default memory</text>
+<polygon fill="none" stroke="black" points="414.5,-90 307.75,-90 307.75,-54 414.5,-54 414.5,-90"/>
+<text text-anchor="middle" x="361.12" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Default memory</text>
</g>
<!-- X -->
<g id="node2" class="node">
<title>X</title>
-<polygon fill="none" stroke="black" points="198.75,-119.8 143.75,-119.8 143.75,-83.8 198.75,-83.8 198.75,-119.8"/>
-<text text-anchor="middle" x="171.25" y="-96.75" font-family="Times New Roman,serif" font-size="14.00">Store x</text>
+<polygon fill="none" stroke="black" points="270.75,-90 215.75,-90 215.75,-54 270.75,-54 270.75,-90"/>
+<text text-anchor="middle" x="243.25" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Store x</text>
</g>
-<!-- M&#45;&gt;X -->
+<!-- X&#45;&gt;M -->
<g id="edge1" class="edge">
-<title>M&#45;&gt;X</title>
-<path fill="none" stroke="blue" d="M93.93,-66.23C106.63,-72.15 120.65,-78.69 133.17,-84.52"/>
-<polygon fill="blue" stroke="blue" points="131.36,-87.54 141.9,-88.59 134.31,-81.19 131.36,-87.54"/>
+<title>X&#45;&gt;M</title>
+<path fill="none" stroke="blue" d="M271.13,-72C278.66,-72 287.18,-72 295.9,-72"/>
+<polygon fill="blue" stroke="blue" points="295.89,-75.5 305.89,-72 295.89,-68.5 295.89,-75.5"/>
</g>
<!-- Y -->
<g id="node3" class="node">
<title>Y</title>
-<polygon fill="none" stroke="black" points="198.75,-65.8 143.75,-65.8 143.75,-29.8 198.75,-29.8 198.75,-65.8"/>
-<text text-anchor="middle" x="171.25" y="-42.75" font-family="Times New Roman,serif" font-size="14.00">Store y</text>
+<polygon fill="none" stroke="black" points="270.75,-36 215.75,-36 215.75,0 270.75,0 270.75,-36"/>
+<text text-anchor="middle" x="243.25" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Store y</text>
</g>
-<!-- M&#45;&gt;Y -->
+<!-- Y&#45;&gt;M -->
<g id="edge2" class="edge">
-<title>M&#45;&gt;Y</title>
-<path fill="none" stroke="green" d="M107.23,-47.8C115.55,-47.8 124.01,-47.8 131.93,-47.8"/>
-<polygon fill="green" stroke="green" points="131.91,-51.3 141.91,-47.8 131.91,-44.3 131.91,-51.3"/>
+<title>Y&#45;&gt;M</title>
+<path fill="none" stroke="green" d="M271.13,-30.52C282.85,-35.99 296.97,-42.57 310.49,-48.87"/>
+<polygon fill="green" stroke="green" points="308.74,-51.91 319.28,-52.97 311.69,-45.57 308.74,-51.91"/>
</g>
<!-- MemMerge -->
<g id="node4" class="node">
<title>MemMerge</title>
-<polygon fill="none" stroke="black" points="323.5,-65.8 241.5,-65.8 241.5,-29.8 323.5,-29.8 323.5,-65.8"/>
-<text text-anchor="middle" x="282.5" y="-42.75" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
+<polygon fill="none" stroke="black" points="173,-90 91,-90 91,-54 173,-54 173,-90"/>
+<text text-anchor="middle" x="132" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
</g>
-<!-- M&#45;&gt;MemMerge -->
+<!-- MemMerge&#45;&gt;M -->
<g id="edge3" class="edge">
-<title>M&#45;&gt;MemMerge</title>
-<path fill="none" stroke="black" d="M83.72,-29.32C100.58,-19.8 122.56,-9.18 143.75,-4.3 167.57,1.19 175.02,1.56 198.75,-4.3 214.73,-8.24 231.03,-15.89 244.89,-23.68"/>
-<polygon fill="black" stroke="black" points="242.81,-26.52 253.21,-28.57 246.36,-20.48 242.81,-26.52"/>
-<text text-anchor="middle" x="171.25" y="-7.5" font-family="Times New Roman,serif" font-size="14.00">default</text>
+<title>MemMerge&#45;&gt;M</title>
+<path fill="none" stroke="black" d="M173.11,-88.58C186.42,-93.14 201.5,-97.3 215.75,-99 240.02,-101.9 246.57,-102.57 270.75,-99 279.43,-97.72 288.44,-95.77 297.24,-93.5"/>
+<polygon fill="black" stroke="black" points="298.08,-96.9 306.79,-90.87 296.22,-90.15 298.08,-96.9"/>
+<text text-anchor="middle" x="243.25" y="-104.63" font-family="Times New Roman,serif" font-size="14.00">default</text>
</g>
-<!-- X&#45;&gt;MemMerge -->
+<!-- MemMerge&#45;&gt;X -->
<g id="edge4" class="edge">
-<title>X&#45;&gt;MemMerge</title>
-<path fill="none" stroke="blue" d="M198.98,-88.59C209.64,-83.32 222.23,-77.1 234.33,-71.11"/>
-<polygon fill="blue" stroke="blue" points="235.56,-74.41 242.97,-66.85 232.45,-68.14 235.56,-74.41"/>
-<text text-anchor="middle" x="220.12" y="-82.84" font-family="Times New Roman,serif" font-size="14.00">x</text>
+<title>MemMerge&#45;&gt;X</title>
+<path fill="none" stroke="blue" d="M173.37,-72C183.42,-72 194.16,-72 204.1,-72"/>
+<polygon fill="blue" stroke="blue" points="203.79,-75.5 213.79,-72 203.79,-68.5 203.79,-75.5"/>
+<text text-anchor="middle" x="194.38" y="-75.2" font-family="Times New Roman,serif" font-size="14.00">x</text>
</g>
-<!-- Y&#45;&gt;MemMerge -->
+<!-- MemMerge&#45;&gt;Y -->
<g id="edge5" class="edge">
-<title>Y&#45;&gt;MemMerge</title>
-<path fill="none" stroke="green" d="M198.98,-47.8C208.35,-47.8 219.21,-47.8 229.93,-47.8"/>
-<polygon fill="green" stroke="green" points="229.9,-51.3 239.9,-47.8 229.9,-44.3 229.9,-51.3"/>
-<text text-anchor="middle" x="220.12" y="-51" font-family="Times New Roman,serif" font-size="14.00">y</text>
+<title>MemMerge&#45;&gt;Y</title>
+<path fill="none" stroke="green" d="M170.29,-53.57C181.65,-47.95 194.12,-41.79 205.45,-36.19"/>
+<polygon fill="green" stroke="green" points="206.69,-39.48 214.11,-31.91 203.59,-33.2 206.69,-39.48"/>
+<text text-anchor="middle" x="194.38" y="-44.97" font-family="Times New Roman,serif" font-size="14.00">y</text>
</g>
<!-- Return -->
<g id="node5" class="node">
<title>Return</title>
-<polygon fill="none" stroke="black" points="414.5,-65.8 360.5,-65.8 360.5,-29.8 414.5,-29.8 414.5,-65.8"/>
-<text text-anchor="middle" x="387.5" y="-42.75" font-family="Times New Roman,serif" font-size="14.00">Return</text>
+<polygon fill="none" stroke="black" points="54,-90 0,-90 0,-54 54,-54 54,-90"/>
+<text text-anchor="middle" x="27" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Return</text>
</g>
-<!-- MemMerge&#45;&gt;Return -->
+<!-- Return&#45;&gt;MemMerge -->
<g id="edge6" class="edge">
-<title>MemMerge&#45;&gt;Return</title>
-<path fill="none" stroke="black" d="M323.91,-47.8C332.09,-47.8 340.66,-47.8 348.75,-47.8"/>
-<polygon fill="black" stroke="black" points="348.62,-51.3 358.62,-47.8 348.62,-44.3 348.62,-51.3"/>
+<title>Return&#45;&gt;MemMerge</title>
+<path fill="none" stroke="black" d="M54.26,-72C61.97,-72 70.68,-72 79.39,-72"/>
+<polygon fill="black" stroke="black" points="79.25,-75.5 89.25,-72 79.25,-68.5 79.25,-75.5"/>
</g>
</g>
</svg>
diff --git a/chapter10b/docs/example2b.gv b/chapter10b/docs/example2b.gv
index 7ef10ec8..17b35910 100644
--- a/chapter10b/docs/example2b.gv
+++ b/chapter10b/docs/example2b.gv
@@ -3,8 +3,8 @@ digraph Memory {
node [shape=box];
P [label="MemPhi(x)"];
B [label="BulkMemPhi(All except x)"];
- Left -> P [label="slice x",color=blue]; Right -> P [label="slice x",color=blue];
- Left -> B; Right -> B;
- Region -> P [style=dashed]; Region -> B [style=dashed];
- P -> MemMerge [label="x",color=blue]; B -> MemMerge [label="default"];
+ P -> Left [label="slice x",color=blue]; P -> Right [label="slice x",color=blue];
+ B -> Left; B -> Right;
+ P -> Region [style=dashed]; B -> Region [style=dashed];
+ MemMerge -> P [label="x",color=blue]; MemMerge -> B [label="default"];
}
diff --git a/chapter10b/docs/example2b.svg b/chapter10b/docs/example2b.svg
index fae583e6..67d74ea8 100644
--- a/chapter10b/docs/example2b.svg
+++ b/chapter10b/docs/example2b.svg
@@ -4,98 +4,98 @@
<!-- Generated by graphviz version 12.2.0 (20241103.1931)
-->
<!-- Title: Memory Pages: 1 -->
-<svg width="456pt" height="163pt"
- viewBox="0.00 0.00 455.75 163.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 159)">
+<svg width="456pt" height="170pt"
+ viewBox="0.00 0.00 455.75 170.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 166)">
<title>Memory</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-159 451.75,-159 451.75,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-166 451.75,-166 451.75,4 -4,4"/>
<!-- P -->
<g id="node1" class="node">
<title>P</title>
-<polygon fill="none" stroke="black" points="249.12,-54 169.38,-54 169.38,-18 249.12,-18 249.12,-54"/>
-<text text-anchor="middle" x="209.25" y="-30.95" font-family="Times New Roman,serif" font-size="14.00">MemPhi(x)</text>
-</g>
-<!-- MemMerge -->
-<g id="node6" class="node">
-<title>MemMerge</title>
-<polygon fill="none" stroke="black" points="447.75,-81 365.75,-81 365.75,-45 447.75,-45 447.75,-81"/>
-<text text-anchor="middle" x="406.75" y="-57.95" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
-</g>
-<!-- P&#45;&gt;MemMerge -->
-<g id="edge7" class="edge">
-<title>P&#45;&gt;MemMerge</title>
-<path fill="none" stroke="blue" d="M249.6,-37.43C277.23,-38.89 314.95,-41.79 347.75,-47.5 349.91,-47.88 352.1,-48.29 354.31,-48.74"/>
-<polygon fill="blue" stroke="blue" points="353.39,-52.13 363.91,-50.9 354.92,-45.3 353.39,-52.13"/>
-<text text-anchor="middle" x="329" y="-50.7" font-family="Times New Roman,serif" font-size="14.00">x</text>
-</g>
-<!-- B -->
-<g id="node2" class="node">
-<title>B</title>
-<polygon fill="none" stroke="black" points="292.25,-109 126.25,-109 126.25,-73 292.25,-73 292.25,-109"/>
-<text text-anchor="middle" x="209.25" y="-85.95" font-family="Times New Roman,serif" font-size="14.00">BulkMemPhi(All except x)</text>
-</g>
-<!-- B&#45;&gt;MemMerge -->
-<g id="edge8" class="edge">
-<title>B&#45;&gt;MemMerge</title>
-<path fill="none" stroke="black" d="M292.59,-79.21C313.42,-76.22 335.2,-73.1 354.03,-70.41"/>
-<polygon fill="black" stroke="black" points="354.44,-73.88 363.84,-69 353.45,-66.96 354.44,-73.88"/>
-<text text-anchor="middle" x="329" y="-79.36" font-family="Times New Roman,serif" font-size="14.00">default</text>
+<polygon fill="none" stroke="black" points="278.38,-67 198.62,-67 198.62,-31 278.38,-31 278.38,-67"/>
+<text text-anchor="middle" x="238.5" y="-43.95" font-family="Times New Roman,serif" font-size="14.00">MemPhi(x)</text>
</g>
<!-- Left -->
<g id="node3" class="node">
<title>Left</title>
-<polygon fill="none" stroke="black" points="54.5,-97 0.5,-97 0.5,-61 54.5,-61 54.5,-97"/>
-<text text-anchor="middle" x="27.5" y="-73.95" font-family="Times New Roman,serif" font-size="14.00">Left</text>
+<polygon fill="none" stroke="black" points="447.25,-102 393.25,-102 393.25,-66 447.25,-66 447.25,-102"/>
+<text text-anchor="middle" x="420.25" y="-78.95" font-family="Times New Roman,serif" font-size="14.00">Left</text>
</g>
-<!-- Left&#45;&gt;P -->
+<!-- P&#45;&gt;Left -->
<g id="edge1" class="edge">
-<title>Left&#45;&gt;P</title>
-<path fill="none" stroke="blue" d="M54.57,-67.8C60.55,-65.5 66.94,-63.25 73,-61.5 100.58,-53.55 132.05,-47.45 157.69,-43.21"/>
-<polygon fill="blue" stroke="blue" points="158.21,-46.67 167.53,-41.63 157.1,-39.76 158.21,-46.67"/>
-<text text-anchor="middle" x="90.62" y="-64.7" font-family="Times New Roman,serif" font-size="14.00">slice x</text>
-</g>
-<!-- Left&#45;&gt;B -->
-<g id="edge3" class="edge">
-<title>Left&#45;&gt;B</title>
-<path fill="none" stroke="black" d="M54.64,-80.74C70.8,-81.82 92.62,-83.28 114.74,-84.76"/>
-<polygon fill="black" stroke="black" points="114.23,-88.23 124.44,-85.4 114.69,-81.25 114.23,-88.23"/>
+<title>P&#45;&gt;Left</title>
+<path fill="none" stroke="blue" d="M278.66,-45.11C306.2,-43.68 343.56,-44.4 374.75,-54.5 378.99,-55.87 383.21,-57.77 387.27,-59.95"/>
+<polygon fill="blue" stroke="blue" points="385.27,-62.84 395.64,-65.02 388.9,-56.85 385.27,-62.84"/>
+<text text-anchor="middle" x="357.12" y="-57.7" font-family="Times New Roman,serif" font-size="14.00">slice x</text>
</g>
<!-- Right -->
<g id="node4" class="node">
<title>Right</title>
-<polygon fill="none" stroke="black" points="54.5,-155 0.5,-155 0.5,-119 54.5,-119 54.5,-155"/>
-<text text-anchor="middle" x="27.5" y="-131.95" font-family="Times New Roman,serif" font-size="14.00">Right</text>
+<polygon fill="none" stroke="black" points="447.25,-162 393.25,-162 393.25,-126 447.25,-126 447.25,-162"/>
+<text text-anchor="middle" x="420.25" y="-138.95" font-family="Times New Roman,serif" font-size="14.00">Right</text>
</g>
-<!-- Right&#45;&gt;P -->
+<!-- P&#45;&gt;Right -->
<g id="edge2" class="edge">
-<title>Right&#45;&gt;P</title>
-<path fill="none" stroke="blue" d="M54.87,-120.55C70.84,-110.17 91.32,-96.1 108.25,-82 116.94,-74.76 116.65,-69.98 126.25,-64 136.02,-57.91 147.27,-52.97 158.25,-49.02"/>
-<polygon fill="blue" stroke="blue" points="159.26,-52.37 167.63,-45.88 157.04,-45.73 159.26,-52.37"/>
-<text text-anchor="middle" x="90.62" y="-110.72" font-family="Times New Roman,serif" font-size="14.00">slice x</text>
-</g>
-<!-- Right&#45;&gt;B -->
-<g id="edge4" class="edge">
-<title>Right&#45;&gt;B</title>
-<path fill="none" stroke="black" d="M54.7,-143.04C70.42,-145.67 90.72,-147.29 108.25,-143 130.7,-137.51 153.73,-126.02 172.01,-115.23"/>
-<polygon fill="black" stroke="black" points="173.65,-118.33 180.36,-110.14 170,-112.35 173.65,-118.33"/>
+<title>P&#45;&gt;Right</title>
+<path fill="none" stroke="blue" d="M278.82,-64.2C306.43,-75.51 343.81,-92.12 374.75,-110.5 379.08,-113.07 383.48,-115.98 387.76,-118.98"/>
+<polygon fill="blue" stroke="blue" points="385.46,-121.64 395.6,-124.72 389.6,-115.99 385.46,-121.64"/>
+<text text-anchor="middle" x="357.12" y="-113.7" font-family="Times New Roman,serif" font-size="14.00">slice x</text>
</g>
<!-- Region -->
<g id="node5" class="node">
<title>Region</title>
-<polygon fill="none" stroke="black" points="55,-36 0,-36 0,0 55,0 55,-36"/>
-<text text-anchor="middle" x="27.5" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Region</text>
+<polygon fill="none" stroke="black" points="447.75,-36 392.75,-36 392.75,0 447.75,0 447.75,-36"/>
+<text text-anchor="middle" x="420.25" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Region</text>
</g>
-<!-- Region&#45;&gt;P -->
+<!-- P&#45;&gt;Region -->
<g id="edge5" class="edge">
-<title>Region&#45;&gt;P</title>
-<path fill="none" stroke="black" stroke-dasharray="5,2" d="M55.32,-16.6C61.15,-16.35 67.28,-16.13 73,-16 88.66,-15.65 92.66,-14.46 108.25,-16 124.55,-17.61 142.14,-20.68 157.95,-23.93"/>
-<polygon fill="black" stroke="black" points="157.11,-27.33 167.62,-25.99 158.57,-20.48 157.11,-27.33"/>
+<title>P&#45;&gt;Region</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M275.99,-30.51C294.51,-22.15 317.65,-13.21 339.5,-9 353.05,-6.39 368.04,-7.15 381.34,-9.05"/>
+<polygon fill="black" stroke="black" points="380.57,-12.47 391.02,-10.71 381.75,-5.57 380.57,-12.47"/>
</g>
-<!-- Region&#45;&gt;B -->
+<!-- B -->
+<g id="node2" class="node">
+<title>B</title>
+<polygon fill="none" stroke="black" points="321.5,-132 155.5,-132 155.5,-96 321.5,-96 321.5,-132"/>
+<text text-anchor="middle" x="238.5" y="-108.95" font-family="Times New Roman,serif" font-size="14.00">BulkMemPhi(All except x)</text>
+</g>
+<!-- B&#45;&gt;Left -->
+<g id="edge3" class="edge">
+<title>B&#45;&gt;Left</title>
+<path fill="none" stroke="black" d="M321.72,-119C339.48,-118.2 357.95,-115.9 374.75,-111 377.84,-110.1 380.93,-108.93 383.97,-107.57"/>
+<polygon fill="black" stroke="black" points="385.33,-110.81 392.62,-103.12 382.13,-104.58 385.33,-110.81"/>
+</g>
+<!-- B&#45;&gt;Right -->
+<g id="edge4" class="edge">
+<title>B&#45;&gt;Right</title>
+<path fill="none" stroke="black" d="M321.75,-127.73C342.83,-131.25 364.47,-134.86 382,-137.78"/>
+<polygon fill="black" stroke="black" points="380.94,-141.15 391.38,-139.35 382.09,-134.25 380.94,-141.15"/>
+</g>
+<!-- B&#45;&gt;Region -->
<g id="edge6" class="edge">
-<title>Region&#45;&gt;B</title>
-<path fill="none" stroke="black" stroke-dasharray="5,2" d="M48.17,-36.19C55.53,-42.23 64.24,-48.55 73,-53 86.08,-59.65 100.48,-65.27 114.87,-69.98"/>
-<polygon fill="black" stroke="black" points="113.8,-73.32 124.39,-72.96 115.89,-66.63 113.8,-73.32"/>
+<title>B&#45;&gt;Region</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M280.68,-95.69C293.83,-89.64 308.37,-82.73 321.5,-76 345.68,-63.61 351.41,-59.9 374.75,-46 377.38,-44.43 380.08,-42.8 382.8,-41.14"/>
+<polygon fill="black" stroke="black" points="384.61,-44.13 391.27,-35.89 380.92,-38.18 384.61,-44.13"/>
+</g>
+<!-- MemMerge -->
+<g id="node6" class="node">
+<title>MemMerge</title>
+<polygon fill="none" stroke="black" points="82,-94 0,-94 0,-58 82,-58 82,-94"/>
+<text text-anchor="middle" x="41" y="-70.95" font-family="Times New Roman,serif" font-size="14.00">MemMerge</text>
+</g>
+<!-- MemMerge&#45;&gt;P -->
+<g id="edge7" class="edge">
+<title>MemMerge&#45;&gt;P</title>
+<path fill="none" stroke="blue" d="M82.36,-64.23C88.24,-62.81 94.25,-61.5 100,-60.5 128.58,-55.53 160.88,-52.69 186.99,-51.07"/>
+<polygon fill="blue" stroke="blue" points="186.85,-54.59 196.64,-50.52 186.45,-47.6 186.85,-54.59"/>
+<text text-anchor="middle" x="118.75" y="-63.7" font-family="Times New Roman,serif" font-size="14.00">x</text>
+</g>
+<!-- MemMerge&#45;&gt;B -->
+<g id="edge8" class="edge">
+<title>MemMerge&#45;&gt;B</title>
+<path fill="none" stroke="black" d="M82.03,-83.78C100.1,-87.29 122.25,-91.6 144.12,-95.85"/>
+<polygon fill="black" stroke="black" points="143.19,-99.23 153.67,-97.71 144.52,-92.36 143.19,-99.23"/>
+<text text-anchor="middle" x="118.75" y="-97.06" font-family="Times New Roman,serif" font-size="14.00">default</text>
</g>
</g>
</svg>
diff --git a/chapter10b/docs/example2c.gv b/chapter10b/docs/example2c.gv
index fb827b3e..7a0562ee 100644
--- a/chapter10b/docs/example2c.gv
+++ b/chapter10b/docs/example2c.gv
@@ -4,7 +4,7 @@ digraph Memory {
M [label="Prior x memory"];
L [label="Load p.x"];
S [label="Store p.x"];
- M -> L [color=blue]; M -> S [color=blue];
- L -> S [style=dashed,label="execute load first"];
+ L -> M [color=blue]; S -> M [color=blue];
+ S -> L [style=dashed,label="execute load first"];
Y [label="Store p.y: independent"];
}
diff --git a/chapter10b/docs/example2c.svg b/chapter10b/docs/example2c.svg
index d8e5cf96..1d51ccca 100644
--- a/chapter10b/docs/example2c.svg
+++ b/chapter10b/docs/example2c.svg
@@ -4,53 +4,53 @@
<!-- Generated by graphviz version 12.2.0 (20241103.1931)
-->
<!-- Title: Memory Pages: 1 -->
-<svg width="444pt" height="98pt"
- viewBox="0.00 0.00 444.00 98.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
-<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 94)">
+<svg width="482pt" height="121pt"
+ viewBox="0.00 0.00 482.25 121.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
+<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 117)">
<title>Memory</title>
-<polygon fill="white" stroke="none" points="-4,4 -4,-94 440,-94 440,4 -4,4"/>
+<polygon fill="white" stroke="none" points="-4,4 -4,-117 478.25,-117 478.25,4 -4,4"/>
<!-- M -->
<g id="node1" class="node">
<title>M</title>
-<polygon fill="none" stroke="black" points="121.38,-36 17.62,-36 17.62,0 121.38,0 121.38,-36"/>
-<text text-anchor="middle" x="69.5" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Prior x memory</text>
+<polygon fill="none" stroke="black" points="474.25,-59 370.5,-59 370.5,-23 474.25,-23 474.25,-59"/>
+<text text-anchor="middle" x="422.38" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Prior x memory</text>
</g>
<!-- L -->
<g id="node2" class="node">
<title>L</title>
-<polygon fill="none" stroke="black" points="240.75,-70 176,-70 176,-34 240.75,-34 240.75,-70"/>
-<text text-anchor="middle" x="208.38" y="-46.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text>
+<polygon fill="none" stroke="black" points="333.5,-36 268.75,-36 268.75,0 333.5,0 333.5,-36"/>
+<text text-anchor="middle" x="301.12" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text>
</g>
-<!-- M&#45;&gt;L -->
+<!-- L&#45;&gt;M -->
<g id="edge1" class="edge">
-<title>M&#45;&gt;L</title>
-<path fill="none" stroke="blue" d="M121.86,-30.76C135.96,-34.26 151.1,-38.02 164.66,-41.39"/>
-<polygon fill="blue" stroke="blue" points="163.61,-44.73 174.16,-43.75 165.29,-37.94 163.61,-44.73"/>
+<title>L&#45;&gt;M</title>
+<path fill="none" stroke="blue" d="M333.77,-24.1C341.63,-25.62 350.33,-27.3 359.1,-28.99"/>
+<polygon fill="blue" stroke="blue" points="358.23,-32.39 368.71,-30.84 359.56,-25.51 358.23,-32.39"/>
</g>
<!-- S -->
<g id="node3" class="node">
<title>S</title>
-<polygon fill="none" stroke="black" points="436,-40 370.5,-40 370.5,-4 436,-4 436,-40"/>
-<text text-anchor="middle" x="403.25" y="-16.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x</text>
+<polygon fill="none" stroke="black" points="102.25,-59 36.75,-59 36.75,-23 102.25,-23 102.25,-59"/>
+<text text-anchor="middle" x="69.5" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x</text>
</g>
-<!-- M&#45;&gt;S -->
+<!-- S&#45;&gt;M -->
<g id="edge2" class="edge">
-<title>M&#45;&gt;S</title>
-<path fill="none" stroke="blue" d="M121.61,-18.62C186.66,-19.4 297.92,-20.74 358.98,-21.48"/>
-<polygon fill="blue" stroke="blue" points="358.58,-24.97 368.62,-21.59 358.66,-17.97 358.58,-24.97"/>
+<title>S&#45;&gt;M</title>
+<path fill="none" stroke="blue" d="M102.48,-45.13C118.77,-47.03 138.91,-49.06 157,-50 226.01,-53.58 305.22,-49.84 358.81,-46.15"/>
+<polygon fill="blue" stroke="blue" points="358.94,-49.65 368.67,-45.45 358.44,-42.67 358.94,-49.65"/>
</g>
-<!-- L&#45;&gt;S -->
+<!-- S&#45;&gt;L -->
<g id="edge3" class="edge">
-<title>L&#45;&gt;S</title>
-<path fill="none" stroke="black" stroke-dasharray="5,2" d="M241.22,-47.05C273.37,-42.05 323.25,-34.29 358.97,-28.73"/>
-<polygon fill="black" stroke="black" points="359.19,-32.24 368.54,-27.24 358.12,-25.32 359.19,-32.24"/>
-<text text-anchor="middle" x="305.62" y="-47.15" font-family="Times New Roman,serif" font-size="14.00">execute load first</text>
+<title>S&#45;&gt;L</title>
+<path fill="none" stroke="black" stroke-dasharray="5,2" d="M102.43,-37.8C142.7,-33.77 212.1,-26.82 257.04,-22.32"/>
+<polygon fill="black" stroke="black" points="257.36,-25.8 266.96,-21.32 256.66,-18.84 257.36,-25.8"/>
+<text text-anchor="middle" x="203.88" y="-35.44" font-family="Times New Roman,serif" font-size="14.00">execute load first</text>
</g>
<!-- Y -->
<g id="node4" class="node">
<title>Y</title>
-<polygon fill="none" stroke="black" points="139,-90 0,-90 0,-54 139,-54 139,-90"/>
-<text text-anchor="middle" x="69.5" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Store p.y: independent</text>
+<polygon fill="none" stroke="black" points="139,-113 0,-113 0,-77 139,-77 139,-113"/>
+<text text-anchor="middle" x="69.5" y="-89.95" font-family="Times New Roman,serif" font-size="14.00">Store p.y: independent</text>
</g>
</g>
</svg>