| Commit message (Collapse) | Author | Age | Files | Lines | ||
|---|---|---|---|---|---|---|
| ... | ||||||
| * | GH-135379: Specialize int operations for compact ints only (GH-135668) | Mark Shannon | 2025-06-19 | 1 | -16/+27 | |
| | | ||||||
| * | gh-134584: Decref elimination for float ops in the JIT (GH-134588) | Ken Jin | 2025-06-17 | 1 | -0/+46 | |
| | | | | This PR adds a PyJitRef API to the JIT's optimizer that mimics the _PyStackRef API. This allows it to track references and their stack lifetimes properly. Thus opening up the doorway to refcount elimination in the JIT. | |||||
| * | GH-135379: Support limited scalar replacement for replicated uops in the JIT ↵ | Mark Shannon | 2025-06-17 | 1 | -4/+2 | |
| | | | | | | | code generator. (GH-135563) * Use it to support efficient specializations of COPY and SWAP in the JIT. | |||||
| * | gh-135474: Specialize arithmetic only on compact ints (GH-135479) | Ken Jin | 2025-06-14 | 1 | -3/+6 | |
| | | | | | Specialize arithmetic only on compact ints. This also makes int operations non-escaping in the JIT and in tier 1. | |||||
| * | GH-135379: Remove types from stack items in code generator. (GH-135384) | Mark Shannon | 2025-06-11 | 1 | -30/+33 | |
| | | | | | * Make casts explicit in the instruction definitions | |||||
| * | GH-132554: Fix tier2 `FOR_ITER` implementation and optimizations (GH-135137) | Mark Shannon | 2025-06-05 | 1 | -74/+23 | |
| | | ||||||
| * | GH-134879: Fix `INSTRUMENT_FOR_ITER` for list/tuple (#134897) | Mark Shannon | 2025-05-30 | 1 | -1/+1 | |
| | | | | Fix INSTRUMENT_FOR_ITER for list/tuple | |||||
| * | GH-132554: "Virtual" iterators (GH-132555) | Mark Shannon | 2025-05-27 | 1 | -157/+143 | |
| | | | | | | | * FOR_ITER now pushes either the iterator and NULL or leaves the iterable and pushes tagged zero * NEXT_ITER uses the tagged int as the index into the sequence or, if TOS is NULL, iterates as before. | |||||
| * | GH-131798: Optimize away isinstance calls in the JIT (GH-134369) | Tomas R. | 2025-05-22 | 1 | -3/+39 | |
| | | ||||||
| * | GH-131798: Optimize cached class attributes and methods in the JIT (GH-134403) | Brandt Bucher | 2025-05-22 | 1 | -0/+12 | |
| | | ||||||
| * | GH-131798: Narrow types more aggressively in the JIT (GH-134373) | Brandt Bucher | 2025-05-20 | 1 | -0/+5 | |
| | | ||||||
| * | GH-134282: Always borrow references LOAD_CONST (GH-134284) | Mark Shannon | 2025-05-20 | 1 | -56/+7 | |
| | | ||||||
| * | GH-131798: Add _POP_CALL_TWO_LOAD_CONST_INLINE_BORROW (GH-134268) | Tomas R. | 2025-05-19 | 1 | -0/+9 | |
| | | ||||||
| * | GH-131798: Split CALL_LIST_APPEND into several uops (GH-134240) | Diego Russo | 2025-05-19 | 1 | -6/+21 | |
| | | ||||||
| * | GH-131798: Split up and optimize CALL_ISINSTANCE (GH-133339) | Tomas R. | 2025-05-08 | 1 | -14/+24 | |
| | | ||||||
| * | Revert "gh-133395: add option for extension modules to specialize ↵ | Irit Katriel | 2025-05-06 | 1 | -13/+2 | |
| | | | | | BINARY_OP/SUBSCR, apply to arrays (#133396)" (#133498) | |||||
| * | GH-131798: Split CALL_LEN into several uops (GH-133180) | Diego Russo | 2025-05-05 | 1 | -15/+17 | |
| | | ||||||
| * | gh-133395: add option for extension modules to specialize BINARY_OP/SUBSCR, ↵ | Irit Katriel | 2025-05-05 | 1 | -2/+13 | |
| | | | | | apply to arrays (#133396) | |||||
| * | GH-133231: Changes to executor management to support proposed `sys._jit` ↵ | Mark Shannon | 2025-05-04 | 1 | -10/+24 | |
| | | | | | | | | | 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 Jin | 2025-05-02 | 1 | -0/+7 | |
| | | ||||||
| * | gh-133258: Fix crash in test_index (GH-133262) | Irit Katriel | 2025-05-01 | 1 | -3/+2 | |
| | | ||||||
| * | Remove duplicate includes: Python/{bytecodes,ceval,optimizer_analysis}.c ↵ | Adam Turner | 2025-05-01 | 1 | -2/+1 | |
| | | | | | (#132622) | |||||
| * | gh-100239: specialize BINARY_OP/SUBSCR for list-slice (#132626) | Irit Katriel | 2025-05-01 | 1 | -0/+24 | |
| | | ||||||
| * | GH-125515: Remove two unused error branches. (#133181) | Russell Keith-Magee | 2025-04-30 | 1 | -12/+0 | |
| | | | | Remove two unused error branches in the generated bytecode handling. | |||||
| * | gh-132661: Implement PEP 750 (#132662) | Lysandros Nikolaou | 2025-04-30 | 1 | -0/+36 | |
| | | | | | | | | | | | | | | 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> | |||||
| * | Get rid of ERROR_IF's "label" parameter (GH-132654) | Brandt Bucher | 2025-04-30 | 1 | -125/+125 | |
| | | ||||||
| * | GH-132508: Use tagged integers on the evaluation stack for the last ↵ | Mark Shannon | 2025-04-29 | 1 | -16/+4 | |
| | | | | | instruction offset (GH-132545) | |||||
| * | GH-132554: Add stats for GET_ITER (GH-132592) | Mark Shannon | 2025-04-29 | 1 | -0/+3 | |
| | | | | | | | | * Add stats for GET_ITER * Look for common iterable types, not iterator types * Add stats for self iter and fix naming in summary | |||||
| * | gh-130907: Treat all module-level annotations as conditional (#131550) | Jelle Zijlstra | 2025-04-28 | 1 | -0/+4 | |
| | | ||||||
| * | GH-131798: Split up and optimize CALL_TUPLE_1 in the JIT (GH-132851) | Tomas R. | 2025-04-24 | 1 | -3/+9 | |
| | | ||||||
| * | GH-131798: Split up and optimize CALL_STR_1 in the JIT (GH-132849) | Tomas R. | 2025-04-24 | 1 | -3/+9 | |
| | | ||||||
| * | GH-131798: JIT: Split CALL_TYPE_1 into several uops (GH-132419) | Tomas R. | 2025-04-22 | 1 | -3/+18 | |
| | | ||||||
| * | gh-131586: Avoid refcount contention in context managers (gh-131851) | Sam Gross | 2025-04-21 | 1 | -13/+18 | |
| | | | | | | 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 Tran | 2025-04-19 | 1 | -3/+6 | |
| | | | | | | | | 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 Bucher | 2025-04-18 | 1 | -139/+133 | |
| | | ||||||
| * | gh-132097: use a macro for semantically casting function pointers (#132406) | Bénédikt Tran | 2025-04-18 | 1 | -6/+4 | |
| | | ||||||
| * | GH-131498: Cases generator: Allow input and 'peek' variables to be modified ↵ | Mark Shannon | 2025-04-14 | 1 | -17/+10 | |
| | | | | | (GH-132506) | |||||
| * | GH-131798: Remove JIT guards for dict, frozenset, list, set, and tuple ↵ | Brandt Bucher | 2025-04-09 | 1 | -28/+81 | |
| | | | | | (GH-132289) | |||||
| * | gh-131998: Fix `NULL` dereference when using an unbound method descriptor in ↵ | Peter Bierma | 2025-04-08 | 1 | -0/+4 | |
| | | | | | | | | | 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) | sobolevn | 2025-04-06 | 1 | -1/+1 | |
| | | | | | 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 Shannon | 2025-04-04 | 1 | -30/+37 | |
| | | ||||||
| * | GH-131498: Cases generator: Parse down to C statement level. (GH-131948) | Mark Shannon | 2025-04-02 | 1 | -3/+5 | |
| | | | | | | * 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 Bucher | 2025-04-01 | 1 | -5/+0 | |
| | | ||||||
| * | GH-131798: Allow the JIT to remove more int/float/str guards (GH-131800) | Brandt Bucher | 2025-04-01 | 1 | -44/+42 | |
| | | ||||||
| * | gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` (#130708) | mpage | 2025-04-01 | 1 | -9/+19 | |
| | | | | 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-131498: Another refactoring of the code generator (GH-131827) | Mark Shannon | 2025-03-31 | 1 | -2/+2 | |
| | | | | | | | | | | | | | * 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 analyis to optimizer generated code * Add 'out' parameter to stack.pop | |||||
| * | GH-131798: Remove type checks for _TO_BOOL_STR (GH-131816) | Amit Lavon | 2025-03-30 | 1 | -1/+8 | |
| | | ||||||
| * | gh-130373: Avoid locking in _LOAD_ATTR_WITH_HINT (#130372) | Dino Viehland | 2025-03-28 | 1 | -13/+15 | |
| | | | | Avoid locking in _LOAD_ATTR_WITH_HINT | |||||
| * | gh-131738: optimize builtin any/all/tuple calls with a generator expression ↵ | Irit Katriel | 2025-03-28 | 1 | -10/+2 | |
| | | | | | arg (#131737) | |||||
| * | gh-123358: Use `_PyStackRef` in `LOAD_DEREF` (gh-130064) | Sam Gross | 2025-03-26 | 1 | -3/+2 | |
| | | | | | | | | | | | | | 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> | |||||
