diff options
Diffstat (limited to 'chapter10a')
| -rw-r--r-- | chapter10a/README.md | 4 | ||||
| -rw-r--r-- | chapter10a/docs/example1.gv | 4 | ||||
| -rw-r--r-- | chapter10a/docs/example1.svg | 64 | ||||
| -rw-r--r-- | chapter10a/docs/example2a.gv | 4 | ||||
| -rw-r--r-- | chapter10a/docs/example2a.svg | 92 | ||||
| -rw-r--r-- | chapter10a/docs/example2b.gv | 4 | ||||
| -rw-r--r-- | chapter10a/docs/example2b.svg | 80 | ||||
| -rw-r--r-- | chapter10a/docs/example2c.gv | 4 | ||||
| -rw-r--r-- | chapter10a/docs/example2c.svg | 46 |
9 files changed, 151 insertions, 151 deletions
diff --git a/chapter10a/README.md b/chapter10a/README.md index 30db40d3..64600fa0 100644 --- a/chapter10a/README.md +++ b/chapter10a/README.md @@ -30,8 +30,8 @@ different fields are independent. Chapter 10b will remove it.  -These diagrams are schematic dependency graphs: arrows run from definitions to -uses. Pointer and value inputs are omitted where they do not explain ordering. +These diagrams are schematic dependency graphs: arrows run from uses to their +definitions. Pointer and value inputs are omitted where they do not explain ordering. | Node | Inputs | Result | |---|---|---| diff --git a/chapter10a/docs/example1.gv b/chapter10a/docs/example1.gv index 38214174..e34c73ed 100644 --- a/chapter10a/docs/example1.gv +++ b/chapter10a/docs/example1.gv @@ -5,6 +5,6 @@ digraph Memory { X [label="Store p.x = 3"]; Y [label="Store p.y = arg"]; L [label="Load p.x"]; - M0 -> X -> Y -> L [color=blue]; - Y -> Return [color=blue]; L -> Return; + L -> Y -> X -> M0 [color=blue]; + Return -> Y [color=blue]; Return -> L; } diff --git a/chapter10a/docs/example1.svg b/chapter10a/docs/example1.svg index 7ae4b560..c0668ce3 100644 --- a/chapter10a/docs/example1.svg +++ b/chapter10a/docs/example1.svg @@ -12,62 +12,62 @@ <!-- M0 --> <g id="node1" class="node"> <title>M0</title> -<polygon fill="none" stroke="black" points="98.5,-36 0,-36 0,0 98.5,0 98.5,-36"/> -<text text-anchor="middle" x="49.25" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Initial memory</text> +<polygon fill="none" stroke="black" points="547.75,-59 449.25,-59 449.25,-23 547.75,-23 547.75,-59"/> +<text text-anchor="middle" x="498.5" y="-35.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.5,-36 134.5,-36 134.5,0 222.5,0 222.5,-36"/> -<text text-anchor="middle" x="178.5" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x = 3</text> +<polygon fill="none" stroke="black" points="413.25,-59 325.25,-59 325.25,-23 413.25,-23 413.25,-59"/> +<text text-anchor="middle" x="369.25" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x = 3</text> </g> -<!-- M0->X --> -<g id="edge1" class="edge"> -<title>M0->X</title> -<path fill="none" stroke="blue" d="M98.72,-18C106.55,-18 114.71,-18 122.68,-18"/> -<polygon fill="blue" stroke="blue" points="122.65,-21.5 132.65,-18 122.65,-14.5 122.65,-21.5"/> +<!-- X->M0 --> +<g id="edge3" class="edge"> +<title>X->M0</title> +<path fill="none" stroke="blue" d="M413.69,-41C421.42,-41 429.59,-41 437.69,-41"/> +<polygon fill="blue" stroke="blue" points="437.51,-44.5 447.51,-41 437.51,-37.5 437.51,-44.5"/> </g> <!-- Y --> <g id="node3" class="node"> <title>Y</title> -<polygon fill="none" stroke="black" points="357,-36 258.5,-36 258.5,0 357,0 357,-36"/> -<text text-anchor="middle" x="307.75" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Store p.y = arg</text> +<polygon fill="none" stroke="black" points="289.25,-59 190.75,-59 190.75,-23 289.25,-23 289.25,-59"/> +<text text-anchor="middle" x="240" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Store p.y = arg</text> </g> -<!-- X->Y --> +<!-- Y->X --> <g id="edge2" class="edge"> -<title>X->Y</title> -<path fill="none" stroke="blue" d="M222.94,-18C230.67,-18 238.84,-18 246.94,-18"/> -<polygon fill="blue" stroke="blue" points="246.76,-21.5 256.76,-18 246.76,-14.5 246.76,-21.5"/> +<title>Y->X</title> +<path fill="none" stroke="blue" d="M289.47,-41C297.3,-41 305.46,-41 313.43,-41"/> +<polygon fill="blue" stroke="blue" points="313.4,-44.5 323.4,-41 313.4,-37.5 313.4,-44.5"/> </g> <!-- L --> <g id="node4" class="node"> <title>L</title> -<polygon fill="none" stroke="black" points="457.75,-59 393,-59 393,-23 457.75,-23 457.75,-59"/> -<text text-anchor="middle" x="425.38" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text> +<polygon fill="none" stroke="black" points="154.75,-36 90,-36 90,0 154.75,0 154.75,-36"/> +<text text-anchor="middle" x="122.38" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text> </g> -<!-- Y->L --> -<g id="edge3" class="edge"> -<title>Y->L</title> -<path fill="none" stroke="blue" d="M357.45,-27.69C365.41,-29.27 373.61,-30.9 381.42,-32.46"/> -<polygon fill="blue" stroke="blue" points="380.54,-35.85 391.03,-34.37 381.9,-28.98 380.54,-35.85"/> +<!-- L->Y --> +<g id="edge1" class="edge"> +<title>L->Y</title> +<path fill="none" stroke="blue" d="M154.97,-24.28C162.59,-25.8 170.99,-27.47 179.44,-29.15"/> +<polygon fill="blue" stroke="blue" points="178.53,-32.54 189.02,-31.06 179.9,-25.68 178.53,-32.54"/> </g> <!-- Return --> <g id="node5" class="node"> <title>Return</title> -<polygon fill="none" stroke="black" points="547.75,-36 493.75,-36 493.75,0 547.75,0 547.75,-36"/> -<text text-anchor="middle" x="520.75" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Return</text> +<polygon fill="none" stroke="black" points="54,-59 0,-59 0,-23 54,-23 54,-59"/> +<text text-anchor="middle" x="27" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Return</text> </g> -<!-- Y->Return --> +<!-- Return->Y --> <g id="edge4" class="edge"> -<title>Y->Return</title> -<path fill="none" stroke="blue" d="M357.3,-15.3C368.98,-14.76 381.44,-14.27 393,-14 421.77,-13.32 428.99,-13.07 457.75,-14 465.65,-14.25 474.1,-14.69 482.14,-15.18"/> -<polygon fill="blue" stroke="blue" points="481.8,-18.67 492.01,-15.83 482.26,-11.68 481.8,-18.67"/> +<title>Return->Y</title> +<path fill="none" stroke="blue" d="M54.23,-43.07C65.26,-43.84 78.25,-44.62 90,-45 118.76,-45.93 125.98,-45.68 154.75,-45 162.61,-44.81 170.88,-44.53 179.04,-44.2"/> +<polygon fill="blue" stroke="blue" points="179.1,-47.7 188.94,-43.76 178.8,-40.7 179.1,-47.7"/> </g> -<!-- L->Return --> +<!-- Return->L --> <g id="edge5" class="edge"> -<title>L->Return</title> -<path fill="none" stroke="black" d="M458.25,-33.15C466,-31.24 474.37,-29.18 482.36,-27.21"/> -<polygon fill="black" stroke="black" points="482.95,-30.67 491.82,-24.88 481.28,-23.87 482.95,-30.67"/> +<title>Return->L</title> +<path fill="none" stroke="black" d="M54.01,-34.59C61.58,-32.73 70.06,-30.64 78.37,-28.59"/> +<polygon fill="black" stroke="black" points="79.18,-32 88.05,-26.21 77.51,-25.2 79.18,-32"/> </g> </g> </svg> diff --git a/chapter10a/docs/example2a.gv b/chapter10a/docs/example2a.gv index 13fd75e0..64e774fc 100644 --- a/chapter10a/docs/example2a.gv +++ b/chapter10a/docs/example2a.gv @@ -5,6 +5,6 @@ digraph Memory { A [label="True: Store x"]; B [label="False: Store y"]; P [label="Phi(memory)"]; - M -> A -> P [color=blue]; M -> B -> P [color=blue]; - Region -> P [style=dashed]; P -> Return [color=blue]; + P -> A -> M [color=blue]; P -> B -> M [color=blue]; + P -> Region [style=dashed]; Return -> P [color=blue]; } diff --git a/chapter10a/docs/example2a.svg b/chapter10a/docs/example2a.svg index 1752659e..c6801f59 100644 --- a/chapter10a/docs/example2a.svg +++ b/chapter10a/docs/example2a.svg @@ -12,74 +12,74 @@ <!-- M --> <g id="node1" class="node"> <title>M</title> -<polygon fill="none" stroke="black" points="118.75,-117 0,-117 0,-81 118.75,-81 118.75,-117"/> -<text text-anchor="middle" x="59.38" y="-93.95" font-family="Times New Roman,serif" font-size="14.00">Incoming memory</text> +<polygon fill="none" stroke="black" points="461.25,-117 342.5,-117 342.5,-81 461.25,-81 461.25,-117"/> +<text text-anchor="middle" x="401.88" y="-93.95" font-family="Times New Roman,serif" font-size="14.00">Incoming memory</text> </g> <!-- A --> <g id="node2" class="node"> <title>A</title> -<polygon fill="none" stroke="black" points="244.25,-144 156.25,-144 156.25,-108 244.25,-108 244.25,-144"/> -<text text-anchor="middle" x="200.25" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">True: Store x</text> +<polygon fill="none" stroke="black" points="305,-144 217,-144 217,-108 305,-108 305,-144"/> +<text text-anchor="middle" x="261" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">True: Store x</text> </g> -<!-- M->A --> -<g id="edge1" class="edge"> -<title>M->A</title> -<path fill="none" stroke="blue" d="M118.87,-110.37C127.53,-112.06 136.42,-113.78 144.99,-115.45"/> -<polygon fill="blue" stroke="blue" points="144.05,-118.83 154.53,-117.31 145.38,-111.96 144.05,-118.83"/> +<!-- A->M --> +<g id="edge2" class="edge"> +<title>A->M</title> +<path fill="none" stroke="blue" d="M305.18,-117.61C313.41,-116.01 322.22,-114.29 331.03,-112.58"/> +<polygon fill="blue" stroke="blue" points="331.53,-116.05 340.67,-110.7 330.19,-109.18 331.53,-116.05"/> </g> <!-- B --> <g id="node3" class="node"> <title>B</title> -<polygon fill="none" stroke="black" points="245.75,-90 154.75,-90 154.75,-54 245.75,-54 245.75,-90"/> -<text text-anchor="middle" x="200.25" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">False: Store y</text> +<polygon fill="none" stroke="black" points="306.5,-90 215.5,-90 215.5,-54 306.5,-54 306.5,-90"/> +<text text-anchor="middle" x="261" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">False: Store y</text> </g> -<!-- M->B --> -<g id="edge3" class="edge"> -<title>M->B</title> -<path fill="none" stroke="blue" d="M118.87,-87.63C126.93,-86.06 135.19,-84.45 143.21,-82.9"/> -<polygon fill="blue" stroke="blue" points="143.7,-86.37 152.84,-81.02 142.36,-79.5 143.7,-86.37"/> +<!-- B->M --> +<g id="edge4" class="edge"> +<title>B->M</title> +<path fill="none" stroke="blue" d="M306.71,-80.69C314.45,-82.2 322.66,-83.79 330.88,-85.39"/> +<polygon fill="blue" stroke="blue" points="330.09,-88.8 340.57,-87.28 331.42,-81.93 330.09,-88.8"/> </g> <!-- P --> <g id="node4" class="node"> <title>P</title> -<polygon fill="none" stroke="black" points="371.25,-90 281.75,-90 281.75,-54 371.25,-54 371.25,-90"/> -<text text-anchor="middle" x="326.5" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Phi(memory)</text> -</g> -<!-- A->P --> -<g id="edge2" class="edge"> -<title>A->P</title> -<path fill="none" stroke="blue" d="M243.66,-107.57C253.06,-103.48 263.13,-99.11 272.87,-94.87"/> -<polygon fill="blue" stroke="blue" points="274.11,-98.15 281.89,-90.95 271.32,-91.73 274.11,-98.15"/> -</g> -<!-- B->P --> -<g id="edge4" class="edge"> -<title>B->P</title> -<path fill="none" stroke="blue" d="M246.11,-72C253.95,-72 262.19,-72 270.28,-72"/> -<polygon fill="blue" stroke="blue" points="270.03,-75.5 280.03,-72 270.03,-68.5 270.03,-75.5"/> +<polygon fill="none" stroke="black" points="179.5,-90 90,-90 90,-54 179.5,-54 179.5,-90"/> +<text text-anchor="middle" x="134.75" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Phi(memory)</text> </g> -<!-- Return --> -<g id="node6" class="node"> -<title>Return</title> -<polygon fill="none" stroke="black" points="461.25,-90 407.25,-90 407.25,-54 461.25,-54 461.25,-90"/> -<text text-anchor="middle" x="434.25" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Return</text> +<!-- P->A --> +<g id="edge1" class="edge"> +<title>P->A</title> +<path fill="none" stroke="blue" d="M178.16,-90.43C187.56,-94.52 197.63,-98.89 207.37,-103.13"/> +<polygon fill="blue" stroke="blue" points="205.82,-106.27 216.39,-107.05 208.61,-99.85 205.82,-106.27"/> </g> -<!-- P->Return --> -<g id="edge6" class="edge"> -<title>P->Return</title> -<path fill="none" stroke="blue" d="M371.73,-72C379.7,-72 387.94,-72 395.7,-72"/> -<polygon fill="blue" stroke="blue" points="395.49,-75.5 405.49,-72 395.49,-68.5 395.49,-75.5"/> +<!-- P->B --> +<g id="edge3" class="edge"> +<title>P->B</title> +<path fill="none" stroke="blue" d="M179.91,-72C187.59,-72 195.68,-72 203.64,-72"/> +<polygon fill="blue" stroke="blue" points="203.63,-75.5 213.63,-72 203.63,-68.5 203.63,-75.5"/> </g> <!-- Region --> <g id="node5" class="node"> <title>Region</title> -<polygon fill="none" stroke="black" points="227.75,-36 172.75,-36 172.75,0 227.75,0 227.75,-36"/> -<text text-anchor="middle" x="200.25" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Region</text> +<polygon fill="none" stroke="black" points="288.5,-36 233.5,-36 233.5,0 288.5,0 288.5,-36"/> +<text text-anchor="middle" x="261" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Region</text> </g> -<!-- Region->P --> +<!-- P->Region --> <g id="edge5" class="edge"> -<title>Region->P</title> -<path fill="none" stroke="black" stroke-dasharray="5,2" d="M228.21,-29.72C241.2,-35.36 257.25,-42.34 272.54,-48.98"/> -<polygon fill="black" stroke="black" points="271,-52.13 281.57,-52.91 273.79,-45.71 271,-52.13"/> +<title>P->Region</title> +<path fill="none" stroke="black" stroke-dasharray="5,2" d="M178.16,-53.57C192.73,-47.24 208.91,-40.21 223.01,-34.08"/> +<polygon fill="black" stroke="black" points="224.16,-37.39 231.94,-30.2 221.37,-30.97 224.16,-37.39"/> +</g> +<!-- Return --> +<g id="node6" class="node"> +<title>Return</title> +<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> +<!-- Return->P --> +<g id="edge6" class="edge"> +<title>Return->P</title> +<path fill="none" stroke="blue" d="M54.41,-72C61.73,-72 69.96,-72 78.28,-72"/> +<polygon fill="blue" stroke="blue" points="78.08,-75.5 88.08,-72 78.08,-68.5 78.08,-75.5"/> </g> </g> </svg> diff --git a/chapter10a/docs/example2b.gv b/chapter10a/docs/example2b.gv index 9db0f5fb..7ccbcc99 100644 --- a/chapter10a/docs/example2b.gv +++ b/chapter10a/docs/example2b.gv @@ -3,6 +3,6 @@ digraph Memory { node [shape=box]; P [label="Phi(memory)"]; S [label="Loop-body Store"]; - Entry -> P [color=blue]; P -> S -> P [color=blue]; - Loop -> P [style=dashed]; P -> Return [color=blue]; + P -> Entry [color=blue]; P -> S -> P [color=blue]; + P -> Loop [style=dashed]; Return -> P [color=blue]; } diff --git a/chapter10a/docs/example2b.svg b/chapter10a/docs/example2b.svg index 1f106d63..063a6f21 100644 --- a/chapter10a/docs/example2b.svg +++ b/chapter10a/docs/example2b.svg @@ -4,70 +4,70 @@ <!-- Generated by graphviz version 12.2.0 (20241103.1931) --> <!-- Title: Memory Pages: 1 --> -<svg width="332pt" height="125pt" - viewBox="0.00 0.00 331.75 125.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 121)"> +<svg width="332pt" height="152pt" + viewBox="0.00 0.00 331.75 152.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 148)"> <title>Memory</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-121 327.75,-121 327.75,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-148 327.75,-148 327.75,4 -4,4"/> <!-- P --> <g id="node1" class="node"> <title>P</title> -<polygon fill="none" stroke="black" points="179.5,-90 90,-90 90,-54 179.5,-54 179.5,-90"/> -<text text-anchor="middle" x="134.75" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Phi(memory)</text> +<polygon fill="none" stroke="black" points="179.5,-117 90,-117 90,-81 179.5,-81 179.5,-117"/> +<text text-anchor="middle" x="134.75" y="-93.95" font-family="Times New Roman,serif" font-size="14.00">Phi(memory)</text> </g> <!-- S --> <g id="node2" class="node"> <title>S</title> -<polygon fill="none" stroke="black" points="323.75,-90 215.5,-90 215.5,-54 323.75,-54 323.75,-90"/> -<text text-anchor="middle" x="269.62" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Loop-body Store</text> +<polygon fill="none" stroke="black" points="323.75,-144 215.5,-144 215.5,-108 323.75,-108 323.75,-144"/> +<text text-anchor="middle" x="269.62" y="-120.95" font-family="Times New Roman,serif" font-size="14.00">Loop-body Store</text> </g> <!-- P->S --> <g id="edge2" class="edge"> <title>P->S</title> -<path fill="none" stroke="blue" d="M180,-65.6C187.69,-65.35 195.84,-65.23 203.95,-65.25"/> -<polygon fill="blue" stroke="blue" points="203.79,-68.75 213.83,-65.35 203.87,-61.75 203.79,-68.75"/> -</g> -<!-- Return --> -<g id="node5" class="node"> -<title>Return</title> -<polygon fill="none" stroke="black" points="296.62,-36 242.62,-36 242.62,0 296.62,0 296.62,-36"/> -<text text-anchor="middle" x="269.62" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Return</text> -</g> -<!-- P->Return --> -<g id="edge5" class="edge"> -<title>P->Return</title> -<path fill="none" stroke="blue" d="M180,-54.02C196.8,-47.19 215.75,-39.49 231.8,-32.97"/> -<polygon fill="blue" stroke="blue" points="233.04,-36.24 240.98,-29.23 230.4,-29.76 233.04,-36.24"/> -</g> -<!-- S->P --> -<g id="edge3" class="edge"> -<title>S->P</title> -<path fill="none" stroke="blue" d="M215.34,-78.63C207.46,-78.78 199.33,-78.79 191.4,-78.67"/> -<polygon fill="blue" stroke="blue" points="191.59,-75.17 181.51,-78.44 191.42,-82.17 191.59,-75.17"/> +<path fill="none" stroke="blue" d="M180,-101.59C187.78,-102.92 196.03,-104.48 204.23,-106.17"/> +<polygon fill="blue" stroke="blue" points="203.35,-109.56 213.86,-108.23 204.81,-102.71 203.35,-109.56"/> </g> <!-- Entry --> <g id="node3" class="node"> <title>Entry</title> -<polygon fill="none" stroke="black" points="54,-117 0,-117 0,-81 54,-81 54,-117"/> -<text text-anchor="middle" x="27" y="-93.95" font-family="Times New Roman,serif" font-size="14.00">Entry</text> +<polygon fill="none" stroke="black" points="296.62,-90 242.62,-90 242.62,-54 296.62,-54 296.62,-90"/> +<text text-anchor="middle" x="269.62" y="-66.95" font-family="Times New Roman,serif" font-size="14.00">Entry</text> </g> -<!-- Entry->P --> +<!-- P->Entry --> <g id="edge1" class="edge"> -<title>Entry->P</title> -<path fill="none" stroke="blue" d="M54.41,-92.26C61.81,-90.37 70.15,-88.24 78.56,-86.09"/> -<polygon fill="blue" stroke="blue" points="79.3,-89.51 88.12,-83.65 77.57,-82.73 79.3,-89.51"/> +<title>P->Entry</title> +<path fill="none" stroke="blue" d="M180,-90.01C196.64,-86.63 215.39,-82.82 231.34,-79.58"/> +<polygon fill="blue" stroke="blue" points="231.8,-83.05 240.9,-77.63 230.41,-76.19 231.8,-83.05"/> </g> <!-- Loop --> <g id="node4" class="node"> <title>Loop</title> -<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">Loop</text> +<polygon fill="none" stroke="black" points="296.62,-36 242.62,-36 242.62,0 296.62,0 296.62,-36"/> +<text text-anchor="middle" x="269.62" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Loop</text> </g> -<!-- Loop->P --> +<!-- P->Loop --> <g id="edge4" class="edge"> -<title>Loop->P</title> -<path fill="none" stroke="black" stroke-dasharray="5,2" d="M54.41,-51.74C61.81,-53.63 70.15,-55.76 78.56,-57.91"/> -<polygon fill="black" stroke="black" points="77.57,-61.27 88.12,-60.35 79.3,-54.49 77.57,-61.27"/> +<title>P->Loop</title> +<path fill="none" stroke="black" stroke-dasharray="5,2" d="M161.08,-80.66C176.5,-69.79 196.77,-56.04 215.5,-45 220.85,-41.85 226.61,-38.69 232.29,-35.7"/> +<polygon fill="black" stroke="black" points="233.69,-38.92 240.99,-31.24 230.49,-32.69 233.69,-38.92"/> +</g> +<!-- S->P --> +<g id="edge3" class="edge"> +<title>S->P</title> +<path fill="none" stroke="blue" d="M215.34,-121.8C207.37,-120.33 199.14,-118.67 191.13,-116.92"/> +<polygon fill="blue" stroke="blue" points="192,-113.53 181.47,-114.73 190.45,-120.35 192,-113.53"/> +</g> +<!-- Return --> +<g id="node5" class="node"> +<title>Return</title> +<polygon fill="none" stroke="black" points="54,-117 0,-117 0,-81 54,-81 54,-117"/> +<text text-anchor="middle" x="27" y="-93.95" font-family="Times New Roman,serif" font-size="14.00">Return</text> +</g> +<!-- Return->P --> +<g id="edge5" class="edge"> +<title>Return->P</title> +<path fill="none" stroke="blue" d="M54.41,-99C61.73,-99 69.96,-99 78.28,-99"/> +<polygon fill="blue" stroke="blue" points="78.08,-102.5 88.08,-99 78.08,-95.5 78.08,-102.5"/> </g> </g> </svg> diff --git a/chapter10a/docs/example2c.gv b/chapter10a/docs/example2c.gv index 0a9f0462..0c7cf67d 100644 --- a/chapter10a/docs/example2c.gv +++ b/chapter10a/docs/example2c.gv @@ -4,6 +4,6 @@ digraph Memory { M [label="Prior 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"]; } diff --git a/chapter10a/docs/example2c.svg b/chapter10a/docs/example2c.svg index 90f90920..a4d2f53e 100644 --- a/chapter10a/docs/example2c.svg +++ b/chapter10a/docs/example2c.svg @@ -4,47 +4,47 @@ <!-- Generated by graphviz version 12.2.0 (20241103.1931) --> <!-- Title: Memory Pages: 1 --> -<svg width="398pt" height="78pt" - viewBox="0.00 0.00 398.25 78.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 74)"> +<svg width="398pt" height="67pt" + viewBox="0.00 0.00 398.25 67.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 63)"> <title>Memory</title> -<polygon fill="white" stroke="none" points="-4,4 -4,-74 394.25,-74 394.25,4 -4,4"/> +<polygon fill="white" stroke="none" points="-4,4 -4,-63 394.25,-63 394.25,4 -4,4"/> <!-- M --> <g id="node1" class="node"> <title>M</title> -<polygon fill="none" stroke="black" points="93.25,-36 0,-36 0,0 93.25,0 93.25,-36"/> -<text text-anchor="middle" x="46.62" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Prior memory</text> +<polygon fill="none" stroke="black" points="390.25,-59 297,-59 297,-23 390.25,-23 390.25,-59"/> +<text text-anchor="middle" x="343.62" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Prior memory</text> </g> <!-- L --> <g id="node2" class="node"> <title>L</title> -<polygon fill="none" stroke="black" points="195,-70 130.25,-70 130.25,-34 195,-34 195,-70"/> -<text text-anchor="middle" x="162.62" y="-46.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text> +<polygon fill="none" stroke="black" points="260,-36 195.25,-36 195.25,0 260,0 260,-36"/> +<text text-anchor="middle" x="227.62" y="-12.95" font-family="Times New Roman,serif" font-size="14.00">Load p.x</text> </g> -<!-- M->L --> +<!-- L->M --> <g id="edge1" class="edge"> -<title>M->L</title> -<path fill="none" stroke="blue" d="M93.66,-31.73C101.99,-34.21 110.64,-36.79 118.87,-39.25"/> -<polygon fill="blue" stroke="blue" points="117.72,-42.56 128.31,-42.06 119.73,-35.85 117.72,-42.56"/> +<title>L->M</title> +<path fill="none" stroke="blue" d="M260.38,-24.41C268.17,-25.98 276.74,-27.71 285.33,-29.44"/> +<polygon fill="blue" stroke="blue" points="284.57,-32.86 295.07,-31.41 285.96,-26 284.57,-32.86"/> </g> <!-- S --> <g id="node3" class="node"> <title>S</title> -<polygon fill="none" stroke="black" points="390.25,-40 324.75,-40 324.75,-4 390.25,-4 390.25,-40"/> -<text text-anchor="middle" x="357.5" y="-16.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x</text> +<polygon fill="none" stroke="black" points="65.5,-59 0,-59 0,-23 65.5,-23 65.5,-59"/> +<text text-anchor="middle" x="32.75" y="-35.95" font-family="Times New Roman,serif" font-size="14.00">Store p.x</text> </g> -<!-- M->S --> +<!-- S->M --> <g id="edge2" class="edge"> -<title>M->S</title> -<path fill="none" stroke="blue" d="M93.53,-18.59C152.81,-19.36 255.2,-20.69 313.19,-21.44"/> -<polygon fill="blue" stroke="blue" points="312.95,-24.94 323,-21.57 313.04,-17.94 312.95,-24.94"/> +<title>S->M</title> +<path fill="none" stroke="blue" d="M65.75,-47.66C71.63,-48.63 77.73,-49.48 83.5,-50 152.69,-56.21 232.63,-51.66 285.21,-47.07"/> +<polygon fill="blue" stroke="blue" points="285.51,-50.56 295.15,-46.17 284.88,-43.59 285.51,-50.56"/> </g> -<!-- L->S --> +<!-- S->L --> <g id="edge3" class="edge"> -<title>L->S</title> -<path fill="none" stroke="black" stroke-dasharray="5,2" d="M195.47,-47.05C227.62,-42.05 277.5,-34.29 313.22,-28.73"/> -<polygon fill="black" stroke="black" points="313.44,-32.24 322.79,-27.24 312.37,-25.32 313.44,-32.24"/> -<text text-anchor="middle" x="259.88" y="-47.15" font-family="Times New Roman,serif" font-size="14.00">execute load first</text> +<title>S->L</title> +<path fill="none" stroke="black" stroke-dasharray="5,2" d="M65.84,-35.96C71.71,-35.1 77.78,-34.24 83.5,-33.5 117.16,-29.14 155.38,-25.05 183.85,-22.16"/> +<polygon fill="black" stroke="black" points="183.92,-25.67 193.52,-21.19 183.22,-18.71 183.92,-25.67"/> +<text text-anchor="middle" x="130.38" y="-36.7" font-family="Times New Roman,serif" font-size="14.00">execute load first</text> </g> </g> </svg> |
