summaryrefslogtreecommitdiffstats
path: root/Python/bytecodes.c
Commit message (Collapse)AuthorAgeFilesLines
* gh-124296: Remove private dictionary version tag (PEP 699) (#124472)Sam Gross2024-10-011-3/+1
|
* GH-123516: Improve JIT memory consumption by invalidating cold executors ↵Savannah Ostrowski2024-09-271-0/+8
| | | | | (GH-124443) Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com>
* gh-117376: Fix off-by-ones in conversion functions (GH-124301)Ken Jin2024-09-251-2/+2
| | | Fix off-by-ones in conversion function
* gh-124285: Fix bug where bool() is called multiple times for the same part ↵Irit Katriel2024-09-251-0/+8
| | | | of a boolean expression (#124394)
* gh-123923: Defer refcounting for `f_funcobj` in `_PyInterpreterFrame` (#124026)Sam Gross2024-09-241-24/+21
| | | | | | Use a `_PyStackRef` and defer the reference to `f_funcobj` when possible. This avoids some reference count contention in the common case of executing the same code object from multiple threads concurrently in the free-threaded build.
* gh-121459: Deferred LOAD_GLOBAL (GH-123128)Ken Jin2024-09-131-6/+6
| | | | Co-authored-by: Bénédikt Tran <10796600+picnixz@users.noreply.github.com> Co-authored-by: Sam Gross <655866+colesbury@users.noreply.github.com>
* gh-123923: Defer refcounting for `f_executable` in `_PyInterpreterFrame` ↵Sam Gross2024-09-121-2/+2
| | | | | | | | (#123924) Use a `_PyStackRef` and defer the reference to `f_executable` when possible. This avoids some reference count contention in the common case of executing the same code object from multiple threads concurrently in the free-threaded build.
* GH-123996: Explicitly mark 'self_or_null' as an array of size 1 to ensure ↵Mark Shannon2024-09-121-76/+67
| | | | that it is kept in memory for calls (GH-124003)
* GH-123545: Remove duplicate Py_DECREF when handling _PyOptimizer_Optimize ↵Savannah Ostrowski2024-09-051-4/+0
| | | | errors (GH-123546)
* gh-123091: Use _Py_IsImmortalLoose() (#123511)Victor Stinner2024-09-021-2/+2
| | | | Use _Py_IsImmortalLoose() in bytesobject.c, typeobject.c and ceval.c.
* GH-123232: Factor BINARY_SLICE and STORE_SLICE to handle stats properly for ↵Mark Shannon2024-08-271-4/+20
| | | | tier 2. (GH-123381)
* gh-123205: `Python/bytecodes.c`: Fix compiler warning (#123206)Kirill Podoprigora2024-08-231-1/+1
| | | Fix MSVC warning "conversion from '__int64' to 'int'"
* GH-123232: Fix "not specialized" stats (GH-123236)Mark Shannon2024-08-231-0/+2
|
* GH-123040: Specialize shadowed `LOAD_ATTR`. (GH-123219)Mark Shannon2024-08-231-1/+7
|
* gh-123083: Fix a potential use-after-free in ``STORE_ATTR_WITH_HINT`` ↵Donghee Na2024-08-221-6/+7
| | | | (gh-123092)
* GH-123197: Only count an instruction as deferred if it hasn't deopted first. ↵Mark Shannon2024-08-221-15/+15
| | | | | (GH-123222) Only count an instruction as deferred if hasn't deopted first.
* GH-115776: Allow any fixed sized object to have inline values (GH-123192)Mark Shannon2024-08-211-7/+9
|
* GH-123197: Increment correct stat for CALL_KW (GH-123200)Mark Shannon2024-08-211-1/+1
|
* GH-123185: Check for `NULL` after calling `_PyEvalFramePushAndInit` (GH-123194)Mark Shannon2024-08-211-1/+5
|
* GH-118093: Make `CALL_ALLOC_AND_ENTER_INIT` suitable for tier 2. (GH-123140)Mark Shannon2024-08-201-42/+39
| | | | | * Convert CALL_ALLOC_AND_ENTER_INIT to micro-ops such that tier 2 supports it * Allow inexact arguments for CALL_ALLOC_AND_ENTER_INIT.
* GH-118093: Specialize `CALL_KW` (GH-123006)Mark Shannon2024-08-161-4/+148
|
* GH-118093: Turn some DEOPT_IFs into EXIT_IFs (GH-122998)Brandt Bucher2024-08-141-25/+25
|
* GH-120024: Remove `CHECK_EVAL_BREAKER` macro. (GH-122968)Mark Shannon2024-08-141-57/+76
| | | | | * Factor some instructions into micro-ops to isolate CHECK_EVAL_BREAKER for escape analysis * Eliminate CHECK_EVAL_BREAKER macro
* GH-118093: Handle some polymorphism before requiring progress in tier two ↵Brandt Bucher2024-08-121-3/+4
| | | | (GH-122843)
* gh-117139: Replace _PyList_FromArraySteal with stack ref variant (#122830)Sam Gross2024-08-121-7/+1
| | | | | | | This replaces `_PyList_FromArraySteal` with `_PyList_FromStackRefSteal`. It's functionally equivalent, but takes a `_PyStackRef` array instead of an array of `PyObject` pointers. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-117139: Fix a few `_PyStackRef` related bugs (#122831)Sam Gross2024-08-121-4/+6
| | | | | | `BUILD_SET` should use a borrow instead of a steal. The cleanup in `_DO_CALL` `CONVERSION_FAILED` was incorrect. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-118926: Spill deferred references to stack in cases generator (#122748)Sam Gross2024-08-071-1/+1
| | | | | | | This automatically spills the results from `_PyStackRef_FromPyObjectNew` to the in-memory stack so that the deferred references are visible to the GC before we make any possibly escaping call. Co-authored-by: Ken Jin <kenjin@python.org>
* gh-122759: Remove `assert` from `RERAISE` error handling (#122760)sobolevn2024-08-071-1/+0
|
* gh-117139: Fix an incorrect borrow in bytecodes.c (#122318)Sam Gross2024-08-071-3/+4
| | | `_PyDict_SetItem_Take2` steals both the key (i.e., `sub`) and the value.
* GH-120024: Move three more escaping calls out of conditional statements ↵Mark Shannon2024-08-061-4/+12
| | | | (GH-122734)
* GH-120024: Refactor code a bit so that escaping calls can be wrapped in ↵Mark Shannon2024-08-061-18/+32
| | | | spill code in code generator (GH-122693)
* GH-122616: Simplify LOAD_ATTR_WITH_HINT and STORE_ATTR_WITH_HINT (GH-122620)Mark Shannon2024-08-051-27/+12
|
* GH-117224: Move the body of a few large-ish micro-ops into helper functions ↵Mark Shannon2024-08-021-117/+8
| | | | (GH-122601)
* GH-118095: Add tier two support for BINARY_SUBSCR_GETITEM (GH-120793)Mark Shannon2024-08-011-17/+25
|
* GH-122155: Track local variables between pops and pushes in cases generator ↵Mark Shannon2024-08-011-5/+4
| | | | (GH-122286)
* GH-116090: Fire RAISE events from _FOR_ITER_TIER_TWO (GH-122413)Brandt Bucher2024-07-291-3/+4
|
* GH-122294: Burn in the addresses of side exits (GH-122295)Brandt Bucher2024-07-261-6/+6
|
* GH-122029: Break INSTRUMENTED_CALL into micro-ops, so that its behavior is ↵Mark Shannon2024-07-261-29/+42
| | | | consistent with CALL (GH-122177)
* GH-121131: Clean up and fix some instrumented instructions. (GH-121132)Mark Shannon2024-07-261-58/+57
| | | | * Add support for 'prev_instr' to code generator and refactor some INSTRUMENTED instructions
* GH-118093: Add tier two support for BINARY_OP_INPLACE_ADD_UNICODE (GH-122253)Brandt Bucher2024-07-251-3/+12
|
* GH-118093: Add tier two support for LOAD_ATTR_PROPERTY (GH-122283)Brandt Bucher2024-07-251-16/+14
|
* GH-122034: Add StackRef variants of type checks to reduce the number of ↵Mark Shannon2024-07-251-10/+10
| | | | PyStackRef_AsPyObjectBorrow calls (GH-122037)
* GH-122160: Remove BUILD_CONST_KEY_MAP opcode. (GH-122164)Mark Shannon2024-07-251-19/+0
|
* GH-118093: Remove invalidated executors from side exits (GH-121885)Brandt Bucher2024-07-241-1/+5
|
* GH-118093: Add tier two support to several instructions (GH-121884)Brandt Bucher2024-07-181-30/+28
|
* GH-121784: Generate an error during code gen if a variable is marked ↵Mark Shannon2024-07-181-10/+7
| | | | | | | | | | | | `unused`, but is used and thus cached in a prior uop. (#121788) * Reject uop definitions that declare values as 'unused' that are already cached by prior uops * Track which variables are defined and only load from memory when needed * Support explicit `flush` in macro definitions. * Make sure stack is flushed in where needed.
* GH-121012: Set index to -1 when list iterators become exhausted in tier 2 ↵Mark Shannon2024-07-081-1/+4
| | | | (GH-121483)
* gh-117139: Add _PyTuple_FromStackRefSteal and use it (#121244)Sam Gross2024-07-021-7/+1
| | | Avoids the extra conversion from stack refs to PyObjects.
* GH-116017: Get rid of _COLD_EXITs (GH-120960)Brandt Bucher2024-07-011-38/+55
|
* gh-117139: Fix a few wrong steals in bytecodes.c (GH-121127)Ken Jin2024-06-281-8/+8
| | | Fix a few wrong steals in bytecodes.c