-
Notifications
You must be signed in to change notification settings - Fork 51
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
Specializations #74
Comments
Latest stats2 Feb 2020 main Summary:
Stats
|
The two common fail cases of binary_subscr are: The first is presumably list with slice. The second could be many things. |
What benchmark are these stats from? |
From pyperformance. |
When adding (or removing) the odd bytecode in the past some core devs have seemed worried that we might run out of bytecodes.
Which is a lot, but that still leaves ~40 spare. So we aren't going to run out of opcodes. I suspect it won't be that many, and there is a lot of potential code sharing between |
We can also have EXTENDED_OPCODE for rare opcodes. |
Yeah, and e.g. LOAD_ASSERTION_ERROR will be folded into LOAD_COMMON_CONSTANT. |
Here's a tidbit of interesting info from the Pyston Discord server:
That sounds like an interesting approach to attempt in the future. |
The following table lists all instructions, whether they can be specialized, whether it is worth specializing them, and the status of the work on specializing them.
|
What’s the difference between a green check mark and a grayed out one? |
Thanks for putting this together. Some thoughts:
|
It looks like ✅ means "can be specialized" and ✔️ means "already specialized" (which also implies ✅). Both are green on my machine. |
|
I've updated the table.
It might well be worth combining
|
There are more detailed stats about STORE_SUBSCR here, which I took before opening the specialization PR. In particular, numbers are somewhat thrown off by the use of I opened a PR to add some of those stats more permanently into the specialization code. |
We are now gathering stats automatically, most of the easy specialization are done, and the remaining have their own issues. |
This is a meta issue for tracking which bytecodes have been specialized, need to be specialized, need to be improved, or aren't worth specializing.
Completed
Done, but could be improved
In progress
To do
Needs more data
Before more optimizing these, we need to know how well they will specialize
Not going to do
The text was updated successfully, but these errors were encountered: