]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
cleanup
authorKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Wed, 29 Oct 2025 19:29:59 +0000 (19:29 +0000)
committerKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Wed, 29 Oct 2025 19:29:59 +0000 (19:29 +0000)
Include/internal/pycore_opcode_metadata.h
Tools/cases_generator/analyzer.py
Tools/cases_generator/tier2_generator.py

index c774807b355961ef97da8e47fdfee589b279c851..1c8c49a41060d36d72d52de285b729080477d3cf 100644 (file)
@@ -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,
index 10dc7d5b31a21450cf55730d5bed8bda3c750bcf..3bd92cfa55a450b963664cc9e5cca6ea5cd1241b 100644 (file)
@@ -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,
     )
 
index 64f034746f6897164cca215ef21fdff9afa4bf2a..8a9db068382a4f1a4eabdd3b94446eaa5288dc68 100644 (file)
@@ -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] = {}