summaryrefslogtreecommitdiffstats
path: root/Include/opcode_ids.h
Commit message (Collapse)AuthorAgeFilesLines
* gh-142982: Specialize CALL_FUNCTION_EX (GH-143391)Ken Jin9 days1-60/+62
|
* gh-139757: Add BINARY_OP_SUBSCR_USTR_INT (GH-143389)Chris Eibl11 days1-69/+70
|
* GH-139109: Support switch/case dispatch with the tracing interpreter. ↵Mark Shannon2025-11-181-23/+24
| | | | (GH-141703)
* GH-134282: Always borrow references LOAD_CONST (GH-134284)Mark Shannon2025-05-201-22/+20
|
* gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626)Irit Katriel2025-05-011-73/+74
|
* gh-132661: Implement PEP 750 (#132662)Lysandros Nikolaou2025-04-301-116/+118
| | | | | | | | | | | | | Co-authored-by: Lysandros Nikolaou <lisandrosnik@gmail.com> Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Adam Turner <9087854+AA-Turner@users.noreply.github.com> Co-authored-by: Hugo van Kemenade <1324225+hugovk@users.noreply.github.com> Co-authored-by: Wingy <git@wingysam.xyz> Co-authored-by: Koudai Aono <koxudaxi@gmail.com> Co-authored-by: Dave Peck <davepeck@gmail.com> Co-authored-by: Terry Jan Reedy <tjreedy@udel.edu> Co-authored-by: Paul Everitt <pauleveritt@me.com> Co-authored-by: sobolevn <mail@sobolevn.me>
* gh-130907: Treat all module-level annotations as conditional (#131550)Jelle Zijlstra2025-04-281-10/+11
|
* gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` (#130708)mpage2025-04-011-33/+35
| | | Optimize `LOAD_FAST` opcodes into faster versions that load borrowed references onto the operand stack when we can prove that the lifetime of the local outlives the lifetime of the temporary that is loaded onto the stack.
* GH-128534: Fix behavior of branch monitoring for `async for` (GH-130847)Mark Shannon2025-03-071-59/+59
| | | * Both branches in a pair now have a common source and are included in co_branches
* gh-130574: renumber RESUME opcode from 149 to 128 (GH-130685)Tomasz Pytel2025-03-061-84/+84
|
* GH-128534: Instrument branches for `async for` loops. (GH-130569)Mark Shannon2025-02-271-15/+16
|
* gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ↵Irit Katriel2025-02-071-122/+121
| | | | (#129700)
* GH-128563: Generate `opcode = ...` in instructions that need `opcode` ↵Mark Shannon2025-02-031-15/+15
| | | | | (GH-129608) * Remove support for GO_TO_INSTRUCTION
* GH-126599: Remove the PyOptimizer API (GH-129194)Brandt Bucher2025-01-291-35/+37
|
* GH-128914: Remove all but one conditional stack effects (GH-129226)Mark Shannon2025-01-271-49/+49
| | | | | | | | | | | | | * Remove all 'if (0)' and 'if (1)' conditional stack effects * Use array instead of conditional for BUILD_SLICE args * Refactor LOAD_GLOBAL to use a common conditional uop * Remove conditional stack effects from LOAD_ATTR specializations * Replace conditional stack effects in LOAD_ATTR with a 0 or 1 sized array. * Remove conditional stack effects from CALL_FUNCTION_EX
* Revert "GH-128914: Remove conditional stack effects from `bytecodes.c` and ↵Sam Gross2025-01-231-99/+96
| | | | | | | the code generators (GH-128918)" (GH-129202) The commit introduced a ~2.5-3% regression in the free threading build. This reverts commit ab61d3f4303d14a413bc9ae6557c730ffdf7579e.
* GH-128914: Remove conditional stack effects from `bytecodes.c` and the code ↵Mark Shannon2025-01-201-96/+99
| | | | generators (GH-128918)
* gh-100239: specialize long tail of binary operations (#128722)Irit Katriel2025-01-161-76/+77
|
* GH-128685: Specialize (rather than quicken) LOAD_CONST into ↵Mark Shannon2025-01-131-20/+21
| | | | LOAD_CONST_[IM]MORTAL (GH-128708)
* GH-128375: Better instrument for `FOR_ITER` (GH-128445)Mark Shannon2025-01-061-90/+92
|
* GH-122548: Implement branch taken and not taken events for sys.monitoring ↵Mark Shannon2024-12-191-98/+100
| | | | (GH-122564)
* GH-125837: Split `LOAD_CONST` into three. (GH-125972)Mark Shannon2024-10-291-48/+48
| | | | | | | | * Add LOAD_CONST_IMMORTAL opcode * Add LOAD_SMALL_INT opcode * Remove RETURN_CONST opcode
* GH-119866: Spill the stack around escaping calls. (GH-124392)Mark Shannon2024-10-071-1/+0
| | | | | | | * Spill the evaluation around escaping calls in the generated interpreter and JIT. * The code generator tracks live, cached values so they can be saved to memory when needed. * Spills the stack pointer around escaping calls, so that the exact stack is visible to the cycle GC.
* gh-124285: Fix bug where bool() is called multiple times for the same part ↵Irit Katriel2024-09-251-7/+9
| | | | of a boolean expression (#124394)
* GH-123040: Specialize shadowed `LOAD_ATTR`. (GH-123219)Mark Shannon2024-08-231-31/+32
|
* GH-118093: Specialize `CALL_KW` (GH-123006)Mark Shannon2024-08-161-53/+56
|
* GH-120024: Remove `CHECK_EVAL_BREAKER` macro. (GH-122968)Mark Shannon2024-08-141-18/+19
| | | | | * Factor some instructions into micro-ops to isolate CHECK_EVAL_BREAKER for escape analysis * Eliminate CHECK_EVAL_BREAKER macro
* GH-122390: Replace `_Py_GetbaseOpcode` with `_Py_GetBaseCodeUnit` (GH-122942)Mark Shannon2024-08-131-51/+52
|
* GH-122029: Break INSTRUMENTED_CALL into micro-ops, so that its behavior is ↵Mark Shannon2024-07-261-13/+13
| | | | consistent with CALL (GH-122177)
* GH-121131: Clean up and fix some instrumented instructions. (GH-121132)Mark Shannon2024-07-261-15/+15
| | | | * Add support for 'prev_instr' to code generator and refactor some INSTRUMENTED instructions
* GH-122160: Remove BUILD_CONST_KEY_MAP opcode. (GH-122164)Mark Shannon2024-07-251-75/+74
|
* GH-120507: Lower the `BEFORE_WITH` and `BEFORE_ASYNC_WITH` instructions. ↵Mark Shannon2024-06-181-117/+116
| | | | | | | | | (#120640) * Remove BEFORE_WITH and BEFORE_ASYNC_WITH instructions. * Add LOAD_SPECIAL instruction * Reimplement `with` and `async with` statements using LOAD_SPECIAL
* gh-119676: remove several pseudo instructions which are use only in codegen ↵Irit Katriel2024-05-281-9/+5
| | | | (#119677)
* gh-119180: Add LOAD_COMMON_CONSTANT opcode (#119321)Jelle Zijlstra2024-05-221-61/+61
| | | | | | | | | | The PEP 649 implementation will require a way to load NotImplementedError from the bytecode. @markshannon suggested implementing this by converting LOAD_ASSERTION_ERROR into a more general mechanism for loading constants. This PR adds this new opcode. I will work on the rest of the implementation of the PEP separately. Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
* GH-118095: Use broader specializations of CALL in tier 1, for better tier 2 ↵Mark Shannon2024-05-041-57/+59
| | | | | | | | | | support of calls. (GH-118322) * Add CALL_PY_GENERAL, CALL_BOUND_METHOD_GENERAL and call CALL_NON_PY_GENERAL specializations. * Remove CALL_PY_WITH_DEFAULTS specialization * Use CALL_NON_PY_GENERAL in more cases when otherwise failing to specialize
* gh-116381: Remove bad specializations, add fail stats (GH-116464)Ken Jin2024-03-071-40/+37
| | | * Remove bad specializations, add fail stats
* gh-116381: Specialize CONTAINS_OP (GH-116385)Ken Jin2024-03-061-36/+41
| | | | | | | | | | | * Specialize CONTAINS_OP * 📜🤖 Added by blurb_it. * Add PyAPI_FUNC for JIT --------- Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
* GH-111485: Generate instruction and uop metadata (GH-113287)Mark Shannon2023-12-201-1/+1
|
* GH-111485: Factor out tier 2 code generation from the rest of the ↵Mark Shannon2023-12-121-1/+1
| | | | interpreter code generator (GH-112968)
* GH-111485: Factor out opcode ID generator from the main cases generator. ↵Mark Shannon2023-12-081-4/+5
| | | | (GH-112831)
* gh-111354: Simplify _PyGen_yf by moving some of its work to the compiler and ↵Irit Katriel2023-11-031-75/+75
| | | | frame state (#111648)
* gh-111354: simplify detection of RESUME after YIELD_VALUE at except-depth 1 ↵Irit Katriel2023-11-021-75/+75
| | | | (#111459)
* GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300)Brandt Bucher2023-09-131-51/+52
|
* gh-109256: allocate opcode IDs for internal opcodes in their own range (#109269)Irit Katriel2023-09-121-186/+186
|
* GH-108614: Add `RESUME_CHECK` instruction (GH-108630)Mark Shannon2023-09-071-141/+142
|
* gh-105481: generate op IDs from bytecode.c instead of hard coding them in ↵Irit Katriel2023-08-161-217/+219
| | | | opcode.py (#107971)
* gh-105481: split opcode_ids.h out of opcode.h so that it can be generated ↵Irit Katriel2023-08-111-0/+235
separately (#107866)