Commit message (Collapse) | Author | Age | Files | Lines | ||
---|---|---|---|---|---|---|
... | ||||||
* | gh-101632: Add the new RETURN_CONST opcode (#101633) | penguin_wwy | 2023-02-07 | 1 | -0/+17 | |
| | ||||||
* | gh-98831: rewrite UNPACK_EX, UNPACK_SEQUENCE, UNPACK_SEQUENCE_TWO_TUPLE in ↵ | Irit Katriel | 2023-02-07 | 1 | -20/+21 | |
| | | | | the instruction definition DSL (#101641) | |||||
* | gh-98831: Modernize the FOR_ITER family of instructions (#101626) | Guido van Rossum | 2023-02-07 | 1 | -24/+42 | |
| | | | Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> | |||||
* | gh-98831: rewrite COPY and SWAP in the instruction definition DSL (#101620) | Irit Katriel | 2023-02-06 | 1 | -7/+11 | |
| | ||||||
* | gh-98831: rewrite MAKE_FUNCTION and BUILD_SLICE in the instruction ↵ | Irit Katriel | 2023-02-03 | 1 | -23/+29 | |
| | | | | definition DSL (#101529) | |||||
* | gh-98831: rewrite SEND, GET_YIELD_FROM_ITER, RETURN_GENERATOR in the ↵ | Irit Katriel | 2023-02-03 | 1 | -15/+20 | |
| | | | | instruction definition DSL (#101516) | |||||
* | gh-98831: rewrite RERAISE and CLEANUP_THROW in the instruction definition ↵ | Irit Katriel | 2023-02-02 | 1 | -13/+19 | |
| | | | | DSL (#101511) | |||||
* | gh-98831: Modernize the LOAD_GLOBAL family (#101502) | Guido van Rossum | 2023-02-01 | 1 | -29/+37 | |
| | ||||||
* | gh-98831: rewrite PUSH_EXC_INFO and conditional jumps in the instruction ↵ | Irit Katriel | 2023-02-01 | 1 | -28/+40 | |
| | | | | definition DSL (#101481) | |||||
* | gh-98831: Modernize the LOAD_ATTR family (#101488) | Guido van Rossum | 2023-02-01 | 1 | -84/+114 | |
| | ||||||
* | gh-98831: rewrite BEFORE_ASYNC_WITH and END_ASYNC_FOR in the instruction ↵ | Irit Katriel | 2023-01-31 | 1 | -14/+21 | |
| | | | | definition DSL (#101458) | |||||
* | gh-98831: rewrite GET_LEN, GET_ITER, BEFORE_WITH and a few simple opcodes in ↵ | Irit Katriel | 2023-01-31 | 1 | -19/+24 | |
| | | | | the instruction definition DSL (#101443) | |||||
* | GH-101291: Refactor the `PyLongObject` struct into object header and ↵ | Mark Shannon | 2023-01-30 | 1 | -7/+7 | |
| | | | | PyLongValue struct. (GH-101292) | |||||
* | gh-98831: Support conditional effects; use for LOAD_ATTR (#101333) | Guido van Rossum | 2023-01-30 | 1 | -22/+18 | |
| | ||||||
* | gh-98831: rewrite RAISE_VARARGS in the instruction definition DSL (#101306) | Irit Katriel | 2023-01-25 | 1 | -6/+5 | |
| | ||||||
* | gh-98831: rewrite pattern matching opcodes in the instruction definition DSL ↵ | Irit Katriel | 2023-01-24 | 1 | -28/+29 | |
| | | | | (#101287) | |||||
* | GH-100762: Don't call `gen.throw()` in `gen.close()`, unless necessary. ↵ | Mark Shannon | 2023-01-24 | 1 | -1/+0 | |
| | | | | | | (GH-101013) * Store exception stack depth in YIELD_VALUE's oparg and use it avoid expensive gen.throw() in gen.close() where possible. | |||||
* | gh-98831: rewrite CHECK_EG_MATCH opcode in the instruction definition DSL ↵ | Irit Katriel | 2023-01-24 | 1 | -27/+16 | |
| | | | | (#101269) | |||||
* | gh-100712: make it possible to disable specialization (for debugging) (#100713) | Irit Katriel | 2023-01-19 | 1 | -0/+24 | |
| | ||||||
* | GH-98831: Implement array support in cases generator (#100912) | Guido van Rossum | 2023-01-17 | 1 | -47/+55 | |
| | | | | | | | | You can now write things like this: ``` inst(BUILD_STRING, (pieces[oparg] -- str)) { ... } inst(LIST_APPEND, (list, unused[oparg-1], v -- list, unused[oparg-1])) { ... } ``` Note that array output effects are only partially supported (they must be named `unused` or correspond to an input effect). | |||||
* | GH-100982: Add `COMPARE_AND_BRANCH` instruction (GH-100983) | Mark Shannon | 2023-01-16 | 1 | -100/+87 | |
| | ||||||
* | GH-100923: Embed jump mask in `COMPARE_OP` oparg (GH-100924) | Mark Shannon | 2023-01-11 | 1 | -18/+16 | |
| | ||||||
* | gh-100758: Refactor initialisation of frame headers into a single function ↵ | Irit Katriel | 2023-01-06 | 1 | -20/+5 | |
| | | | | (_PyFrame_Initialize) (GH-100759) | |||||
* | GH-99005: More intrinsics (GH-100774) | Mark Shannon | 2023-01-06 | 1 | -31/+0 | |
| | | | * Remove UNARY_POSITIVE, LIST_TO_TUPLE and ASYNC_GEN_WRAP, replacing them with intrinsics. | |||||
* | GH-99005: Add `CALL_INTRINSIC_1` instruction (GH-100771) | Mark Shannon | 2023-01-05 | 1 | -78/+4 | |
| | | | | | | | | * Remove PRINT_EXPR instruction * Remove STOPITERATION_ERROR instruction * Remove IMPORT_STAR instruction | |||||
* | GH-100288: Remove LOAD_ATTR_METHOD_WITH_DICT instruction. (GH-100753) | Mark Shannon | 2023-01-05 | 1 | -27/+0 | |
| | ||||||
* | GH-100719: Remove the `co_nplaincellvars` field from code objects. (GH-100721) | Mark Shannon | 2023-01-04 | 1 | -1/+1 | |
| | ||||||
* | gh-100146: Steal references from stack when building a list (#100147) | L. A. F. Pereira | 2023-01-03 | 1 | -5/+2 | |
| | | | | | | | | | | When executing the BUILD_LIST opcode, steal the references from the stack, in a manner similar to the BUILD_TUPLE opcode. Implement this by offloading the logic to a new private API, _PyList_FromArraySteal(), that works similarly to _PyTuple_FromArraySteal(). This way, instead of performing multiple stack pointer adjustments while the list is being initialized, the stack is adjusted only once and a fast memory copy operation is performed in one fell swoop. | |||||
* | GH-98831: Modernize a ton of simpler instructions (#100545) | Guido van Rossum | 2022-12-28 | 1 | -127/+126 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * load_const and load_fast aren't families for now * Don't decref unmoved names * Modernize GET_ANEXT * Modernize GET_AWAITABLE * Modernize ASYNC_GEN_WRAP * Modernize YIELD_VALUE * Modernize POP_EXCEPT (in more than one way) * Modernize PREP_RERAISE_STAR * Modernize LOAD_ASSERTION_ERROR * Modernize LOAD_BUILD_CLASS * Modernize STORE_NAME * Modernize LOAD_NAME * Modernize LOAD_CLASSDEREF * Modernize LOAD_DEREF * Modernize STORE_DEREF * Modernize COPY_FREE_VARS (mark it as done) * Modernize LIST_TO_TUPLE * Modernize LIST_EXTEND * Modernize SET_UPDATE * Modernize SETUP_ANNOTATIONS * Modernize DICT_UPDATE * Modernize DICT_MERGE * Modernize MAP_ADD * Modernize IS_OP * Modernize CONTAINS_OP * Modernize CHECK_EXC_MATCH * Modernize IMPORT_NAME * Modernize IMPORT_STAR * Modernize IMPORT_FROM * Modernize JUMP_FORWARD (mark it as done) * Modernize JUMP_BACKWARD (mark it as done) | |||||
* | Revert "gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries ↵ | Ken Jin | 2022-12-23 | 1 | -25/+0 | |
| | | | | | (GH-100289)" (#100468) This reverts commit c3c7848a48b74a321632202e4bdcf2f465fb1cc6. | |||||
* | gh-100288: Specialise LOAD_ATTR_METHOD for managed dictionaries (GH-100289) | Ken Jin | 2022-12-23 | 1 | -0/+25 | |
| | ||||||
* | gh-99761: Add `_PyLong_IsPositiveSingleDigit` function to check for single ↵ | Pieter Eendebak | 2022-12-22 | 1 | -5/+3 | |
| | | | | digit integers (#100064) | |||||
* | GH-90043: Handle NaNs in COMPARE_OP_FLOAT_JUMP (GH-100278) | Brandt Bucher | 2022-12-16 | 1 | -7/+5 | |
| | ||||||
* | GH-100222: Redefine _Py_CODEUNIT as a union to clarify structure of code ↵ | Mark Shannon | 2022-12-14 | 1 | -13/+13 | |
| | | | | unit. (GH-100223) | |||||
* | GH-98522: Add version number to code objects. (GH-98525) | Mark Shannon | 2022-12-09 | 1 | -0/+1 | |
| | | | | | | * Add version number to code object for better versioning of functions. * Improves specialization for closures and list comprehensions. | |||||
* | GH-100110: Specialize FOR_ITER for tuples (GH-100109) | Ken Jin | 2022-12-09 | 1 | -0/+23 | |
| | | | * Specialize FOR_ITER for tuples | |||||
* | GH-98831: Generate things in the input order (#100123) | Guido van Rossum | 2022-12-08 | 1 | -237/+237 | |
| | | | | This makes it easier to see what changed in the generated code when converting an instruction to super or macro. | |||||
* | GH-98831: Typed stack effects, and more instructions converted (#99764) | Guido van Rossum | 2022-12-08 | 1 | -244/+245 | |
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Stack effects can now have a type, e.g. `inst(X, (left, right -- jump/uint64_t)) { ... }`. Instructions converted to the non-legacy format: * COMPARE_OP * COMPARE_OP_FLOAT_JUMP * COMPARE_OP_INT_JUMP * COMPARE_OP_STR_JUMP * STORE_ATTR * DELETE_ATTR * STORE_GLOBAL * STORE_ATTR_INSTANCE_VALUE * STORE_ATTR_WITH_HINT * STORE_ATTR_SLOT, and complete the store_attr family * Complete the store_subscr family: STORE_SUBSCR{,DICT,LIST_INT} (STORE_SUBSCR was alread half converted, but wasn't using cache effects yet.) * DELETE_SUBSCR * PRINT_EXPR * INTERPRETER_EXIT (a bit weird, ends in return) * RETURN_VALUE * GET_AITER (had to restructure it some) The original had mysterious `SET_TOP(NULL)` before `goto error`. I assume those just account for `obj` having been decref'ed, so I got rid of them in favor of the cleanup implied by `ERROR_IF()`. * LIST_APPEND (a bit unhappy with it) * SET_ADD (also a bit unhappy with it) Various other improvements/refactorings as well. | |||||
* | GH-99729: Unlink frames before clearing them (GH-100030) | Brandt Bucher | 2022-12-06 | 1 | -1/+4 | |
| | ||||||
* | GH-98831: Support cache effects in super- and macro instructions (#99601) | Guido van Rossum | 2022-12-03 | 1 | -2/+2 | |
| | ||||||
* | gh-89189: More compact range iterator (GH-27986) | Serhiy Storchaka | 2022-11-30 | 1 | -3/+4 | |
| | ||||||
* | GH-98831: Add `macro` and `op` and their implementation to DSL (#99495) | Guido van Rossum | 2022-11-23 | 1 | -43/+60 | |
| | | | | | | | | | | | | | | Newly supported interpreter definition syntax: - `op(NAME, (input_stack_effects -- output_stack_effects)) { ... }` - `macro(NAME) = OP1 + OP2;` Also some other random improvements: - Convert `WITH_EXCEPT_START` to use stack effects - Fix lexer to balk at unrecognized characters, e.g. `@` - Fix moved output names; support object pointers in cache - Introduce `error()` method to print errors - Introduce read_uint16(p) as equivalent to `*p` Co-authored-by: Brandt Bucher <brandtbucher@gmail.com> | |||||
* | GH-98831: Refactor and fix cases generator (#99526) | Guido van Rossum | 2022-11-18 | 1 | -29/+36 | |
| | | | | Also complete cache effects for BINARY_SUBSCR family. | |||||
* | GH-99298: Clean up attribute specializations (GH-99398) | Brandt Bucher | 2022-11-17 | 1 | -10/+2 | |
| | ||||||
* | GH-98686: Get rid of BINARY_OP_GENERIC and COMPARE_OP_GENERIC (GH-99399) | Brandt Bucher | 2022-11-17 | 1 | -36/+24 | |
| | ||||||
* | Add a macro for "inlining" new frames (GH-99490) | Brandt Bucher | 2022-11-17 | 1 | -43/+9 | |
| | ||||||
* | GH-98831: Implement basic cache effects (#99313) | Guido van Rossum | 2022-11-16 | 1 | -17/+18 | |
| | ||||||
* | gh-99460 Emscripten trampolines on optimized METH_O and METH_NOARGS code ↵ | Hood Chatham | 2022-11-15 | 1 | -3/+3 | |
| | | | | paths (#99461) | |||||
* | GH-98831: Remove all remaining DISPATCH() calls from bytecodes.c (#99271) | Guido van Rossum | 2022-11-10 | 1 | -75/+87 | |
| | | | | | Also mark those opcodes that have no stack effect as such. Co-authored-by: Brandt Bucher <brandtbucher@gmail.com> | |||||
* | GH-99298: Don't perform jumps before error handling (GH-99299) | Brandt Bucher | 2022-11-10 | 1 | -15/+19 | |
| |