You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Unify branches and deopts in the tier 2 IR. #111848
The basic premise of optimizing traces is that most branches are highly biased.
So we use DEOPT_IF to branch in the uncommon case.
However in the optimizer we may want to move work to exit branches, which needs jumps.
Unifying branches and jumps also simplifies the tier 2 interpreter and the JIT compiler.
So, let's merge jumps and branches, as follows:
Convert most, if not all jumps in the tier 2 code to DEOPT_IFs in bytecodes.c
Convert deopts into jumps internally to allow work like SET_IP to be sunk into exit branches.
Activity
GH-111848: Tidy up tier 2 handling of FOR_ITER specialization by usin…
brandtbucher commentedon Nov 8, 2023
Yes please! :)
GH-111848: Convert remaining jumps to deopts into tier 2 code. (GH-11…
GH-111848: Set the IP when de-optimizing (GH-112065)
gh-111848: Clean up RESERVE() macro (#112274)
gvanrossum commentedon Nov 20, 2023
Do you expect more to happen here? It looks complete. :-)
pythonGH-111848: Tidy up tier 2 handling of FOR_ITER specialization b…
pythonGH-111848: Convert remaining jumps to deopts into tier 2 code. (p…
pythonGH-111848: Set the IP when de-optimizing (pythonGH-112065)
pythongh-111848: Clean up RESERVE() macro (python#112274)
pythonGH-111848: Tidy up tier 2 handling of FOR_ITER specialization b…
pythonGH-111848: Convert remaining jumps to deopts into tier 2 code. (p…
pythonGH-111848: Set the IP when de-optimizing (pythonGH-112065)
pythongh-111848: Clean up RESERVE() macro (python#112274)