Mark Shannon
8863a0fcc5
bpo-44525: Specialize simple Python calls. (GH-29033)
2021-10-20 16:08:28 +01:00
Ken Jin
3163e68c34
bpo-44525: Specialize ``CALL_FUNCTION`` for C function calls (GH-26934)
2021-10-20 00:16:36 +01:00
Dong-hee Na
fd03917786
bpo-45434: Include stdlib.h for specialize stat (GH-29015)
2021-10-18 17:31:18 +09:00
Dennis Sweeney
3b3d30e8f7
bpo-45367: Specialize BINARY_MULTIPLY (GH-28727)
2021-10-14 15:56:33 +01:00
Mark Shannon
a8b9350964
bpo-45340: Don't create object dictionaries unless actually needed (GH-28802)
...
* Never change types' cached keys. It could invalidate inline attribute objects.
* Lazily create object dictionaries.
* Update specialization of LOAD/STORE_ATTR.
* Don't update shared keys version for deletion of value.
* Update gdb support to handle instance values.
* Rename SPLIT_KEYS opcodes to INSTANCE_VALUE.
2021-10-13 14:19:34 +01:00
Christian Clauss
db693df3e1
Fix typos in the Python directory (GH-28767)
2021-10-06 15:55:27 -07:00
Mark Shannon
064464fc38
bpo-45219: Factor dictkey indexing (GH-28389)
2021-09-17 12:20:51 +01:00
Ken Jin
70bed6f993
bpo-45107: Make LOAD_METHOD_CLASS safer and faster, clean up comments (GH-28177)
...
* Improve comments
* Check cls is a type, remove dict calculation
2021-09-17 18:47:36 +08:00
Ken Jin
4857e53890
bpo-45203: fix compiler warnings (GH-28357)
...
Co-authored-by: Mark Shannon <mark@hotpy.org>
2021-09-17 17:48:44 +08:00
Mark Shannon
11cdf2a670
bpo-45203: Cleanup stats gathering code for LOAD_METHOD (GH-28352)
2021-09-15 14:55:49 +01:00
Mark Shannon
ee9c0527ae
Refine specialization stats (GH-27992)
2021-08-27 12:01:22 +01:00
Mark Shannon
d3eaf0cc5b
bpo-44945: Specialize BINARY_ADD (GH-27967)
2021-08-27 09:21:01 +01:00
Ken Jin
96346cb6d0
bpo-44889: Specialize LOAD_METHOD with PEP 659 adaptive interpreter (GH-27722)
...
Adds four new instructions:
* LOAD_METHOD_ADAPTIVE
* LOAD_METHOD_CACHED
* LOAD_METHOD_MODULE
* LOAD_METHOD_CLASS
2021-08-17 15:55:55 +01:00
Mark Shannon
4f51fa9e2d
bpo-44900: Add five superinstructions. (GH-27741)
...
* LOAD_FAST LOAD_FAST
* STORE_FAST LOAD_FAST
* LOAD_FAST LOAD_CONST
* LOAD_CONST LOAD_FAST
* STORE_FAST STORE_FAST
2021-08-16 12:23:13 +01:00
Irit Katriel
8ac0886091
bpo-44890: collect specialization stats if Py_DEBUG (GH-27731)
2021-08-12 12:15:06 +01:00
Irit Katriel
64a7812c17
Update test__opcode and _Py_GetSpecializationStats with recent specialization stat changes (GH-27728)
2021-08-11 17:34:01 +01:00
Mark Shannon
9816777861
Classify specialization failures. Provides more useful stats, with lower overhead. (GH-27701)
2021-08-10 14:53:05 +01:00
Mark Shannon
ac75f6bdd4
bpo-44826: Specialize STORE_ATTR (GH-27590)
...
* Generalize cache names for LOAD_ATTR to allow store and delete specializations.
* Factor out specialization of attribute dictionary access.
* Specialize STORE_ATTR.
2021-08-09 10:40:21 +01:00
Mark Shannon
c83919bd63
Add option to write specialization stats to files and script to summarize. (GH-27575)
...
* Add option to write stats to random file in a directory.
* Add script to summarize stats.
2021-08-04 11:39:52 +01:00
Mark Shannon
2116909b3e
Minor fixes to specialization stats. (GH-27457)
...
* Use class, not value for fail stats for BINARY_SUBSCR.
* Fix counts for unquickened instructions.
2021-07-29 20:50:03 +01:00
Irit Katriel
ddd1c418c0
bpo-44725 : expose specialization stats in python (GH-27192)
2021-07-29 17:26:53 +01:00
Irit Katriel
641345d636
bpo-26280: Port BINARY_SUBSCR to PEP 659 adaptive interpreter (GH-27043)
2021-07-15 13:13:12 +01:00
Mark Shannon
3623aaa78c
Add file describing how to add or modify specialized families of instructions. (GH-26954)
2021-07-01 13:13:05 +01:00
Mark Shannon
fb68791a26
bpo-44337: Improve LOAD_ATTR specialization (GH-26759)
...
* Specialize obj.__class__ with LOAD_ATTR_SLOT
* Specialize instance attribute lookup with attribute on class, provided attribute on class is not an overriding descriptor.
* Add stat for how many times the unquickened instruction has executed.
2021-06-21 11:49:21 +01:00
Mark Shannon
8ebd9447e9
Add extra stats for attribute misses (GH-26732)
2021-06-15 13:01:42 +01:00
Mark Shannon
eecbc7c390
bpo-44338: Port LOAD_GLOBAL to PEP 659 adaptive interpreter (GH-26638)
...
* Add specializations of LOAD_GLOBAL.
* Add more stats.
* Remove old opcache; it is no longer used.
* Add NEWS
2021-06-14 11:04:09 +01:00
Serhiy Storchaka
be8b631b7a
Add more const modifiers. (GH-26691)
2021-06-12 16:11:59 +03:00
Mark Shannon
e117c02837
bpo-44337: Port LOAD_ATTR to PEP 659 adaptive interpreter (GH-26595)
...
* Specialize LOAD_ATTR with LOAD_ATTR_SLOT and LOAD_ATTR_SPLIT_KEYS
* Move dict-common.h to internal/pycore_dict.h
* Add LOAD_ATTR_WITH_HINT specialized opcode.
* Quicken in function if loopy
* Specialize LOAD_ATTR for module attributes.
* Add specialization stats
2021-06-10 08:46:01 +01:00
Mark Shannon
001eb520b5
bpo-44187: Quickening infrastructure (GH-26264)
...
* Add co_firstinstr field to code object.
* Implement barebones quickening.
* Use non-quickened bytecode when tracing.
* Add NEWS item
* Add new file to Windows build.
* Don't specialize instructions with EXTENDED_ARG.
2021-06-07 18:38:06 +01:00