Skip to content
0:00 / 0:00

#seaofnodes#hotspot#jit

Cliff Click — The Sea of Nodes and the HotSpot JIT

  • Recommended by 2 people: 1 on Lobsters and 1 in engineering communities.
  • Presented by Cliff Click

Advanced. Deep dive for people who know the field.

8.1K views6 years ago2 recommendations

Systems programmingProgramming languagesCompilers and interpretersPerformance and optimizationJava and the JVM

Cliff Click explains the Sea of Nodes intermediate representation used by the HotSpot C2 JIT compiler to optimize Java bytecode.

Подробнее о Java-конференциях: — весной — JPoint: jrg.su/gTrwHx — осенью — Joker: jrg.su/h7yvG4 — — . . . . Cliff will cover the "Sea of Nodes" used by the HotSpot C2 JIT to generate code — probably 99% of "executed" Java bytecodes on the planet run on C2 generated code, and the C2 compiler probably executes (much) more than a trillion times a day. This talk is targeted for audiences who are already well educated about compilers, and want to become more familiar with the HotSpot "C2" JIT. In particular, it is assumed the audience is familiar with SSA form, basics of graph theory, the bytecode execution model, Java code-loading and unloading, and rudiments of code generation.

Why it's here

2 people recommend this

What people say. Recommended as an essential resource for understanding the Sea of Nodes representation and JIT compiler optimizations.

u/theangeryemacsshibeSICL, one-more-re-nightmarein r/ProgrammingLanguages • Recommends

On “Does it make sense to write an interpreter in a non-GC programming language (like Rust or C)?”

> Static or dynamic typing? Dynamic typing makes JIT compilation a very difficult problem Like how JITing was basically "invented" on APL, Smalltalk and Self, which are all dynamically typed. I guess the Java type system isn't one to brag about on r/programminglanguages, but based on a presentation on the C2 compiler, there isn't an awful lot of work saved by type declarations. You still have a lot to pin down ("is it an instance of Foo" or "is the class definitely Foo"?) and most of the complexity is elsewhere.

dbremneron Lobsters • Recommends

The Sea of Nodes and the HotSpot JIT (2020)

u/theangeryemacsshibeSWCL, Utenain r/ProgrammingLanguages • Mentions

On “tree-shaking, the horticulturally misguided algorithm”

Just think about how stupid is it that we optimise sequential imperative code by turning it into dataflow with linear world-passing for side effects, and then back to sequential machine code, and then have hardware optimise the sequential machine code again by turning it into dataflow again.