From 92cc140f646dee91b8f2be9b8dcaa3b08ae276e8 Mon Sep 17 00:00:00 2001 From: Ken Jin <28750310+Fidget-Spinner@users.noreply.github.com> Date: Wed, 29 Oct 2025 19:29:59 +0000 Subject: [PATCH] cleanup --- Include/internal/pycore_opcode_metadata.h | 3 ++ Tools/cases_generator/analyzer.py | 2 +- Tools/cases_generator/tier2_generator.py | 35 ----------------------- 3 files changed, 4 insertions(+), 36 deletions(-) diff --git a/Include/internal/pycore_opcode_metadata.h b/Include/internal/pycore_opcode_metadata.h index c774807b3559..1c8c49a41060 100644 --- a/Include/internal/pycore_opcode_metadata.h +++ b/Include/internal/pycore_opcode_metadata.h @@ -1781,12 +1781,15 @@ const uint8_t _PyOpcode_NeedsGuardIp[256] = { [RETURN_VALUE] = 1, [YIELD_VALUE] = 1, [LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN] = 1, + [INSTRUMENTED_FOR_ITER] = 1, [RETURN_GENERATOR] = 1, [BINARY_OP_SUBSCR_GETITEM] = 1, [INSTRUMENTED_RETURN_VALUE] = 1, [SEND] = 1, [SEND_GEN] = 1, [INSTRUMENTED_YIELD_VALUE] = 1, + [INSTRUMENTED_END_ASYNC_FOR] = 1, + [END_ASYNC_FOR] = 1, [LOAD_ATTR_PROPERTY] = 1, [FOR_ITER_GEN] = 1, [CALL] = 1, diff --git a/Tools/cases_generator/analyzer.py b/Tools/cases_generator/analyzer.py index 10dc7d5b31a2..3bd92cfa55a4 100644 --- a/Tools/cases_generator/analyzer.py +++ b/Tools/cases_generator/analyzer.py @@ -982,7 +982,7 @@ def compute_properties(op: parser.CodeDef) -> Properties: no_save_ip=no_save_ip, tier=tier_variable(op), needs_prev=variable_used(op, "prev_instr"), - needs_guard_ip=variable_used(op, "TIER2_STORE_IP") or variable_used(op, "LLTRACE_RESUME_FRAME") or variable_used(op, "DISPATCH_INLINED"), + needs_guard_ip=(unpredictable_jump and "replaced" not in op.annotations) or variable_used(op, "LLTRACE_RESUME_FRAME") or variable_used(op, "DISPATCH_INLINED"), unpredictable_jump=unpredictable_jump, ) diff --git a/Tools/cases_generator/tier2_generator.py b/Tools/cases_generator/tier2_generator.py index 64f034746f68..8a9db068382a 100644 --- a/Tools/cases_generator/tier2_generator.py +++ b/Tools/cases_generator/tier2_generator.py @@ -63,8 +63,6 @@ class Tier2Emitter(Emitter): def __init__(self, out: CWriter, labels: dict[str, Label]): super().__init__(out, labels) self._replacers["oparg"] = self.oparg - self._replacers["JUMPBY"] = self.jumpby - self._replacers["DISPATCH"] = self.dispatch def goto_error(self, offset: int, storage: Storage) -> str: # To do: Add jump targets for popping values. @@ -136,39 +134,6 @@ class Tier2Emitter(Emitter): self.out.emit_at(uop.name[-1], tkn) return True - def jumpby( - self, - tkn: Token, - tkn_iter: TokenIterator, - uop: CodeSection, - storage: Storage, - inst: Instruction | None, - ) -> bool: - if storage.spilled: - raise analysis_error("stack_pointer needs reloading before dispatch", tkn) - storage.stack.flush(self.out) - self.emit("TIER2_STORE_IP") - emit_to(self.out, tkn_iter, "SEMI") - self.emit(";\n") - return True - - def dispatch( - self, - tkn: Token, - tkn_iter: TokenIterator, - uop: CodeSection, - storage: Storage, - inst: Instruction | None, - ) -> bool: - if storage.spilled: - raise analysis_error("stack_pointer needs reloading before dispatch", tkn) - storage.stack.flush(self.out) - self.emit("break;\n") - next(tkn_iter) - next(tkn_iter) - next(tkn_iter) - return False - def write_uop(uop: Uop, emitter: Emitter, stack: Stack) -> Stack: locals: dict[str, Local] = {} -- 2.47.3