summaryrefslogtreecommitdiff
path: root/chapter09/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'chapter09/README.md')
-rw-r--r--chapter09/README.md8
1 files changed, 8 insertions, 0 deletions
diff --git a/chapter09/README.md b/chapter09/README.md
index 9c9eba07..5aa74a3b 100644
--- a/chapter09/README.md
+++ b/chapter09/README.md
@@ -187,6 +187,10 @@ Changes:
## Common SubExpressions via GVN
+These diagrams focus on value dependencies. Routine control flow is omitted;
+small True/False projections distinguish the two Returns in the first example.
+Empty control slots can stand for omitted context, not missing compiler inputs.
+
### Example 1
Here is a small example that illustrates how GVN enables finding common sub-expressions.
@@ -245,6 +249,10 @@ return arg;
While parsing the `while` loop it is not yet known that `step` is a constant and will not change. Therefore,
without the post parse optimization we get the following:
+The loop test and control backedge are omitted in both diagrams. The Phi's
+data backedge remains, making the repeated additions and their replacement
+easy to compare; its input 1 is the entry value and input 2 the next iteration.
+
![Graph5](./docs/09-graph5.svg)
Enabling the post parse worklist based optimization yields below. Notice that now the graph shows `arg+2` inside the