notes

Coffee Compiler Club 2023-09-08 on Sea of Nodes

Recording

Questions

Discussion

Cliff and others are working on a sea of nodes book; see “sea of nodes project idea thread” in the chat.

There was a CCC meeting a few months ago with Chris Lattner involved, but it may not have given the topic full justice.

PDG

Sea of Nodes gets rid of a lot of the pass-scheduling problems like in GCC.

Darrick Wiebe only cares a little about the compiler executing quickly. He’s doing SoN stuff

Church-Rosser one-step property

In C2, inlining is first

When a loop never exits, Cliff would add a “never” exit, and a max count. Not interesting for inlining.

Classic IR to Sea of Nodes paper: “From Quads to Graphs: An Intermediate Representation’s Journey” (Cliff Click, 1997)

SoN allowed a simpler, more perfect design. Phases disappear.

Cliff learned how to do it at PhD and made it fast at Sun.

SeaOfNodes.odp

  1. start with quads
  2. alpha renaming, using pointers to nodes instead of names, then basically have nodes

GCC didn’t assume that the graph would fit in memory, so it’s written to disk. HotSpot assumes it all fits into memory.