-
-
Notifications
You must be signed in to change notification settings - Fork 32k
Eliminate redundant refcounting in the JIT #134584
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
Labels
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
performance
Performance or resource usage
topic-JIT
type-feature
A feature request or enhancement
Comments
@tomasr8 @brandtbucher this is gonna be a pretty sweet optimization :)
After:
|
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
interpreter-core
(Objects, Python, Grammar, and Parser dirs)
performance
Performance or resource usage
topic-JIT
type-feature
A feature request or enhancement
Uh oh!
There was an error while loading. Please reload this page.
Feature or enhancement
Proposal:
Thanks to Matt's work on borrowed LOAD_FAST, we can now eliminate reference counting trivially in the JIT.
Ideally, we should use the cases generator to automatically do this. However, as a simple proof of concept, I will start with manually doing it for floats, as those are special cased and need to be manually written anyways.
I will then build on this by automatically doing it in the cases generator by analyzing the bytecodes for the vast majority of the operations.
This will finally allow proper register allocation in the JIT, as we won't have to spill everywhere there's a PyStackRef_CLOSE or something.
Has this already been discussed elsewhere?
No response given
Links to previous discussion of this feature:
No response
Linked PRs
The text was updated successfully, but these errors were encountered: