-
-
Notifications
You must be signed in to change notification settings - Fork 32.7k
GH-137959: Replace shim code in jitted code with a single trampoline function. #137961
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
Conversation
Benchmark results show a hint of a speedup, but in the noise. No slowdown, though. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Some things I observed. Correct me if I'm wrong:
- This actually splits out the tier 2 interpreter from the tier 1 interpreter. Which is likely a significant saving for our tier 2 debug build time and tier 2 interpreter. Nice!
- The shim/trampoline is only compiled once lazily and reused across the whole runtime. Then reused across all JIT functions. We currently do two jumps (one into the shim/trampoline, one into the exec->jit_code). You need to lock this with a mutex in case multiple threads try to compile the shim at the same time.
If my understanding above is correct, then this is alright to me.
That is all correct. I'll add a comment explaining it. |
Nice, sorry I wasn't able to review in time, but it looks mostly good (love the unification of the two JIT execution engines). Two notes:
|
Uh oh!
There was an error while loading. Please reload this page.