gh-131738: optimize builtin any/all/tuple calls with a generator expression arg (#131737)

This commit is contained in:
Irit Katriel 2025-03-28 10:35:20 +00:00 committed by GitHub
parent 674dbf3b3a
commit 2c8f329dc6
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
16 changed files with 199 additions and 38 deletions

View file

@ -1899,16 +1899,8 @@
_PyStackRef value;
oparg = CURRENT_OPARG();
// Keep in sync with _common_constants in opcode.py
// If we ever have more than two constants, use a lookup table
PyObject *val;
if (oparg == CONSTANT_ASSERTIONERROR) {
val = PyExc_AssertionError;
}
else {
assert(oparg == CONSTANT_NOTIMPLEMENTEDERROR);
val = PyExc_NotImplementedError;
}
value = PyStackRef_FromPyObjectImmortal(val);
assert(oparg < NUM_COMMON_CONSTANTS);
value = PyStackRef_FromPyObjectNew(tstate->interp->common_consts[oparg]);
stack_pointer[0] = value;
stack_pointer += 1;
assert(WITHIN_STACK_BOUNDS());