summaryrefslogtreecommitdiffstats
path: root/Python/bytecodes.c
diff options
context:
space:
mode:
authorNeil Schemenauer <nas-github@arctrix.com>2024-12-03 17:32:26 (GMT)
committerGitHub <noreply@github.com>2024-12-03 17:32:26 (GMT)
commit0cb52220790d8bc70ec325fd89d52b5f3b7ad29c (patch)
treefb6d278b8932ce83053c9285638f76428a86f3d0 /Python/bytecodes.c
parent8ba9f5bca9c0ce6130e1f4ba761a68f74f8457d0 (diff)
downloadcpython-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.c4
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))) {