gh-131798: JIT: Narrow the return type of _CALL_LEN to int (#132940)

Reduce unnecessary guards whenever `len()` is called and used
after.

Co-authored-by: Max Bernstein <tekknolagi@gmail.com>
This commit is contained in:
Diego Russo 2025-04-25 19:57:42 +01:00 committed by GitHub
parent f0485de43a
commit 4c20f46fa0
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
4 changed files with 18 additions and 1 deletions

View file

@ -1055,6 +1055,10 @@ dummy_func(void) {
sym_set_const(callable, (PyObject *)&PyUnicode_Type);
}
op(_CALL_LEN, (callable[1], self_or_null[1], args[oparg] -- res)) {
res = sym_new_type(ctx, &PyLong_Type);
}
// END BYTECODES //
}

View file

@ -2014,7 +2014,7 @@
case _CALL_LEN: {
JitOptSymbol *res;
res = sym_new_not_null(ctx);
res = sym_new_type(ctx, &PyLong_Type);
stack_pointer[-2 - oparg] = res;
stack_pointer += -1 - oparg;
assert(WITHIN_STACK_BOUNDS());