summaryrefslogtreecommitdiffstats
path: root/Python
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2024-03-11 13:37:48 (GMT)
committerGitHub <noreply@github.com>2024-03-11 13:37:48 (GMT)
commitb6ae6da1bd987506b599a30e37fb452f909b5cbe (patch)
treee7f37b0435ca1a5d314e2f6184ec1386d8c2bc52 /Python
parent6c4fc209e1941958164509204cdc3505130c1820 (diff)
downloadcpython-b6ae6da1bd987506b599a30e37fb452f909b5cbe.zip
cpython-b6ae6da1bd987506b599a30e37fb452f909b5cbe.tar.gz
cpython-b6ae6da1bd987506b599a30e37fb452f909b5cbe.tar.bz2
GH-116596: Better determination of escaping uops. (GH-116597)
Diffstat (limited to 'Python')
-rw-r--r--Python/optimizer.c1
-rw-r--r--Python/optimizer_analysis.c8
2 files changed, 5 insertions, 4 deletions
diff --git a/Python/optimizer.c b/Python/optimizer.c
index 4dbfd91..aaf75b2 100644
--- a/Python/optimizer.c
+++ b/Python/optimizer.c
@@ -1033,6 +1033,7 @@ uop_optimize(
break;
}
assert(_PyOpcode_uop_name[buffer[pc].opcode]);
+ assert(strncmp(_PyOpcode_uop_name[buffer[pc].opcode], _PyOpcode_uop_name[opcode], strlen(_PyOpcode_uop_name[opcode])) == 0);
}
_PyExecutorObject *executor = make_executor_from_uops(buffer, &dependencies);
if (executor == NULL) {
diff --git a/Python/optimizer_analysis.c b/Python/optimizer_analysis.c
index 51ec14b..9fd4b19 100644
--- a/Python/optimizer_analysis.c
+++ b/Python/optimizer_analysis.c
@@ -430,7 +430,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
int opcode = buffer[pc].opcode;
switch (opcode) {
case _SET_IP:
- buffer[pc].opcode = NOP;
+ buffer[pc].opcode = _NOP;
last_set_ip = pc;
break;
case _CHECK_VALIDITY:
@@ -438,7 +438,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
may_have_escaped = false;
}
else {
- buffer[pc].opcode = NOP;
+ buffer[pc].opcode = _NOP;
}
break;
case _CHECK_VALIDITY_AND_SET_IP:
@@ -447,7 +447,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
buffer[pc].opcode = _CHECK_VALIDITY;
}
else {
- buffer[pc].opcode = NOP;
+ buffer[pc].opcode = _NOP;
}
last_set_ip = pc;
break;
@@ -463,7 +463,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
last->opcode == _COPY
) {
last->opcode = _NOP;
- buffer[pc].opcode = NOP;
+ buffer[pc].opcode = _NOP;
}
if (last->opcode == _REPLACE_WITH_TRUE) {
last->opcode = _NOP;