-
-
Notifications
You must be signed in to change notification settings - Fork 33.1k
Closed
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-featureA feature request or enhancementA feature request or enhancement
Description
Disabling the "not taken" branch of an instrumented FOR_ITER
does not de-instrument the FOR_ITER
, it only de-instruments the NOT_TAKEN
which prevents specialization and JIT compilation of the FOR_ITER
. It is only when the loop exits, that the FOR_ITER
is de-instrumented.
Instead of instrumenting the FOR_ITER
we could instrument the POP_TOP
at the end of the loop.
This will add an extra instruction dispatch when exiting the loop, as FOR_ITER
and its specializations will need to jump to the POP_TOP
instead of over it. We already do this in tier2, so the overhead should be negligible, and it might simplify the code a bit.
Linked PRs
Metadata
Metadata
Assignees
Labels
interpreter-core(Objects, Python, Grammar, and Parser dirs)(Objects, Python, Grammar, and Parser dirs)type-featureA feature request or enhancementA feature request or enhancement