Skip to content

SeaOfNodes/.github

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 

Repository files navigation

Simple - A Sea-of-Nodes Compiler IR Tutorial

Each repo is a port of the Simple compiler from its original Java port, to various other languages.

What's a Sea of Nodes IR?

The Sea of Nodes IR is a ... compiler IR (Intermediate Representation) pioneered by Cliff Click starting around 1990, appearing as an appendix in his thesis It became the core IR in the HotSpot C2 JIT compiler, and is used today in nearly every JVM on the planet - and C2 runs literally trillions of times daily. The IR inspired Google's V8 team (and thus is/has been in Chrome), the Graal compiler and other high profile compiler efforts.

Despite this Sea of Nodes is not (to my knowledge) taught in compiler classes! This is my (and others!) effort to teach the compiler community the how's and why's of the Sea of Nodes.

Reading material:

Cliff Click's Phd Thesis.
The Main part discusses combining optimizations which is used in e.g. C2 at least.
The appendix starting on page 119 has a long discussion on engineering choices in the Sea of Nodes and is probably more relavent here:

A lighter read:

Also:

The core Global Code Motion algorithm to unwind from the Sea of Nodes:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published