-
-
Notifications
You must be signed in to change notification settings - Fork 32k
Remove TIER_ONE
and TIER_TWO
from bytecodes.c
#108614
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
Comments
markshannon
added a commit
that referenced
this issue
Aug 31, 2023
… from `_POP_FRAME` op. (GH-108685)
markshannon
added a commit
that referenced
this issue
Sep 4, 2023
markshannon
added a commit
that referenced
this issue
Sep 7, 2023
markshannon
added a commit
that referenced
this issue
Sep 8, 2023
vstinner
added a commit
to vstinner/cpython
that referenced
this issue
Sep 11, 2023
vstinner
added a commit
to vstinner/cpython
that referenced
this issue
Sep 11, 2023
vstinner
added a commit
that referenced
this issue
Sep 11, 2023
Looks like everything is done for this one. Thanks! |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Labels
The
TIER_ONE
andTIER_TWO
macros cause a few problems:Their presence in the bytecode definitions means that anyone maintaining the interpreter or adding new instructions needs to understand the internals of the multiple execution layers and how they differ.
This makes the entry barrier for contribution, which is already high for these components, even higher.
It makes reasoning about the correctness of optimizations harder.
It prevents the addition of new execution tiers, or changing the design of the current tiers much harder.
We can remove the
TIER_ONE
andTIER_TWO
macros by making modifications to internal execution engine state explicit, without describing how that state is implemented.For example, rather than modifying
next_instr
in the tier 1 interpreter, we can useJUMP_BY
orSAVE_IP
macros.See faster-cpython/ideas#618
Linked PRs
RESUME_CHECK
instruction #108630#if TIER_ONE
and#if TIER_TWO
from_POP_FRAME
op. #108685TIER_ONE
andTIER_TWO
from_PUSH_FRAME
#108725The text was updated successfully, but these errors were encountered: