How RyuJIT Compiles Code
summary
RyuJIT compilation pipeline from C# down to machine code is explained, including how the open-source .NET Core / .NET 5 JIT (RyuJIT) works and where to find and add optimizations. The talk covers concrete examples of functions showing compilation stages and gives guidance for contributors who want to modify or extend RyuJIT (CoreCLR) to implement new optimizations.
AI-written summary · about
chapters (12)
- 0:00Introduction
- 5:04How RyuJIT works
- 12:30Intermediate language and compilation phases
- 18:51Inline scheduling and optimizations
- 24:10SSA form and benefits
- 27:01Common subexpression elimination
- 30:13Loops and invariant code
- 32:22Array bounds optimization
- 33:45Code generation phase
- 36:16Optimization opportunities
- 37:44Micro-optimization examples
- 39:07Conclusion and Q&A
related talks
45mThe Good, the Bad and the Surprising aspects of code compilation in .NET (C#)
01h 00mWhat’s New in the JIT Compiler
20mBYOJ: Build your own JIT with Ruby
56m.NET 5: runtimes
44mJIT Me Baby One More Time
50mJIT and AOT in the CLR
01h 04mJust-in-Time Compilation: The Next Big Thing?
19mReusing Just-in-Time Compiled Code
