diff options
author | Neil Schemenauer <nas-github@arctrix.com> | 2024-12-03 17:32:26 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-12-03 17:32:26 (GMT) |
commit | 0cb52220790d8bc70ec325fd89d52b5f3b7ad29c (patch) | |
tree | fb6d278b8932ce83053c9285638f76428a86f3d0 /Python/bytecodes.c | |
parent | 8ba9f5bca9c0ce6130e1f4ba761a68f74f8457d0 (diff) | |
download | cpython-0cb52220790d8bc70ec325fd89d52b5f3b7ad29c.zip cpython-0cb52220790d8bc70ec325fd89d52b5f3b7ad29c.tar.gz cpython-0cb52220790d8bc70ec325fd89d52b5f3b7ad29c.tar.bz2 |
gh-115999: Specialize `LOAD_SUPER_ATTR` in free-threaded builds (gh-127128)
Use existing helpers to atomically modify the bytecode. Add unit tests
to ensure specializing is happening as expected. Add test_specialize.py
that can be used with ThreadSanitizer to detect data races.
Fix thread safety issue with cell_set_contents().
Diffstat (limited to 'Python/bytecodes.c')
-rw-r--r-- | Python/bytecodes.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/Python/bytecodes.c b/Python/bytecodes.c index e96674c..dd28aae 100644 --- a/Python/bytecodes.c +++ b/Python/bytecodes.c @@ -1946,7 +1946,7 @@ dummy_func( }; specializing op(_SPECIALIZE_LOAD_SUPER_ATTR, (counter/1, global_super_st, class_st, unused -- global_super_st, class_st, unused)) { - #if ENABLE_SPECIALIZATION + #if ENABLE_SPECIALIZATION_FT int load_method = oparg & 1; if (ADAPTIVE_COUNTER_TRIGGERS(counter)) { next_instr = this_instr; @@ -1955,7 +1955,7 @@ dummy_func( } OPCODE_DEFERRED_INC(LOAD_SUPER_ATTR); ADVANCE_ADAPTIVE_COUNTER(this_instr[1].counter); - #endif /* ENABLE_SPECIALIZATION */ + #endif /* ENABLE_SPECIALIZATION_FT */ } tier1 op(_LOAD_SUPER_ATTR, (global_super_st, class_st, self_st -- attr, null if (oparg & 1))) { |