mirror of
https://github.com/python/cpython.git
synced 2025-11-20 02:50:14 +00:00
GH-121131: Clean up and fix some instrumented instructions. (GH-121132)
* Add support for 'prev_instr' to code generator and refactor some INSTRUMENTED instructions
This commit is contained in:
parent
d9efa45d74
commit
afb0aa6ed2
15 changed files with 277 additions and 215 deletions
9
Include/internal/pycore_opcode_metadata.h
generated
9
Include/internal/pycore_opcode_metadata.h
generated
|
|
@ -231,6 +231,8 @@ int _PyOpcode_num_popped(int opcode, int oparg) {
|
|||
return 0;
|
||||
case INSTRUMENTED_JUMP_FORWARD:
|
||||
return 0;
|
||||
case INSTRUMENTED_LINE:
|
||||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_ATTR:
|
||||
return 3;
|
||||
case INSTRUMENTED_POP_JUMP_IF_FALSE:
|
||||
|
|
@ -676,6 +678,8 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
return 0;
|
||||
case INSTRUMENTED_JUMP_FORWARD:
|
||||
return 0;
|
||||
case INSTRUMENTED_LINE:
|
||||
return 0;
|
||||
case INSTRUMENTED_LOAD_SUPER_ATTR:
|
||||
return 1 + (oparg & 1);
|
||||
case INSTRUMENTED_POP_JUMP_IF_FALSE:
|
||||
|
|
@ -689,9 +693,9 @@ int _PyOpcode_num_pushed(int opcode, int oparg) {
|
|||
case INSTRUMENTED_RESUME:
|
||||
return 0;
|
||||
case INSTRUMENTED_RETURN_CONST:
|
||||
return 0;
|
||||
return 1;
|
||||
case INSTRUMENTED_RETURN_VALUE:
|
||||
return 0;
|
||||
return 1;
|
||||
case INSTRUMENTED_YIELD_VALUE:
|
||||
return 1;
|
||||
case INTERPRETER_EXIT:
|
||||
|
|
@ -1083,6 +1087,7 @@ const struct opcode_metadata _PyOpcode_opcode_metadata[264] = {
|
|||
[INSTRUMENTED_INSTRUCTION] = { true, INSTR_FMT_IX, HAS_ERROR_FLAG | HAS_ESCAPES_FLAG },
|
||||
[INSTRUMENTED_JUMP_BACKWARD] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG | HAS_EVAL_BREAK_FLAG },
|
||||
[INSTRUMENTED_JUMP_FORWARD] = { true, INSTR_FMT_IB, HAS_ARG_FLAG },
|
||||
[INSTRUMENTED_LINE] = { true, INSTR_FMT_IX, HAS_ESCAPES_FLAG },
|
||||
[INSTRUMENTED_LOAD_SUPER_ATTR] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
|
||||
[INSTRUMENTED_POP_JUMP_IF_FALSE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
|
||||
[INSTRUMENTED_POP_JUMP_IF_NONE] = { true, INSTR_FMT_IBC, HAS_ARG_FLAG },
|
||||
|
|
|
|||
4
Include/internal/pycore_uop_ids.h
generated
4
Include/internal/pycore_uop_ids.h
generated
|
|
@ -145,15 +145,13 @@ extern "C" {
|
|||
#define _INSTRUMENTED_INSTRUCTION INSTRUMENTED_INSTRUCTION
|
||||
#define _INSTRUMENTED_JUMP_BACKWARD INSTRUMENTED_JUMP_BACKWARD
|
||||
#define _INSTRUMENTED_JUMP_FORWARD INSTRUMENTED_JUMP_FORWARD
|
||||
#define _INSTRUMENTED_LINE INSTRUMENTED_LINE
|
||||
#define _INSTRUMENTED_LOAD_SUPER_ATTR INSTRUMENTED_LOAD_SUPER_ATTR
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_FALSE INSTRUMENTED_POP_JUMP_IF_FALSE
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_NONE INSTRUMENTED_POP_JUMP_IF_NONE
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_NOT_NONE INSTRUMENTED_POP_JUMP_IF_NOT_NONE
|
||||
#define _INSTRUMENTED_POP_JUMP_IF_TRUE INSTRUMENTED_POP_JUMP_IF_TRUE
|
||||
#define _INSTRUMENTED_RESUME INSTRUMENTED_RESUME
|
||||
#define _INSTRUMENTED_RETURN_CONST INSTRUMENTED_RETURN_CONST
|
||||
#define _INSTRUMENTED_RETURN_VALUE INSTRUMENTED_RETURN_VALUE
|
||||
#define _INSTRUMENTED_YIELD_VALUE INSTRUMENTED_YIELD_VALUE
|
||||
#define _INTERNAL_INCREMENT_OPT_COUNTER 381
|
||||
#define _IS_NONE 382
|
||||
#define _IS_OP IS_OP
|
||||
|
|
|
|||
30
Include/opcode_ids.h
generated
30
Include/opcode_ids.h
generated
|
|
@ -204,21 +204,21 @@ extern "C" {
|
|||
#define INSTRUMENTED_RESUME 236
|
||||
#define INSTRUMENTED_END_FOR 237
|
||||
#define INSTRUMENTED_END_SEND 238
|
||||
#define INSTRUMENTED_RETURN_VALUE 239
|
||||
#define INSTRUMENTED_RETURN_CONST 240
|
||||
#define INSTRUMENTED_YIELD_VALUE 241
|
||||
#define INSTRUMENTED_LOAD_SUPER_ATTR 242
|
||||
#define INSTRUMENTED_FOR_ITER 243
|
||||
#define INSTRUMENTED_CALL 244
|
||||
#define INSTRUMENTED_CALL_KW 245
|
||||
#define INSTRUMENTED_CALL_FUNCTION_EX 246
|
||||
#define INSTRUMENTED_INSTRUCTION 247
|
||||
#define INSTRUMENTED_JUMP_FORWARD 248
|
||||
#define INSTRUMENTED_JUMP_BACKWARD 249
|
||||
#define INSTRUMENTED_POP_JUMP_IF_TRUE 250
|
||||
#define INSTRUMENTED_POP_JUMP_IF_FALSE 251
|
||||
#define INSTRUMENTED_POP_JUMP_IF_NONE 252
|
||||
#define INSTRUMENTED_POP_JUMP_IF_NOT_NONE 253
|
||||
#define INSTRUMENTED_LOAD_SUPER_ATTR 239
|
||||
#define INSTRUMENTED_FOR_ITER 240
|
||||
#define INSTRUMENTED_CALL 241
|
||||
#define INSTRUMENTED_CALL_KW 242
|
||||
#define INSTRUMENTED_CALL_FUNCTION_EX 243
|
||||
#define INSTRUMENTED_INSTRUCTION 244
|
||||
#define INSTRUMENTED_JUMP_FORWARD 245
|
||||
#define INSTRUMENTED_JUMP_BACKWARD 246
|
||||
#define INSTRUMENTED_POP_JUMP_IF_TRUE 247
|
||||
#define INSTRUMENTED_POP_JUMP_IF_FALSE 248
|
||||
#define INSTRUMENTED_POP_JUMP_IF_NONE 249
|
||||
#define INSTRUMENTED_POP_JUMP_IF_NOT_NONE 250
|
||||
#define INSTRUMENTED_RETURN_VALUE 251
|
||||
#define INSTRUMENTED_RETURN_CONST 252
|
||||
#define INSTRUMENTED_YIELD_VALUE 253
|
||||
#define INSTRUMENTED_LINE 254
|
||||
#define JUMP 256
|
||||
#define JUMP_NO_INTERRUPT 257
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue