summaryrefslogtreecommitdiffstats
path: root/Python/specialize.c
Commit message (Collapse)AuthorAgeFilesLines
* [3.12] GH-105840: Fix assertion failures when specializing calls with too ↵Miss Islington (bot)2023-06-161-2/+2
| | | | | | | | many __defaults__ (GH-105863) GH-105840: Fix assertion failures when specializing calls with too many __defaults__ (GH-105847) (cherry picked from commit 2beab5bdef5fa2a00a59371e6137f769586b7404) Co-authored-by: Brandt Bucher <brandtbucher@microsoft.com>
* GH-104405: Add missing PEP 523 checks (GH-104406)Brandt Bucher2023-05-121-0/+22
|
* gh-87729: improve hit rate of LOAD_SUPER_ATTR specialization (#104270)Carl Meyer2023-05-111-28/+5
|
* GH-102181: Improve specialization stats for SEND (GH-102182)penguin_wwy2023-05-101-41/+45
|
* gh-104184: fix building --with-pydebug --enable-pystats (#104217)Carl Meyer2023-05-091-1/+1
|
* GH-103082: Code cleanup in instrumentation code (#103474)Mark Shannon2023-04-291-1/+1
|
* gh-103978: avoid using 'class' as an identifier (#103979)Carl Meyer2023-04-281-3/+3
|
* gh-103879: Fix refleak in super specialization (#103882)Jelle Zijlstra2023-04-261-0/+2
|
* gh-87729: specialize LOAD_SUPER_ATTR_METHOD (#103809)Carl Meyer2023-04-251-0/+55
|
* GH-103082: Implementation of PEP 669: Low Impact Monitoring for CPython ↵Mark Shannon2023-04-121-2/+6
| | | | | | | | | | (GH-103083) * The majority of the monitoring code is in instrumentation.c * The new instrumentation bytecodes are in bytecodes.c * legacy_tracing.c adapts the new API to the old sys.setrace and sys.setprofile APIs
* GH-88691: Shrink the CALL caches (GH-103230)Brandt Bucher2023-04-051-5/+0
|
* GH-89987: Shrink the BINARY_SUBSCR caches (GH-103022)Brandt Bucher2023-03-291-8/+8
|
* GH-100982: Break up COMPARE_AND_BRANCH (GH-102801)Brandt Bucher2023-03-231-60/+32
|
* GH-101291: Rearrange the size bits in PyLongObject (GH-102464)Mark Shannon2023-03-221-4/+4
| | | | | | | | | | * Eliminate all remaining uses of Py_SIZE and Py_SET_SIZE on PyLongObject, adding asserts. * Change layout of size/sign bits in longobject to support future addition of immortal ints and tagged medium ints. * Add functions to hide some internals of long object, and for setting sign and digit count. * Replace uses of IS_MEDIUM_VALUE macro with _PyLong_IsCompact().
* GH-90997: Shrink the LOAD_GLOBAL caches (#102569)Brandt Bucher2023-03-111-2/+10
|
* gh-100227: Move next_keys_version to PyInterpreterState (gh-102335)Eric Snow2023-03-091-5/+11
| | | https://github.com/python/cpython/issues/100227
* GH-100982: Restrict `FOR_ITER_RANGE` to a single instruction to allow ↵Mark Shannon2023-02-221-3/+1
| | | | instrumentation. (GH-101985)
* gh-101907: Stop using `_Py_OPCODE` and `_Py_OPARG` macros (GH-101912)Steve Dower2023-02-201-86/+86
| | | | | | * gh-101907: Removes use of non-standard C++ extension from Include/cpython/code.h * Make cases_generator correct on Windows
* GH-87849: Simplify stack effect of SEND and specialize it for generators and ↵Mark Shannon2023-02-131-1/+24
| | | | coroutines. (GH-101788)
* GH-100288: Skip extra work when failing to specialize LOAD_ATTR (GH-101354)Brandt Bucher2023-01-311-60/+24
|
* GH-101291: Refactor the `PyLongObject` struct into object header and ↵Mark Shannon2023-01-301-1/+1
| | | | PyLongValue struct. (GH-101292)
* gh-100712: make it possible to disable specialization (for debugging) (#100713)Irit Katriel2023-01-191-0/+12
|
* GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983)Mark Shannon2023-01-161-42/+39
|
* GH-100923: Embed jump mask in `COMPARE_OP` oparg (GH-100924)Mark Shannon2023-01-111-27/+26
|
* GH-100288: Remove LOAD_ATTR_METHOD_WITH_DICT instruction. (GH-100753)Mark Shannon2023-01-051-3/+2
|
* Revert "gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries ↵Ken Jin2022-12-231-10/+5
| | | | | (GH-100289)" (#100468) This reverts commit c3c7848a48b74a321632202e4bdcf2f465fb1cc6.
* gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries (GH-100289)Ken Jin2022-12-231-5/+10
|
* GH-100459: fix copy-paste errors in specialization stats (GH-100460)Irit Katriel2022-12-231-5/+5
|
* GH-99770: Make the correct call specialization fail kind show up in the ↵penguin_wwy2022-12-221-63/+84
| | | | stats (GH-99771)
* gh-100188: Reduce misses in BINARY_SUBSCR_(LIST/TUPLE)_INT (#100189)Dennis Sweeney2022-12-201-4/+12
| | | Don't specialize if the index is negative.
* GH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (GH-100278)Brandt Bucher2022-12-161-10/+11
|
* Improve stats presentation for calls. (GH-100274)Mark Shannon2022-12-161-37/+22
|
* Better stats for `LOAD_ATTR` and `STORE_ATTR` (GH-100295)Mark Shannon2022-12-161-12/+35
| | | | | * Don't attempt to specialize for LOAD_ATTR on instance if class has attribute * Improvement to LOAD_ATTR and STORE_ATTR specialization stats.
* Move stats for the method cache into the `Py_STAT` machinery (GH-100255)Mark Shannon2022-12-151-0/+5
|
* GH-100222: fix typo _py_set_opocde -> _py_set_opcode (GH-100259)Carl Meyer2022-12-151-65/+65
| | | | | Typo introduced in #100223. Automerge-Triggered-By: GH:brandtbucher
* Assorted minor fixes for specialization stats. (GH-100219)Mark Shannon2022-12-141-17/+34
|
* GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code ↵Mark Shannon2022-12-141-71/+71
| | | | unit. (GH-100223)
* GH-100143: Improve collecting pystats for parts of runs (GH-100144)Michael Droettboom2022-12-121-5/+2
| | | | | | | | * pystats off by default * Add -Xpystats flag * Always dump pystats, even if turned off
* GH-100110: Specialize FOR_ITER for tuples (GH-100109)Ken Jin2022-12-091-0/+4
| | | * Specialize FOR_ITER for tuples
* GH-99298: Clean up attribute specializations (GH-99398)Brandt Bucher2022-11-171-34/+29
|
* GH-98686: Get rid of BINARY_OP_GENERIC and COMPARE_OP_GENERIC (GH-99399)Brandt Bucher2022-11-171-21/+1
|
* GH-99257: Check the owner's type when specializing slots (GH-99258)Brandt Bucher2022-11-101-0/+8
|
* GH-98686: Get rid of "adaptive" and "quick" instructions (GH-99182)Brandt Bucher2022-11-091-101/+56
|
* GH-96793: Specialize FOR_ITER for generators. (GH-98772)Mark Shannon2022-11-071-1/+6
|
* GH-98686: Quicken everything (GH-98687)Brandt Bucher2022-11-021-11/+2
|
* GH-96793: Change `FOR_ITER` to not pop the iterator on exhaustion. (GH-96801)Mark Shannon2022-10-271-6/+2
| | | | Change FOR_ITER to have the same stack effect regardless of whether it branches or not. Performance is unchanged as FOR_ITER (and specialized forms jump over the cleanup code).
* GH-91049: Introduce set vectorcall field API for PyFunctionObject (GH-92257)adphrost2022-09-151-0/+5
| | | | Co-authored-by: Andrew Frost <adfrost@fb.com> Co-authored-by: Itamar Ostricher <itamarost@gmail.com>
* GH-90230: Fix warnings and failures with --enable-pystats (GH-96622)Brandt Bucher2022-09-091-0/+2
|
* GH-93911: Fix `LOAD_ATTR_PROPERTY` caches (GH-96519)Brandt Bucher2022-09-061-5/+5
|
* gh-93554: Conditional jump opcodes only jump forward (GH-96318)Irit Katriel2022-09-011-11/+4
|