bpo-46841: Move the cache for LOAD_GLOBAL inline. (GH-31575)

This commit is contained in:
Mark Shannon 2022-02-28 12:56:29 +00:00 committed by GitHub
parent da7d99a4de
commit 4558af5a8f
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 284 additions and 232 deletions

20
Include/opcode.h generated
View file

@ -185,8 +185,11 @@ extern "C" {
#define STORE_FAST__STORE_FAST 175
#define LOAD_FAST__LOAD_ATTR_INSTANCE_VALUE 176
#define DO_TRACING 255
#ifdef NEED_OPCODE_JUMP_TABLES
static uint32_t _PyOpcode_RelativeJump[8] = {
extern const uint8_t _PyOpcode_InlineCacheEntries[256];
#ifdef NEED_OPCODE_TABLES
static const uint32_t _PyOpcode_RelativeJump[8] = {
0U,
0U,
536870912U,
@ -196,7 +199,7 @@ static uint32_t _PyOpcode_RelativeJump[8] = {
0U,
0U,
};
static uint32_t _PyOpcode_Jump[8] = {
static const uint32_t _PyOpcode_Jump[8] = {
0U,
0U,
536870912U,
@ -206,6 +209,12 @@ static uint32_t _PyOpcode_Jump[8] = {
0U,
0U,
};
const uint8_t _PyOpcode_InlineCacheEntries[256] = {
[UNPACK_SEQUENCE] = 1,
[LOAD_GLOBAL] = 5,
[BINARY_OP] = 1,
};
#endif /* OPCODE_TABLES */
#define HAS_CONST(op) (false\
@ -240,11 +249,6 @@ static uint32_t _PyOpcode_Jump[8] = {
#define NB_INPLACE_TRUE_DIVIDE 24
#define NB_INPLACE_XOR 25
static const uint8_t _PyOpcode_InlineCacheEntries[256] = {
[UNPACK_SEQUENCE] = 1,
[BINARY_OP] = 1,
};
#define HAS_ARG(op) ((op) >= HAVE_ARGUMENT)
/* Reserve some bytecodes for internal use in the compiler.