diff options
author | Mark Shannon <mark@hotpy.org> | 2024-03-11 13:37:48 (GMT) |
---|---|---|
committer | GitHub <noreply@github.com> | 2024-03-11 13:37:48 (GMT) |
commit | b6ae6da1bd987506b599a30e37fb452f909b5cbe (patch) | |
tree | e7f37b0435ca1a5d314e2f6184ec1386d8c2bc52 /Python | |
parent | 6c4fc209e1941958164509204cdc3505130c1820 (diff) | |
download | cpython-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.c | 1 | ||||
-rw-r--r-- | Python/optimizer_analysis.c | 8 |
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; |