summaryrefslogtreecommitdiff
path: root/chapter05/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'chapter05/README.md')
-rw-r--r--chapter05/README.md6
1 files changed, 5 insertions, 1 deletions
diff --git a/chapter05/README.md b/chapter05/README.md
index 88bacbfc..7337da33 100644
--- a/chapter05/README.md
+++ b/chapter05/README.md
@@ -41,7 +41,7 @@ Here is a recap of the nodes introduced in previous chapters:
|-----------|----------------|---------|------------------------------------------------|-------------------------------------------------------------------------------|----------------------------------------------------------------------------|
| Multi | Abstract class | 4 | A node that has a tuple result | | A tuple |
| Start | Control | 1 | Start of function, now a MultiNode | | A tuple with a ctrl token and an `arg` data node |
-| Proj | Data | 4 | Projection nodes extract values from MultiNode | A MultiNode and index | Result is the extracted value from the input MultiNode at offset index |
+| Proj | Data / Control | 4 | Projection nodes extract values from MultiNode | A MultiNode and index | Result is the extracted value from the input MultiNode at offset index |
| Bool | Data | 4 | Represents results of a comparison operator | Two data nodes | Result is a comparison, represented as integer value where 1=true, 0=false |
| Not | Data | 4 | Logical not | One data node | Result converts 0 to 1 and vice versa |
| Return | Control | 1 | End of function | Predecessor control node and a data node for the return value of the function | Return value of the function |
@@ -53,6 +53,10 @@ Here is a recap of the nodes introduced in previous chapters:
| Minus | Data | 2 | Negate a value | One data node which value is negated | Result of the negation |
| Scope | Symbol Table | 3 | Represents scopes in the graph | Nodes that represent the current value of variables | None |
+> A `Proj` is a control node when it projects a control slot: `Proj#0` off `Start`,
+> and both projections off an `If`. Every other projection is a data node.
+> See `ProjNode.isCFG()`.
+
## New Nodes
The following new nodes are introduced in this chapter: