diff options
| author | Symious <14933944+symious@users.noreply.github.com> | 2026-09-10 04:50:36 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-09-09 13:50:36 -0700 |
| commit | 6b4ed4d07831f738755cb8162eff24d6d9a695fc (patch) | |
| tree | cb8c9f20207bf4388803c614fe7a5239c0c20295 /chapter15/src | |
| parent | 4f8ef2140e5c41913f3f2ab49c554c6548609684 (diff) | |
| download | Simple-6b4ed4d07831f738755cb8162eff24d6d9a695fc.tar.gz Simple-6b4ed4d07831f738755cb8162eff24d6d9a695fc.zip | |
Docs: Proj is not always a data node (#250)
The node recap tables in chapters 4 and 5 classify `Proj` as "Data", but
`ProjNode.isCFG()` has returned true for control projections since chapter 4:
ch4: return _idx==0;
ch5+: return _idx==0 || ctrl() instanceof IfNode;
So `Proj#0` off `Start` is a control node, and from chapter 5 both projections
off an `If` are too -- which is exactly why the dominator walk in
`IfNode.compute()` can step through them.
Change the Type column to "Data / Control" and add a note under each table
pointing at `isCFG()`. Table alignment is unchanged: "Data / Control" is the
same width as "Abstract class".
Docs-only change.
Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Diffstat (limited to 'chapter15/src')
0 files changed, 0 insertions, 0 deletions
