Skip to content

CoreCLR Interpreter #112158

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
16 of 53 tasks
BrzVlad opened this issue Feb 4, 2025 · 3 comments
Open
16 of 53 tasks

CoreCLR Interpreter #112158

BrzVlad opened this issue Feb 4, 2025 · 3 comments

Comments

@BrzVlad
Copy link
Member

BrzVlad commented Feb 4, 2025

This issue tracks required work and progress for the porting of the mono interpreter to CoreCLR. The end goal of this issue is to be able to run entire test suites in full interpreter mode (without any JIT/AOT) on desktop platforms (ex. arm64 linux). This issue will be updated on the fly as the implementation progresses.

M1 - basic compilation and interpreting support of a simple method

M2 - stress tests involving object manipulation

M3 - EH and interpreter calls

M4 - mixing with compiled code

  • figure out separation between interp/jit/R2R code for testing purposes
  • calli and ldftn with interpreter target method
  • calli and ldftn with jitted target method
  • delegate creation and invocation with interpreter target method
  • other delegate scenarios, passing it between interp/jit with either interpreted or jitted target method

M5 - pinvoke support, full interpreter support for Hello World

  • implement pinvoke support
  • implement reverse pinvoke support
  • bugfixes and feature support for Console.WriteLine("Hello World") in full interpreter mode

M6 - IL opcodes for CoreCLR startup ordered by number of occurrences:


Nice to have refactorings/improvements that are out of scope of this project:

  • Remove the usage of StackType, we could rely exclusively on the InterpType instead
  • Optimize reimportation. Use a graph clique approach similar to RyuJIT, rather than naive retries.
@BrzVlad BrzVlad added this to the 10.0.0 milestone Feb 4, 2025
@BrzVlad BrzVlad self-assigned this Feb 4, 2025
Copy link
Contributor

Tagging subscribers to this area: @BrzVlad, @kotlarmilos
See info in area-owners.md if you want to be subscribed.

@kidsang
Copy link

kidsang commented Apr 22, 2025

great work!

@am11
Copy link
Member

am11 commented Apr 28, 2025

A discrete ckfinite op is absent from the list (for conformance: src/tests/JIT/IL_Conformance/Old/Base/ckfinite.ilproj). Implementation-wise, it's basically: https://godbolt.org/z/vxMYrvb8d.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants