gh-106529: Split FOR_ITER_{LIST,TUPLE} into uops (#106696)

Also rename `_ITER_EXHAUSTED_XXX` to `_IS_ITER_EXHAUSTED_XXX` to make it clear this is a test.
This commit is contained in:
Guido van Rossum 2023-07-13 17:27:35 -07:00 committed by GitHub
parent 128a6c1d88
commit 025995fead
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
6 changed files with 385 additions and 118 deletions

View file

@ -39,12 +39,18 @@
#define _GUARD_TYPE_VERSION 317
#define _CHECK_MANAGED_OBJECT_HAS_VALUES 318
#define IS_NONE 319
#define _ITER_CHECK_RANGE 320
#define _ITER_EXHAUSTED_RANGE 321
#define _ITER_NEXT_RANGE 322
#define _POP_JUMP_IF_FALSE 323
#define _POP_JUMP_IF_TRUE 324
#define JUMP_TO_TOP 325
#define _ITER_CHECK_LIST 320
#define _IS_ITER_EXHAUSTED_LIST 321
#define _ITER_NEXT_LIST 322
#define _ITER_CHECK_TUPLE 323
#define _IS_ITER_EXHAUSTED_TUPLE 324
#define _ITER_NEXT_TUPLE 325
#define _ITER_CHECK_RANGE 326
#define _IS_ITER_EXHAUSTED_RANGE 327
#define _ITER_NEXT_RANGE 328
#define _POP_JUMP_IF_FALSE 329
#define _POP_JUMP_IF_TRUE 330
#define JUMP_TO_TOP 331
#ifndef NEED_OPCODE_METADATA
extern int _PyOpcode_num_popped(int opcode, int oparg, bool jump);
@ -1323,8 +1329,14 @@ const char * const _PyOpcode_uop_name[512] = {
[_GUARD_TYPE_VERSION] = "_GUARD_TYPE_VERSION",
[_CHECK_MANAGED_OBJECT_HAS_VALUES] = "_CHECK_MANAGED_OBJECT_HAS_VALUES",
[IS_NONE] = "IS_NONE",
[_ITER_CHECK_LIST] = "_ITER_CHECK_LIST",
[_IS_ITER_EXHAUSTED_LIST] = "_IS_ITER_EXHAUSTED_LIST",
[_ITER_NEXT_LIST] = "_ITER_NEXT_LIST",
[_ITER_CHECK_TUPLE] = "_ITER_CHECK_TUPLE",
[_IS_ITER_EXHAUSTED_TUPLE] = "_IS_ITER_EXHAUSTED_TUPLE",
[_ITER_NEXT_TUPLE] = "_ITER_NEXT_TUPLE",
[_ITER_CHECK_RANGE] = "_ITER_CHECK_RANGE",
[_ITER_EXHAUSTED_RANGE] = "_ITER_EXHAUSTED_RANGE",
[_IS_ITER_EXHAUSTED_RANGE] = "_IS_ITER_EXHAUSTED_RANGE",
[_ITER_NEXT_RANGE] = "_ITER_NEXT_RANGE",
[_POP_JUMP_IF_FALSE] = "_POP_JUMP_IF_FALSE",
[_POP_JUMP_IF_TRUE] = "_POP_JUMP_IF_TRUE",