-
Notifications
You must be signed in to change notification settings - Fork 4.7k
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
[Linux] mixed Interpreter and JIT compiler #13759
Comments
\cc @BruceForstall |
cc @dotnet/jit-contrib |
The last time I tested interpreter + tiered compilation was probably 2-3 years ago when I refactored it a bit. I don't know if Kount tested it more recently. In the current code you could set a breakpoint here to determine how tiered compilation is setting the jit flags and here to see if those flags made it to the JIT without further alteration and we enter GenerateInterpreterStub. |
@xiangzhai have you tried what I suggested a while back? https://github.com/dotnet/coreclr/issues/24824#issuecomment-497048982 |
Hi @AndyAyersMS I tried https://github.com/dotnet/coreclr/issues/24824#issuecomment-497166854
But it lead to SEGFAULT when mixed Interpreter and JIT as described above https://github.com/dotnet/coreclr/issues/27761#issue-519851291 . Thanks, |
Hi @noahfalk I tracked We started porting CoreCLR to MIPS64 based on 2.1 branch, then migrated to historical (about 5 months ago) master dotnet/coreclr@e999f37 So I need to track them again. Thanks, |
Hi @noahfalk
And X86 and ARM64 use the similar environment variables.
The Thanks, |
This code flow:
suggests that you debugged a method that was not eligible for tiered compilation, and from there it would be by design not to use the interpreter because without tiering we can never switch from interpreter back to JIT. Two potential cases here that would be useful to distinguish:
|
Hi @noahfalk Thanks for your kind response! HelloWorld.x64.JitFunctionTrace.log ARM64 and MIPS64 also goes to case 2. I will investigate why it always evaluated false. Thanks, |
Hi @noahfalk Base on dotnet/coreclr@03b7b31 Build and run HelloWorld option:
Please apply the patch dotnet/coreclr#27850 suggested by @jkotas at first. Debug patch:
It seems that only
Changed the debug patch:
HelloWorld.WhoReachHere.JitFunctionTrace.log Or is it able to just enable Interpreter only just like Thanks, |
It is not able to work equivalent to |
We currently have no work ongoing to support the interpreter, so I am going to close this. |
Hi,
OpenJDK is able to just enable interpreter:
or just enable JIT compilers:
or mixed:
And what about CoreCLR?
But there are only
Start Jitting
andJitted Entry
, noGenerating interpretation stub
at all:Although it is able to hack tieredcompilation https://github.com/dotnet/coreclr/issues/24824#issuecomment-497048982 to force interpreter.
There is SEGFAULT issue:
How to mix Interpreter and JIT compiler? Please give me some hint.
Thanks,
Leslie Zhai
category:correctness
theme:interpreter
skill-level:intermediate
cost:small
The text was updated successfully, but these errors were encountered: