Skip to content

Split opcodes into micro-ops #104909

Closed
Closed
@gvanrossum

Description

@gvanrossum

See faster-cpython/ideas#592. This project can be parallelized, and I could use help!

Note that initially we don't have a tier-2 interpreter or instruction format defined yet, but the first stage of splitting doesn't require that.

Remaining non-viable ops

With usage stats from the latest weekly pyperformance run (not all are uop candidates):

 956,835,460 YIELD_VALUE 490,121,077 SEND_GEN (specialization of SEND) 429,220,003 JUMP_FORWARD 410,623,920 EXTENDED_ARG 390,537,200 JUMP_BACKWARD_NO_INTERRUPT 250,483,954 RETURN_GENERATOR 239,793,181 CALL_LIST_APPEND (specialization of CALL) 168,297,543 CALL_KW 162,922,780 FOR_ITER_GEN (specialization of FOR_ITER) 157,442,920 CALL_PY_WITH_DEFAULTS (specialization of CALL) 145,986,780 BINARY_SUBSCR_GETITEM (specialization of BINARY_SUBSCR) 135,636,840 STORE_FAST_LOAD_FAST 83,118,452 MAKE_CELL 74,149,898 CALL_FUNCTION_EX 68,587,076 CALL_ALLOC_AND_ENTER_INIT (specialization of CALL) 49,897,724 STORE_ATTR_WITH_HINT (specialization of STORE_ATTR) 49,846,886 LOAD_ATTR_PROPERTY (specialization of LOAD_ATTR) 8,224,500 RERAISE 6,000,000 END_ASYNC_FOR 5,801,385 BEFORE_WITH 2,892,780 RAISE_VARARGS 1,850,040 IMPORT_FROM 1,813,620 IMPORT_NAME 240 CLEANUP_THROW 120 BEFORE_ASYNC_WITH ENTER_EXECUTOR LOAD_ATTR_GETATTRIBUTE_OVERRIDDEN (specialization of LOAD_ATTR) 

Linked PRs

Metadata

Metadata

Assignees

No one assigned

    Labels

    interpreter-core(Objects, Python, Grammar, and Parser dirs)type-bugAn unexpected behavior, bug, or error

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions