{{ message }}
GH-104584: Remove ip_offset and simplify EXIT_TRACE#108961
Closed
brandtbucher wants to merge 1 commit into
Closed
Conversation
gvanrossum
reviewed
Sep 5, 2023
gvanrossum
left a comment
Member
There was a problem hiding this comment.
Sorry for the chatty review -- I have two angles, one about still being able to make sense of the debug output, another about whether _PUSH_FRAME is the right place to set prev_instr from the new code object. And some mumblings about wanting @markshannon to review this too (I'm not sure I 100% follow his reasoning for the LOAD/STORE macros he recently added to ceval_macros.h.)
Sorry, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.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.
We don't need to keep
ip_offsetin a local, since it's known statically during trace construction. The only time that we don't know it is when pushing a frame for an unknown code object, so modify_PUSH_FRAMEto set theprev_instrof the frame being pushed (this doesn't have any overhead, since it was always being followed by aSAVE_IPanyways). Otherwise, we just set the operand ofSAVE_IPto the actual pointer that should be stored.Also,
EXIT_TRACEbehaves the same as an unconditionalgoto deoptimize. Changing it to just do that instead makes things simpler, since all returns from tier two happen at labels (rather than tied up in the uop handlers).