Skip to content

Commit c93e3fc

Browse files
generatedunixname1734921407115435meta-codesync[bot]
authored andcommitted
Sync pre-release CPython main branch from GitHub (2026-06-26)
Summary: Imported python/cpython `3.16.0a0` from upstream rev [`1812162`](https://www.github.com/python/cpython/commit/1812162f81ef034616294ec9ee53e951f99c9582) (committed 2026-06-26 23:27:47+00:00). # Commit Info - Base: (`3.16.0a0`) - [`285d96d`](https://www.github.com/python/cpython/commit/285d96dd784620fe8afb02688abe72a916555061) (commit date: 2026-06-26 04:48:53+00:00) - Imported: (`3.16.0a0`) - [`1812162`](https://www.github.com/python/cpython/commit/1812162f81ef034616294ec9ee53e951f99c9582) (commit date: 2026-06-26 23:27:47+00:00) # Noteworthy file changes - Low-signal files (15 added) (NEWS.d, docs, .github) Complete list of added/removed files: https://www.internalfb.com/intern/everpaste/?color=0&handle=GI4dCSCsO9K7u40DAIYeZeqvCoY0br0LAAAz Differential Revision: D109921298 fbshipit-source-id: 338022c9bbcda5d8871b1c78086a1db9098b1983
1 parent 9a11d18 commit c93e3fc

1 file changed

Lines changed: 24 additions & 2 deletions

File tree

cinderx/Interpreter/3.16/Includes/generated_cases.c.h

Lines changed: 24 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -10871,7 +10871,18 @@
1087110871
JUMP_TO_PREDICTED(LOAD_ATTR);
1087210872
}
1087310873
}
10874-
/* Skip 2 cache entries */
10874+
// _GUARD_KEYS_VERSION
10875+
{
10876+
uint32_t keys_version = read_u32(&this_instr[4].cache);
10877+
PyTypeObject *owner_cls = Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
10878+
PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
10879+
PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
10880+
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != keys_version) {
10881+
UPDATE_MISS_STATS(LOAD_ATTR);
10882+
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
10883+
JUMP_TO_PREDICTED(LOAD_ATTR);
10884+
}
10885+
}
1087510886
// _LOAD_ATTR_METHOD_WITH_VALUES
1087610887
{
1087710888
PyObject *descr = read_obj(&this_instr[6].cache);
@@ -11056,7 +11067,18 @@
1105611067
JUMP_TO_PREDICTED(LOAD_ATTR);
1105711068
}
1105811069
}
11059-
/* Skip 2 cache entries */
11070+
// _GUARD_KEYS_VERSION
11071+
{
11072+
uint32_t keys_version = read_u32(&this_instr[4].cache);
11073+
PyTypeObject *owner_cls = Py_TYPE(PyStackRef_AsPyObjectBorrow(owner));
11074+
PyHeapTypeObject *owner_heap_type = (PyHeapTypeObject *)owner_cls;
11075+
PyDictKeysObject *keys = owner_heap_type->ht_cached_keys;
11076+
if (FT_ATOMIC_LOAD_UINT32_RELAXED(keys->dk_version) != keys_version) {
11077+
UPDATE_MISS_STATS(LOAD_ATTR);
11078+
assert(_PyOpcode_Deopt[opcode] == (LOAD_ATTR));
11079+
JUMP_TO_PREDICTED(LOAD_ATTR);
11080+
}
11081+
}
1106011082
// _LOAD_ATTR_NONDESCRIPTOR_WITH_VALUES
1106111083
{
1106211084
PyObject *descr = read_obj(&this_instr[6].cache);

0 commit comments

Comments
 (0)