From 614d79231d1e60d31b9452ea2afbc2a7d2f0034b Mon Sep 17 00:00:00 2001 From: Nadeshiko Manju Date: Sun, 27 Apr 2025 20:30:28 +0800 Subject: gh-131798: JIT - Use `sym_new_type` instead of `sym_new_not_null` for _BUILD_STRING, _BUILD_SET (GH-132564) Signed-off-by: Manjusaka --- .../2025-04-26-18-43-31.gh-issue-131798.FsIypo.rst | 2 ++ Python/optimizer_bytecodes.c | 8 ++++++++ Python/optimizer_cases.c.h | 4 ++-- 3 files changed, 12 insertions(+), 2 deletions(-) create mode 100644 Misc/NEWS.d/next/Core_and_Builtins/2025-04-26-18-43-31.gh-issue-131798.FsIypo.rst diff --git a/Misc/NEWS.d/next/Core_and_Builtins/2025-04-26-18-43-31.gh-issue-131798.FsIypo.rst b/Misc/NEWS.d/next/Core_and_Builtins/2025-04-26-18-43-31.gh-issue-131798.FsIypo.rst new file mode 100644 index 0000000..a252d2b --- /dev/null +++ b/Misc/NEWS.d/next/Core_and_Builtins/2025-04-26-18-43-31.gh-issue-131798.FsIypo.rst @@ -0,0 +1,2 @@ +Use ``sym_new_type`` instead of ``sym_new_not_null`` for _BUILD_STRING, +_BUILD_SET diff --git a/Python/optimizer_bytecodes.c b/Python/optimizer_bytecodes.c index f862c9c..567caad 100644 --- a/Python/optimizer_bytecodes.c +++ b/Python/optimizer_bytecodes.c @@ -977,6 +977,14 @@ dummy_func(void) { map = sym_new_type(ctx, &PyDict_Type); } + op(_BUILD_STRING, (values[oparg] -- str)) { + str = sym_new_type(ctx, &PyUnicode_Type); + } + + op(_BUILD_SET, (values[oparg] -- set)) { + set = sym_new_type(ctx, &PySet_Type); + } + op(_UNPACK_SEQUENCE_TWO_TUPLE, (seq -- val1, val0)) { val0 = sym_tuple_getitem(ctx, seq, 0); val1 = sym_tuple_getitem(ctx, seq, 1); diff --git a/Python/optimizer_cases.c.h b/Python/optimizer_cases.c.h index c92b036..679240b 100644 --- a/Python/optimizer_cases.c.h +++ b/Python/optimizer_cases.c.h @@ -1032,7 +1032,7 @@ case _BUILD_STRING: { JitOptSymbol *str; - str = sym_new_not_null(ctx); + str = sym_new_type(ctx, &PyUnicode_Type); stack_pointer[-oparg] = str; stack_pointer += 1 - oparg; assert(WITHIN_STACK_BOUNDS()); @@ -1073,7 +1073,7 @@ case _BUILD_SET: { JitOptSymbol *set; - set = sym_new_not_null(ctx); + set = sym_new_type(ctx, &PySet_Type); stack_pointer[-oparg] = set; stack_pointer += 1 - oparg; assert(WITHIN_STACK_BOUNDS()); -- cgit v0.12