From 972a295fe34280aa3d16c573d6200025a1ce4ff0 Mon Sep 17 00:00:00 2001 From: Brandt Bucher Date: Thu, 27 Mar 2025 09:12:30 -0700 Subject: GH-130415: Remove redundant sym_matches_type calls in the JIT optimizer (GH-131778) --- Python/optimizer_cases.c.h | 37 +++++++++++++------------------------ 1 file changed, 13 insertions(+), 24 deletions(-) (limited to 'Python/optimizer_cases.c.h') diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index 106e7e38b99..85fa8f4a2a7 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -271,9 +271,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyLong_CheckExact(sym_get_const(ctx, left))); assert(PyLong_CheckExact(sym_get_const(ctx, right))); PyObject *temp = _PyLong_Multiply((PyLongObject *)sym_get_const(ctx, left), @@ -304,9 +302,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyLong_CheckExact(sym_get_const(ctx, left))); assert(PyLong_CheckExact(sym_get_const(ctx, right))); PyObject *temp = _PyLong_Add((PyLongObject *)sym_get_const(ctx, left), @@ -337,9 +333,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyLong_Type) && sym_matches_type(right, &PyLong_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyLong_CheckExact(sym_get_const(ctx, left))); assert(PyLong_CheckExact(sym_get_const(ctx, right))); PyObject *temp = _PyLong_Subtract((PyLongObject *)sym_get_const(ctx, left), @@ -401,9 +395,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyFloat_CheckExact(sym_get_const(ctx, left))); assert(PyFloat_CheckExact(sym_get_const(ctx, right))); PyObject *temp = PyFloat_FromDouble( @@ -435,9 +427,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyFloat_CheckExact(sym_get_const(ctx, left))); assert(PyFloat_CheckExact(sym_get_const(ctx, right))); PyObject *temp = PyFloat_FromDouble( @@ -469,9 +459,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyFloat_Type) && sym_matches_type(right, &PyFloat_Type)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyFloat_CheckExact(sym_get_const(ctx, left))); assert(PyFloat_CheckExact(sym_get_const(ctx, right))); PyObject *temp = PyFloat_FromDouble( @@ -517,8 +505,9 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyUnicode_Type) && sym_matches_type(right, &PyUnicode_Type)) { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { + assert(PyUnicode_CheckExact(sym_get_const(ctx, left))); + assert(PyUnicode_CheckExact(sym_get_const(ctx, right))); PyObject *temp = PyUnicode_Concat(sym_get_const(ctx, left), sym_get_const(ctx, right)); if (temp == NULL) { goto error; @@ -544,8 +533,9 @@ right = stack_pointer[-1]; left = stack_pointer[-2]; JitOptSymbol *res; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right) && - sym_matches_type(left, &PyUnicode_Type) && sym_matches_type(right, &PyUnicode_Type)) { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { + assert(PyUnicode_CheckExact(sym_get_const(ctx, left))); + assert(PyUnicode_CheckExact(sym_get_const(ctx, right))); PyObject *temp = PyUnicode_Concat(sym_get_const(ctx, left), sym_get_const(ctx, right)); if (temp == NULL) { goto error; @@ -1275,8 +1265,7 @@ JitOptSymbol *res; right = stack_pointer[-1]; left = stack_pointer[-2]; - if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) - { + if (sym_is_const(ctx, left) && sym_is_const(ctx, right)) { assert(PyLong_CheckExact(sym_get_const(ctx, left))); assert(PyLong_CheckExact(sym_get_const(ctx, right))); PyObject *tmp = PyObject_RichCompare(sym_get_const(ctx, left), -- cgit v1.2.3