https://github.com/python/cpython/commit/b0fb074d5983f07517cec76a37268f13c986d314
commit: b0fb074d5983f07517cec76a37268f13c986d314
branch: main
author: Brandt Bucher <[email protected]>
committer: brandtbucher <[email protected]>
date: 2024-01-02T14:09:57-08:00
summary:
GH-113657: Add back missing _SET_IP uops in tier two (GH-113662)
files:
A Misc/NEWS.d/next/Core and
Builtins/2024-01-02-11-14-29.gh-issue-113657.CQo9vF.rst
M Python/optimizer_analysis.c
diff --git a/Misc/NEWS.d/next/Core and
Builtins/2024-01-02-11-14-29.gh-issue-113657.CQo9vF.rst b/Misc/NEWS.d/next/Core
and Builtins/2024-01-02-11-14-29.gh-issue-113657.CQo9vF.rst
new file mode 100644
index 00000000000000..b520b5c2529425
--- /dev/null
+++ b/Misc/NEWS.d/next/Core and
Builtins/2024-01-02-11-14-29.gh-issue-113657.CQo9vF.rst
@@ -0,0 +1,2 @@
+Fix an issue that caused important instruction pointer updates to be
+optimized out of tier two traces.
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c
index 8b471d70a10d7d..4eb2d9711f5e56 100644
--- a/Python/optimizer_analysis.c
+++ b/Python/optimizer_analysis.c
@@ -4,6 +4,7 @@
#include "pycore_opcode_metadata.h"
#include "pycore_opcode_utils.h"
#include "pycore_pystate.h" // _PyInterpreterState_GET()
+#include "pycore_uop_metadata.h"
#include "pycore_uops.h"
#include "pycore_long.h"
#include "cpython/optimizer.h"
@@ -35,13 +36,13 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int
buffer_size)
break;
}
else {
- if (OPCODE_HAS_ESCAPES(opcode)) {
+ if (_PyUop_Flags[opcode] & HAS_ESCAPES_FLAG) {
maybe_invalid = true;
if (last_set_ip >= 0) {
buffer[last_set_ip].opcode = _SET_IP;
}
}
- if (OPCODE_HAS_ERROR(opcode) || opcode == _PUSH_FRAME) {
+ if ((_PyUop_Flags[opcode] & HAS_ERROR_FLAG) || opcode ==
_PUSH_FRAME) {
if (last_set_ip >= 0) {
buffer[last_set_ip].opcode = _SET_IP;
}
_______________________________________________
Python-checkins mailing list -- [email protected]
To unsubscribe send an email to [email protected]
https://mail.python.org/mailman3/lists/python-checkins.python.org/
Member address: [email protected]