Skip to content

CoreCLR Interpreter #112158

Open
Open
@BrzVlad

Description

@BrzVlad

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 Interpreter P/Invoke support #115393
  • 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.

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

Relationships

None yet

Development

No branches or pull requests

Issue actions