Skip to content

Commit 5bb6f0f

Browse files
authored
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! :-(
1 parent 45cf5b0 commit 5bb6f0f

File tree

8 files changed

+519
-115
lines changed

8 files changed

+519
-115
lines changed

Include/internal/pycore_opcode_metadata.h

+94-26
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_uops.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ extern "C" {
1010

1111
#include "pycore_frame.h" // _PyInterpreterFrame
1212

13-
#define _Py_UOP_MAX_TRACE_LENGTH 64
13+
#define _Py_UOP_MAX_TRACE_LENGTH 128
1414

1515
typedef struct {
1616
uint32_t opcode;

Python/abstract_interp_cases.c.h

+47
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)