South Bay Systems: A Simple Guide to Sea of Nodes
Welcome to another edition of South Bay Systems! This time we have our first compilers talk: a guided tour of Simple, a teaching language meant to showcase the Sea of Nodes compiler IR, as used in HotSpot's C2 compiler and Sun/Oracle's Graal compiler. Similar to South Bay Systems' database talks, a baseline level of knowledge equivalent to a university compilers class will be assumed. (So go brush up on SSA!)
Agenda
6:00 PM: Doors open, food and socializing
6:30 PM — 7:30 PM: Talk
7:30 PM onward : Community socializing!
Food and beverages will be provided, courtesy of our hosts, LinkedIn.
A Simple Guide to Sea of Nodes
Basic blocks, straight-line sequences of instructions with no control flow, are the classic way of constructing an intermediate representation in a compiler. Basic blocks are then linked together by control flow into a control flow graph. Sea of Nodes instead proposes representing each instruction as its own node in the graph, and relying only upon the dataflow to specify a partial ordering between all instructions.
Simple is a teaching language with an accompanying tutorial series meant to showcase the Sea of Nodes representation and its advantages. During the course of the talk, Simple will be iteratively grown starting from a trivial language, with a focus on how each added feature is lowered into the graph-based intermediate representation, and what optimizations Sea of Nodes enables.
Speaker Bio
Cliff Click wrote his first compiler when he was 15 (Pascal to TRS Z-80!), although he most famously wrote the HotSpot Server Compiler (the Sea of Nodes IR). Currently, Cliff is a distinguished engineer at HashGraph. He was previously CTO and Co-Founder of 0xdata, a firm dedicated to creating a new way to think about web-scale data storage and real-time analytics. Prior, he helped Azul Systems build an 864 core pure-Java mainframe that keeps GC pauses on 500Gb heaps to under 10ms, and worked on all aspects of that JVM. Before that Cliff worked on HotSpot at Sun Microsystems, and is at least partially responsible for bringing Java into the mainstream.