]> git.ipfire.org Git - thirdparty/Python/cpython.git/commitdiff
fix cg builds, invalidate executors on function deallocation
authorKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Mon, 27 Oct 2025 10:03:47 +0000 (10:03 +0000)
committerKen Jin <28750310+Fidget-Spinner@users.noreply.github.com>
Mon, 27 Oct 2025 10:03:47 +0000 (10:03 +0000)
Objects/funcobject.c
Python/opcode_targets.h
Tools/cases_generator/target_generator.py

index 2311d8ce29a9d93854dea1c489136030b9e41fc7..b659ac8023373b9f37679289d98347bb8c121d4b 100644 (file)
@@ -1152,6 +1152,7 @@ func_dealloc(PyObject *self)
         return;
     }
 #if _Py_TIER2
+    _Py_Executors_InvalidateDependency(_PyInterpreterState_GET(), self, 1);
     _PyJit_Tracer_InvalidateDependency(_PyThreadState_GET(), self);
 #endif
     _PyObject_GC_UNTRACK(op);
index eb43bf63804a32f79f93346ff13814c710e5da53..288e45ce8bc8439c4a9e5a888ed3604472eb41a0 100644 (file)
@@ -259,127 +259,127 @@ static void *opcode_targets_table[256] = {
 };
 #if _Py_TIER2
 static void *opcode_tracing_targets_table[256] = {
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
     &&_unknown_opcode,
     &&_unknown_opcode,
     &&_unknown_opcode,
@@ -387,88 +387,88 @@ static void *opcode_tracing_targets_table[256] = {
     &&_unknown_opcode,
     &&_unknown_opcode,
     &&_unknown_opcode,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
     &&_unknown_opcode,
     &&_unknown_opcode,
     &&_unknown_opcode,
@@ -493,28 +493,28 @@ static void *opcode_tracing_targets_table[256] = {
     &&_unknown_opcode,
     &&_unknown_opcode,
     &&_unknown_opcode,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
-    &&TARGET_record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
+    &&record_previous_inst,
 };
 #endif
 #else /* _Py_TAIL_CALL_INTERP */
index b945c3e7203314626541d2d5bfd561418aadc495..36fa1d7fa4908b6dd1609c75afd07d2a29d968e2 100644 (file)
@@ -34,7 +34,7 @@ def write_opcode_targets(analysis: Analysis, out: CWriter) -> None:
     targets = ["&&_unknown_opcode,\n"] * 256
     for name, op in analysis.opmap.items():
         if op < 256:
-            targets[op] = f"&&TARGET_record_previous_inst,\n"
+            targets[op] = f"&&record_previous_inst,\n"
     out.emit("#if _Py_TIER2\n")
     out.emit("static void *opcode_tracing_targets_table[256] = {\n")
     for target in targets: