gh-131798: Small improvements to remove_unneeded_uops (GH-134554)

Improve remove_unneeded_uops
This commit is contained in:
Tomas R. 2025-05-23 08:48:45 -04:00 committed by GitHub
parent b8f55266bf
commit 71dea74865
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -558,6 +558,7 @@ const uint16_t op_without_push[MAX_UOP_ID + 1] = {
const bool op_skip[MAX_UOP_ID + 1] = {
[_NOP] = true,
[_CHECK_VALIDITY] = true,
[_CHECK_PERIODIC] = true,
[_SET_IP] = true,
};
@ -617,7 +618,7 @@ remove_unneeded_uops(_PyUOpInstruction *buffer, int buffer_size)
while (op_skip[last->opcode]) {
last--;
}
if (op_without_push[last->opcode]) {
if (op_without_push[last->opcode] && op_without_pop[opcode]) {
last->opcode = op_without_push[last->opcode];
opcode = buffer[pc].opcode = op_without_pop[opcode];
if (op_without_pop[last->opcode]) {