Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
RyuJIT is the x86 JIT in .NET Core 2.0 – Replacing JIT32 #10
RyuJIT is the x86 JIT in .NET Core 2.0 – Replacing JIT32
The RyuJIT JIT compiler will be used for all platform combinations for .NET Core 2.0 and beyond. JIT32 will be removed from the product. For .NET Core 1.x, RyuJIT is used for x64 and JIT32 is used for x86 chip support.
We intend for RyuJIT to be a 100% functionally compatible replacement for JIT32. RyuJIT has gone through extensive stress testing. This brings the .NET Core 32-bit product behavior much closer to the 64-bit product behavior.
We will publish more information on this change later. For now, this is just the announcement.
Note: Windows is the only supported 32-bit platform for .NET Core 1.x and 2.x.
Open Source - RyuJIT is open source. JIT32 is not open source.
Single JIT Codebase - There is now a single codebase for the CoreCLR JIT. This helps everyone who is working on platform expansion and who is investing in JIT improvements. An example is Samsung, who is investing in Linux x86 with RyuJIT x86.
Performance - RyuJIT generally takes longer to compile than JIT32, but its optimizer can generate faster code. The performance difference may not be significant, depending on the application. In initial testing with ASP.NET, we found that the difference didn't matter. Please help us make RyuJIT faster! We will continue investing in RyuJIT performance (which often helps all architectures). If you notice performance regressions, we’re very interested to hear your results. Please contact us.
Features! - RyuJIT has more features than JIT32. The feature gap with JIT32 will grow over time. The following features are now available to x86 workloads (due to this change):
Possible compatibility concerns:
Please test! If an x86 program was working in 1.x, and failing in 2.x, please report it on GitHub or at firstname.lastname@example.org.
Please see some of our past blog posts on RyuJIT to learn more about it.
RyuJIT is the current and future platform of JIT compilation for .NET. We will use it for all platform combinations going forward. We're more efficient as a developer community if we have a single codebase to learn, work on and improve.