-
-
Notifications
You must be signed in to change notification settings - Fork 31.5k
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
Remove superinstructions #105229
Comments
Question: One good thing of super instruction is that we can hide the optimization detail to end user. |
What do you mean by the "end user"?
|
Ah I meant Python programmers. Thanks.
Okay, Looks like it was just my thought. I loved super instruction from the view of hidden optimization implementation detail. (we don't have to update magic number for the optimization) So still questions left if we decide to remove the current super-instruction mechanism.
Thank you for answering for all :) |
While I am reading the code, it looks like happening at the last moment of optimization. So it will not happen? |
Forming superinstructions should done after all other optimizations, so won't interfere those. |
For the reasons given above, I want to remove all superinstructions. The benefit will be negligible after merging #105230, and reasoning about instrumentation, etc. is simpler without them. |
I am asking about the new single opcodes(in #105230, LOAD_FAST_LOAD_FAST / STORE_FAST_LOAD_FAST / STORE_FAST_LOAD_FAST ) that will alter the existing super instruction. :) |
Link goes nowhere for me. |
Fixed the link |
* Remove LOAD_CONST__LOAD_FAST and LOAD_FAST__LOAD_CONST superinstructions.
@markshannon Should I just remove the super-instruction support from the cases generator? That would simplify a lot of things! (There are a bunch of things that are factored somewhat awkwardly to share common code between super and macro while also honoring their differences.) DECISION: Yes, remove it. Also remove support for legacy |
Nope, we don't need the super-instruction support. Thanks for thinking of us! I am generally watching changes in these areas and will pipe up if I see anything happening that would be a problem for us. |
Superinstructions offer a small speedup, but their existence complicates things; mainly instrumentation, and specialization.
The tier2 optimizer is likely to be simpler without superinstructions.
This experiment shows that combining the most common superinstructions into single instructions can outperform superinstructions, rendering superinstructions pointless.
We have already removed almost all superinstructions in specialization. We should remove them altogether.
Linked PRs
The text was updated successfully, but these errors were encountered: