[New-bugs-announce] [issue44511] Improve the bytecode for mapping patterns

Brandt Bucher report at bugs.python.org
Fri Jun 25 20:12:00 EDT 2021


New submission from Brandt Bucher <brandtbucher at gmail.com>:

The generated bytecode for mapping patterns is more complicated than it needs to be:

- Matching sub-patterns involves indexing into a tuple of values in order to extract them. We already know the size of this tuple at compile-time, so we can just unpack it onto the stack instead.

- COPY_DICT_WITHOUT_KEYS isn't used anywhere else, and can be emulated with existing, smaller instructions (albeit using quite a few of them).

- MATCH_KEYS doesn't need to push a boolean indicating match / no match. It already pushes None on no match, so following it with a simple DUP_TOP() + LOAD_CONST(None) + IS_OP(1) should suffice.

These are mostly just refactoring opportunities... quick-and-dirty measurements of Lib/test_patma.py show no performance impact for these changes.

----------
assignee: brandtbucher
components: Interpreter Core
messages: 396533
nosy: brandtbucher
priority: normal
severity: normal
status: open
title: Improve the bytecode for mapping patterns
versions: Python 3.11

_______________________________________
Python tracker <report at bugs.python.org>
<https://bugs.python.org/issue44511>
_______________________________________


More information about the New-bugs-announce mailing list