Mark Shannon
faa3272fb8
GH-125837 : Split LOAD_CONST
into three. ( GH-125972 )
...
* Add LOAD_CONST_IMMORTAL opcode
* Add LOAD_SMALL_INT opcode
* Remove RETURN_CONST opcode
2024-10-29 11:15:42 +00:00
Mark Shannon
da071fa3e8
GH-119866 : Spill the stack around escaping calls. ( GH-124392 )
...
* Spill the evaluation around escaping calls in the generated interpreter and JIT.
* The code generator tracks live, cached values so they can be saved to memory when needed.
* Spills the stack pointer around escaping calls, so that the exact stack is visible to the cycle GC.
2024-10-07 14:56:39 +01:00
Irit Katriel
78aeb38f7d
gh-124285 : Fix bug where bool() is called multiple times for the same part of a boolean expression (#124394)
2024-09-25 15:51:25 +01:00
Mark Shannon
5d3201fe3f
GH-123040 : Specialize shadowed LOAD_ATTR
. ( GH-123219 )
2024-08-23 10:22:35 +01:00
Mark Shannon
c13e7d98fb
GH-118093 : Specialize CALL_KW
( GH-123006 )
2024-08-16 17:11:24 +01:00
Mark Shannon
eec7bdaf01
GH-120024 : Remove CHECK_EVAL_BREAKER
macro. ( GH-122968 )
...
* Factor some instructions into micro-ops to isolate CHECK_EVAL_BREAKER for escape analysis
* Eliminate CHECK_EVAL_BREAKER macro
2024-08-14 12:04:05 +01:00
Mark Shannon
7a65439b93
GH-122390 : Replace _Py_GetbaseOpcode
with _Py_GetBaseCodeUnit
( GH-122942 )
2024-08-13 14:22:57 +01:00
Mark Shannon
95a73917cd
GH-122029 : Break INSTRUMENTED_CALL into micro-ops, so that its behavior is consistent with CALL ( GH-122177 )
2024-07-26 14:35:57 +01:00
Mark Shannon
afb0aa6ed2
GH-121131 : Clean up and fix some instrumented instructions. ( GH-121132 )
...
* Add support for 'prev_instr' to code generator and refactor some INSTRUMENTED instructions
2024-07-26 12:24:12 +01:00
Mark Shannon
2e14a52cce
GH-122160 : Remove BUILD_CONST_KEY_MAP opcode. ( GH-122164 )
2024-07-25 16:24:29 +01:00
Mark Shannon
9cefcc0ee7
GH-120507 : Lower the BEFORE_WITH
and BEFORE_ASYNC_WITH
instructions. (#120640)
...
* Remove BEFORE_WITH and BEFORE_ASYNC_WITH instructions.
* Add LOAD_SPECIAL instruction
* Reimplement `with` and `async with` statements using LOAD_SPECIAL
2024-06-18 12:17:46 +01:00
Irit Katriel
ae9140f32a
gh-119676 : remove several pseudo instructions which are use only in codegen (#119677)
2024-05-28 19:05:38 +00:00
Jelle Zijlstra
98e855fcc1
gh-119180 : Add LOAD_COMMON_CONSTANT opcode (#119321)
...
The PEP 649 implementation will require a way to load NotImplementedError
from the bytecode. @markshannon suggested implementing this by converting
LOAD_ASSERTION_ERROR into a more general mechanism for loading constants.
This PR adds this new opcode. I will work on the rest of the implementation
of the PEP separately.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2024-05-22 00:46:39 +00:00
Mark Shannon
1ab6356ebe
GH-118095 : Use broader specializations of CALL in tier 1, for better tier 2 support of calls. ( GH-118322 )
...
* Add CALL_PY_GENERAL, CALL_BOUND_METHOD_GENERAL and call CALL_NON_PY_GENERAL specializations.
* Remove CALL_PY_WITH_DEFAULTS specialization
* Use CALL_NON_PY_GENERAL in more cases when otherwise failing to specialize
2024-05-04 12:11:11 +01:00
Ken Jin
41457c7fdb
gh-116381 : Remove bad specializations, add fail stats ( GH-116464 )
...
* Remove bad specializations, add fail stats
2024-03-08 00:21:21 +08:00
Ken Jin
7114cf20c0
gh-116381 : Specialize CONTAINS_OP ( GH-116385 )
...
* Specialize CONTAINS_OP
* 📜 🤖 Added by blurb_it.
* Add PyAPI_FUNC for JIT
---------
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
2024-03-07 03:30:11 +08:00
Mark Shannon
e96f26083b
GH-111485 : Generate instruction and uop metadata ( GH-113287 )
2023-12-20 14:27:25 +00:00
Irit Katriel
d49aba5a7a
gh-111354 : Simplify _PyGen_yf by moving some of its work to the compiler and frame state (#111648)
2023-11-03 10:01:36 +00:00
Irit Katriel
52cc4af6ae
gh-111354 : simplify detection of RESUME after YIELD_VALUE at except-depth 1 (#111459)
2023-11-02 10:18:43 +00:00
Brandt Bucher
22e65eecaa
GH-105848 : Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW ( GH-109300 )
2023-09-13 10:25:45 -07:00
Irit Katriel
8b55adfa8f
gh-109256 : allocate opcode IDs for internal opcodes in their own range (#109269)
2023-09-12 10:36:17 +00:00
Mark Shannon
0858328ca2
GH-108614 : Add RESUME_CHECK
instruction ( GH-108630 )
2023-09-07 14:39:03 +01:00
Irit Katriel
665a4391e1
gh-105481 : generate op IDs from bytecode.c instead of hard coding them in opcode.py (#107971)
2023-08-16 22:25:18 +00:00
Brandt Bucher
ea72c6fe3b
GH-107596 : Specialize str[int] ( GH-107597 )
2023-08-08 13:42:43 -07:00
Mark Shannon
0c90e75610
GH-100288 : Specialize LOAD_ATTR for simple class attributes. (#105990)
...
* Add two more specializations of LOAD_ATTR.
2023-07-10 11:40:35 +01:00
Brandt Bucher
7b2d94d875
GH-106008 : Make implicit boolean conversions explicit ( GH-106003 )
2023-06-29 13:49:54 -07:00
Mark Shannon
04492cbc9a
GH-91095 : Specialize calls to normal Python classes. ( GH-99331 )
2023-06-22 09:48:19 +01:00
Irit Katriel
33f0a8578b
gh-105481 : generate _specializations and _specialized_instructions from bytecodes.c (#105913)
2023-06-19 23:47:04 +01:00