Commit message (Collapse) | Author | Age | |
---|---|---|---|
* | GH-131798: Split up and optimize CALL_ISINSTANCE (GH-133339) | Tomas R. | 2025-05-08 |
| | |||
* | gh-133273: Keep instruction definitions in `bytecodes.c` and ↵ | Tomas R. | 2025-05-09 |
| | | | | `optimizer_bytecodes.c` in sync (GH-133320) | ||
* | GH-131798: Split CALL_LEN into several uops (GH-133180) | Diego Russo | 2025-05-05 |
| | |||
* | gh-131798: JIT - Use `sym_new_type` instead of `sym_new_not_null` for ↵ | Nadeshiko Manju | 2025-04-27 |
| | | | | | | _BUILD_STRING, _BUILD_SET (GH-132564) Signed-off-by: Manjusaka <me@manjusaka.me> | ||
* | gh-131798: JIT: Propagate the result in `_BINARY_OP_SUBSCR_TUPLE_INT` ↵ | Tomas R. | 2025-04-27 |
| | | | | (GH-133003) | ||
* | gh-131798: JIT: Narrow the return type of _CALL_LEN to int (#132940) | Diego Russo | 2025-04-26 |
| | | | | | | Reduce unnecessary guards whenever `len()` is called and used after. Co-authored-by: Max Bernstein <tekknolagi@gmail.com> | ||
* | GH-131798: Split up and optimize CALL_TUPLE_1 in the JIT (GH-132851) | Tomas R. | 2025-04-24 |
| | |||
* | GH-131798: Split up and optimize CALL_STR_1 in the JIT (GH-132849) | Tomas R. | 2025-04-24 |
| | |||
* | GH-131798: JIT: Split CALL_TYPE_1 into several uops (GH-132419) | Tomas R. | 2025-04-22 |
| | |||
* | gh-131586: Avoid refcount contention in context managers (gh-131851) | Sam Gross | 2025-04-21 |
| | | | | | This avoid reference count contention in the free threading build when calling special methods like `__enter__` and `__exit__`. | ||
* | GH-130415: Improve the JIT's unneeded uop removal pass (GH-132333) | Brandt Bucher | 2025-04-21 |
| | |||
* | GH-131498: Replace single-element arrays with scalars in bytecodes.c (GH-132615) | Brandt Bucher | 2025-04-18 |
| | |||
* | gh-131798: Use `sym_new_type` instead of `sym_new_not_null` for ↵ | Nadeshiko Manju | 2025-04-17 |
| | | | | | | | `_BUILD_LIST`, `_BUILD_SLICE`, and `_BUILD_MAP` (GH-132434) --------- Signed-off-by: Manjusaka <me@manjusaka.me> | ||
* | GH-131798: Remove JIT guards for dict, frozenset, list, set, and tuple ↵ | Brandt Bucher | 2025-04-09 |
| | | | | (GH-132289) | ||
* | GH-131798: Narrow the result of _CONTAINS_OP_DICT to bool in the JIT (GH-132269) | Nadeshiko Manju | 2025-04-08 |
| | | | | Co-authored-by: Tomas R. <tomas.roun8@gmail.com> | ||
* | GH-131798: Narrow the result type of _BINARY_OP_SUBSCR_STR_INT to str in the ↵ | Tomas R. | 2025-04-08 |
| | | | | JIT (GH-132153) | ||
* | GH-131798: Narrow the result of _CONTAINS_OP_SET to bool in the JIT (GH-132057) | Tomas R. | 2025-04-05 |
| | |||
* | GH-131498: Cases generator: Parse down to C statement level. (GH-131948) | Mark Shannon | 2025-04-02 |
| | | | | | * Parse down to statement level in the cases generator * Add handling for #if macros, treating them much like normal ifs. | ||
* | GH-131798: Allow the JIT to remove more int/float/str guards (GH-131800) | Brandt Bucher | 2025-04-01 |
| | |||
* | gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` (#130708) | mpage | 2025-04-01 |
| | | | 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-131798: Remove type checks for _TO_BOOL_STR (GH-131816) | Amit Lavon | 2025-03-30 |
| | |||
* | GH-130415: Remove redundant sym_matches_type calls in the JIT optimizer ↵ | Brandt Bucher | 2025-03-27 |
| | | | | (GH-131778) | ||
* | GH-131729: Code-gen better liveness analysis (GH-131732) | Mark Shannon | 2025-03-26 |
| | | | | | | | | | | | | * Rename 'defined' attribute to 'in_local' to more accurately reflect how it is used * Make death of variables explicit even for array variables. * Convert in_memory from boolean to stack offset * Don't apply liveness analysis to optimizer generated code * Fix RETURN_VALUE in optimizer | ||
* | GH-130415: Optimize constant comparison in JIT builds (GH-131489) | Savannah Ostrowski | 2025-03-21 |
| | |||
* | GH-131498: Remove conditional stack effects (GH-131499) | Mark Shannon | 2025-03-20 |
| | | | * Adds some missing #includes | ||
* | GH-130903: typo in optimizer DSL for _GUARD_BOTH_UNICODE (#130904) | Jamie Phan | 2025-03-06 |
| | | | Typo introduced in gh-118910. | ||
* | GH-130415: Narrow str to "" based on boolean tests (GH-130476) | Amit Lavon | 2025-03-04 |
| | |||
* | GH-130415: Narrow int to 0 based on boolean tests (GH-130772) | Klaus117 | 2025-03-04 |
| | |||
* | GH-130415: Use boolean guards to narrow types to values in the JIT (GH-130659) | Brandt Bucher | 2025-03-02 |
| | |||
* | GH-130296: Avoid stack transients in four instructions. (GH-130310) | Mark Shannon | 2025-02-28 |
| | | | | | | | | | * Combine _GUARD_GLOBALS_VERSION_PUSH_KEYS and _LOAD_GLOBAL_MODULE_FROM_KEYS into _LOAD_GLOBAL_MODULE * Combine _GUARD_BUILTINS_VERSION_PUSH_KEYS and _LOAD_GLOBAL_BUILTINS_FROM_KEYS into _LOAD_GLOBAL_BUILTINS * Combine _CHECK_ATTR_MODULE_PUSH_KEYS and _LOAD_ATTR_MODULE_FROM_KEYS into _LOAD_ATTR_MODULE * Remove stack transient in LOAD_ATTR_WITH_HINT | ||
* | gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ↵ | Irit Katriel | 2025-02-07 |
| | | | | (#129700) | ||
* | GH-129709: Clean up tier two (GH-129710) | Brandt Bucher | 2025-02-07 |
| | |||
* | GH-128682: Make `PyStackRef_CLOSE` escaping. (GH-129404) | Mark Shannon | 2025-02-03 |
| | |||
* | GH-128914: Remove all but one conditional stack effects (GH-129226) | Mark Shannon | 2025-01-27 |
| | | | | | | | | | | | | | * 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 Gross | 2025-01-23 |
| | | | | | | | 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 Shannon | 2025-01-20 |
| | | | | generators (GH-128918) | ||
* | GH-128939: Refactor JIT optimize structs (GH-128940) | Mark Shannon | 2025-01-20 |
| | |||
* | gh-115999: Specialize `LOAD_ATTR` for instance and class receivers in ↵ | mpage | 2025-01-14 |
| | | | | | | | free-threaded builds (#128164) Finish specialization for LOAD_ATTR in the free-threaded build by adding support for class and instance receivers. | ||
* | GH-128685: Specialize (rather than quicken) LOAD_CONST into ↵ | Mark Shannon | 2025-01-13 |
| | | | | LOAD_CONST_[IM]MORTAL (GH-128708) | ||
* | GH-127809: Fix the JIT's understanding of ** (GH-127844) | Brandt Bucher | 2025-01-07 |
| | |||
* | gh-128195: Add `_REPLACE_WITH_TRUE` to the tier2 optimizer (GH-128203) | Yan Yanchii | 2024-12-24 |
| | | | Add `_REPLACE_WITH_TRUE` to the tier2 optimizer | ||
* | gh-115999: Enable BINARY_SUBSCR_GETITEM for free-threaded build (gh-127737) | Donghee Na | 2024-12-19 |
| | |||
* | gh-115999: Specialize loading attributes from modules in free-threaded ↵ | mpage | 2024-12-13 |
| | | | | | | | | | builds (#127711) We use the same approach that was used for specialization of LOAD_GLOBAL in free-threaded builds: _CHECK_ATTR_MODULE is renamed to _CHECK_ATTR_MODULE_PUSH_KEYS; it pushes the keys object for the following _LOAD_ATTR_MODULE_FROM_KEYS (nee _LOAD_ATTR_MODULE). This arrangement avoids having to recheck the keys version. _LOAD_ATTR_MODULE is renamed to _LOAD_ATTR_MODULE_FROM_KEYS; it loads the value from the keys object pushed by the preceding _CHECK_ATTR_MODULE_PUSH_KEYS at the cached index. | ||
* | gh-120619: Strength reduce function guards, support 2-operand uop forms ↵ | Ken Jin | 2024-11-09 |
| | | | | | (GH-124846) Co-authored-by: Brandt Bucher <brandtbucher@gmail.com> | ||
* | GH-125837: Split `LOAD_CONST` into three. (GH-125972) | Mark Shannon | 2024-10-29 |
| | | | | | | | | * Add LOAD_CONST_IMMORTAL opcode * Add LOAD_SMALL_INT opcode * Remove RETURN_CONST opcode | ||
* | GH-125912: Teach the JIT's optimizer about _BINARY_OP_INPLACE_ADD_UNICODE ↵ | Brandt Bucher | 2024-10-28 |
| | | | | (GH-125935) | ||
* | gh-115999: Refactor `LOAD_GLOBAL` specializations to avoid reloading ↵ | mpage | 2024-10-09 |
| | | | | | | | | | | | | | | | | | | {globals, builtins} keys (gh-124953) Each of the `LOAD_GLOBAL` specializations is implemented roughly as: 1. Load keys version. 2. Load cached keys version. 3. Deopt if (1) and (2) don't match. 4. Load keys. 5. Load cached index into keys. 6. Load object from (4) at offset from (5). This is not thread-safe in free-threaded builds; the keys object may be replaced in between steps (3) and (4). This change refactors the specializations to avoid reloading the keys object and instead pass the keys object from guards to be consumed by downstream uops. | ||
* | GH-119866: Spill the stack around escaping calls. (GH-124392) | Mark Shannon | 2024-10-07 |
| | | | | | | | * 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-120619: Optimize through `_Py_FRAME_GENERAL` (GH-124518) | Ken Jin | 2024-10-03 |
| | | | | | * Optimize through _Py_FRAME_GENERAL * refactor | ||
* | GH-115776: Allow any fixed sized object to have inline values (GH-123192) | Mark Shannon | 2024-08-21 |
| |