aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/Python/executor_cases.c.h
Commit message (Collapse)AuthorAge
* GH-131798: Split up and optimize CALL_ISINSTANCE (GH-133339)Tomas R.8 days
|
* Revert "gh-133395: add option for extension modules to specialize ↵Irit Katriel11 days
| | | | BINARY_OP/SUBSCR, apply to arrays (#133396)" (#133498)
* GH-131798: Split CALL_LEN into several uops (GH-133180)Diego Russo11 days
|
* gh-133395: add option for extension modules to specialize BINARY_OP/SUBSCR, ↵Irit Katriel12 days
| | | | apply to arrays (#133396)
* GH-133231: Changes to executor management to support proposed `sys._jit` ↵Mark Shannon13 days
| | | | | | | | module (GH-133287) * Track the current executor, not the previous one, on the thread-state. * Batch executors for deallocation to avoid having to constantly incref executors; this is an ad-hoc form of deferred reference counting.
* gh-132744: Check recursion limit in CALL_PY_GENERAL (GH-132746)Ken Jin2025-05-02
|
* gh-133258: Fix crash in test_index (GH-133262)Irit Katriel2025-05-01
|
* gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626)Irit Katriel2025-05-01
|
* gh-132661: Implement PEP 750 (#132662)Lysandros Nikolaou2025-04-30
| | | | | | | | | | | | | 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-132508: Use tagged integers on the evaluation stack for the last ↵Mark Shannon2025-04-29
| | | | instruction offset (GH-132545)
* GH-132554: Add stats for GET_ITER (GH-132592)Mark Shannon2025-04-29
| | | | | | | * Add stats for GET_ITER * Look for common iterable types, not iterator types * Add stats for self iter and fix naming in summary
* 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 Gross2025-04-21
| | | | | This avoid reference count contention in the free threading build when calling special methods like `__enter__` and `__exit__`.
* gh-128398: improve error messages when incorrectly using `with` and `async ↵Bénédikt Tran2025-04-19
| | | | | | | with` (#132218) Improve the error message with a suggestion when an object supporting the synchronous (resp. asynchronous) context manager protocol is entered using `async with` (resp. `with`) instead of `with` (resp. `async with`).
* GH-131498: Replace single-element arrays with scalars in bytecodes.c (GH-132615)Brandt Bucher2025-04-18
|
* gh-132097: use a macro for semantically casting function pointers (#132406)Bénédikt Tran2025-04-18
|
* GH-131498: Cases generator: Allow input and 'peek' variables to be modified ↵Mark Shannon2025-04-14
| | | | (GH-132506)
* GH-131798: Remove JIT guards for dict, frozenset, list, set, and tuple ↵Brandt Bucher2025-04-09
| | | | (GH-132289)
* gh-131998: Fix `NULL` dereference when using an unbound method descriptor in ↵Peter Bierma2025-04-08
| | | | | | | | a specialized code path (#132000) Co-authored-by: sobolevn <mail@sobolevn.me> Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Mark Shannon <mark@hotpy.org>
* gh-132011: Fix crash on invalid `CALL_LIST_APPEND` deoptimization (#132018)sobolevn2025-04-06
| | | | Co-authored-by: Victor Stinner <vstinner@python.org> Co-authored-by: Peter Bierma <zintensitydev@gmail.com>
* GH-131498: Cases generator: manage stacks automatically (GH-132074)Mark Shannon2025-04-04
|
* GH-131498: Cases generator: Parse down to C statement level. (GH-131948)Mark Shannon2025-04-02
| | | | | * Parse down to statement level in the cases generator * Add handling for #if macros, treating them much like normal ifs.
* GH-131726: Split up _CHECK_VALIDITY_AND_SET_IP (GH-131810)Brandt Bucher2025-04-01
|
* GH-131798: Allow the JIT to remove more int/float/str guards (GH-131800)Brandt Bucher2025-04-01
|
* gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` (#130708)mpage2025-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 Lavon2025-03-30
|
* gh-130373: Avoid locking in _LOAD_ATTR_WITH_HINT (#130372)Dino Viehland2025-03-28
| | | Avoid locking in _LOAD_ATTR_WITH_HINT
* gh-131738: optimize builtin any/all/tuple calls with a generator expression ↵Irit Katriel2025-03-28
| | | | arg (#131737)
* GH-131729: Consider in-memory state when merging storage and stack (GH-131773)Mark Shannon2025-03-27
|
* gh-123358: Use `_PyStackRef` in `LOAD_DEREF` (gh-130064)Sam Gross2025-03-26
| | | | | | | | | | | | Concurrent accesses from multiple threads to the same `cell` object did not scale well in the free-threaded build. Use `_PyStackRef` and optimistically avoid locking to improve scaling. With the locks around cell reads gone, some of the free threading tests were prone to starvation: the readers were able to run in a tight loop and the writer threads weren't scheduled frequently enough to make timely progress. Adjust the tests to avoid this. Co-authored-by: Donghee Na <donghee.na@python.org>
* GH-131729: Code-gen better liveness analysis (GH-131732)Mark Shannon2025-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-130312: SET_ADD should not lock (#130136)Dino Viehland2025-03-21
| | | SET_ADD should not lock
* GH-130415: Optimize constant comparison in JIT builds (GH-131489)Savannah Ostrowski2025-03-21
|
* GH-131498: Remove conditional stack effects (GH-131499)Mark Shannon2025-03-20
| | | * Adds some missing #includes
* gh-131281: fix compile error due to `BINARY_SUBSCR` (GH-131283)Xuanteng Huang2025-03-15
| | | | | * fix compile error due to `BINARY_SUBSCR` * replace stat_inc with `BINARY_OP`
* gh-115999: Add free-threaded specialization for FOR_ITER (#128798)T. Wouters2025-03-12
| | | | Add free-threaded versions of existing specialization for FOR_ITER (list, tuples, fast range iterators and generators), without significantly affecting their thread-safety. (Iterating over shared lists/tuples/ranges should be fine like before. Reusing iterators between threads is not fine, like before. Sharing generators between threads is a recipe for significant crashes, like before.)
* GH-127705: Use `_PyStackRef`s in the default build. (GH-127875)Mark Shannon2025-03-10
|
* gh-130920: Fix data race in STORE_SUBSCR_LIST_INT (#130923)Sam Gross2025-03-06
| | | | | | The write of the item to the list needs to use an atomic operation in the free threading build. Co-authored-by: Tomasz Pytel <tompytel@gmail.com>
* gh-118331: Fix a couple of issues when list allocation fails (#130811)mpage2025-03-05
| | | | | | | | | | | | | | | | * Fix use after free in list objects Set the items pointer in the list object to NULL after the items array is freed during list deallocation. Otherwise, we can end up with a list object added to the free list that contains a pointer to an already-freed items array. * Mark `_PyList_FromStackRefStealOnSuccess` as escaping I think technically it's not escaping, because the only object that can be decrefed if allocation fails is an exact list, which cannot execute arbitrary code when it is destroyed. However, this seems less intrusive than trying to special cases objects in the assert in `_Py_Dealloc` that checks for non-null stackpointers and shouldn't matter for performance.
* GH-130296: Avoid stack transients in four instructions. (GH-130310)Mark Shannon2025-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-130595: Fix leak in WITH_EXCEPT_START error case (GH-130626)Petr Viktorin2025-02-28
| | | Co-authored-by: Ken Jin <kenjin@python.org>
* gh-130595: Keep traceback alive for WITH_EXCEPT_START (#130562)Dino Viehland2025-02-26
| | | Keep traceback alive for WITH_EXCEPT_START
* GH-130396: Use computed stack limits on linux (GH-130398)Mark Shannon2025-02-25
| | | | | | | | | | | * Implement C recursion protection with limit pointers for Linux, MacOS and Windows * Remove calls to PyOS_CheckStack * Add stack protection to parser * Make tests more robust to low stacks * Improve error messages for stack overflow
* GH-91079: Revert "GH-91079: Implement C stack limits using addresses, not ↵Petr Viktorin2025-02-24
| | | | | | | | | counters. (GH-130007)" for now (GH130413) Revert "GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)" for now Unfortunatlely, the change broke some buildbots. This reverts commit 2498c22fa0a2b560491bc503fa676585c1a603d0.
* GH-91079: Implement C stack limits using addresses, not counters. (GH-130007)Mark Shannon2025-02-19
| | | | | | | | | | | | * Implement C recursion protection with limit pointers * Remove calls to PyOS_CheckStack * Add stack protection to parser * Make tests more robust to low stacks * Improve error messages for stack overflow
* GH-128682: Account for escapes in `DECREF_INPUTS` (GH-129953)Mark Shannon2025-02-12
| | | | | | | | * Handle escapes in DECREF_INPUTS * Mark a few more functions as escaping * Replace DECREF_INPUTS with PyStackRef_CLOSE where possible
* gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ↵Irit Katriel2025-02-07
| | | | (#129700)
* GH-129715: Remove _DYNAMIC_EXIT (GH-129716)Brandt Bucher2025-02-07
|