]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
gh-104909: Split some more insts into ops (#109943)
authorGuido van Rossum <guido@python.org>
Wed, 27 Sep 2023 22:27:44 +0000 (15:27 -0700)
committerGitHub <noreply@github.com>
Wed, 27 Sep 2023 22:27:44 +0000 (15:27 -0700)
commit5bb6f0fcba663e1006f9063d1027ce8bd9f8effb
tree79cfb95b0d8d6582cfeca4f53b0a69ce2d24565f
parent45cf5b0c69bb5c51f33fc681d90c45147e311ddf
gh-104909: Split some more insts into ops (#109943)

These are the most popular specializations of `LOAD_ATTR` and `STORE_ATTR`
that weren't already viable uops:

* Split LOAD_ATTR_METHOD_WITH_VALUES
* Split LOAD_ATTR_METHOD_NO_DICT
* Split LOAD_ATTR_SLOT
* Split STORE_ATTR_SLOT
* Split STORE_ATTR_INSTANCE_VALUE

Also:

* Add `-v` flag to code generator which prints a list of non-viable uops
  (easter-egg: it can print execution counts -- see source)
* Double _Py_UOP_MAX_TRACE_LENGTH to 128

I had dropped one of the DEOPT_IF() calls! :-(
Include/internal/pycore_opcode_metadata.h
Include/internal/pycore_uops.h
Python/abstract_interp_cases.c.h
Python/bytecodes.c
Python/executor_cases.c.h
Python/generated_cases.c.h
Tools/cases_generator/analysis.py
Tools/cases_generator/generate_cases.py