Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Sort of a grab-bag of improvements:
GOTO_ERROR(error)
withERROR_NO_POP()
.GOTO_UNWIND
withGOTO_TIER_ONE
, replaceEXIT_TO_TIER1
withGOTO_TIER_ONE
, unify thegoto_to_tier1
,exit_to_tier1
, anderror_tier_two
labels into theGOTO_TIER_ONE
macro, and remove the unusedexit_to_tier1_dynamic
label andEXIT_TO_TIER1_DYNAMIC
macro.Py_DECREF
andNULL
s oftstate->previous_executor
withPy_CLEAR
calls, sincePy_DECREF
escapes.GOTO_TIER_TWO
macro.CURRENT_TARGET
macro so the same return-to-tier-one logic can be shared by the interpreter and JIT.(void)item;
lines from the abstract interpreter (these were ironically forcing the values to be loaded)._PyFrame_GetBytecode
as non-escaping.PATCH_VALUE
implementation for the JIT templates and the shim frame.