summaryrefslogtreecommitdiffstats
path: root/Python/compile.c
Commit message (Collapse)AuthorAgeFilesLines
* GH-96793: Implement PEP 479 in bytecode. (GH-99006)Mark Shannon2022-11-031-12/+50
| | | | | * Handle converting StopIteration to RuntimeError in bytecode. * Add custom instruction for converting StopIteration into RuntimeError.
* gh-87092: remove unused SET_LOC/UNSET_LOC macros (GH-98914)Irit Katriel2022-11-021-73/+6
|
* gh-87092: do not allocate PyFutureFeatures dynamically (GH-98913)Irit Katriel2022-11-021-12/+10
|
* gh-98811: use full source location to simplify __future__ imports error ↵Irit Katriel2022-10-311-30/+32
| | | | checking. This also fixes an incorrect error offset. (GH-98812)
* GH-96793: Change `FOR_ITER` to not pop the iterator on exhaustion. (GH-96801)Mark Shannon2022-10-271-2/+5
| | | | 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-98461: Fix location of RETURN_VALUE in async generator bytecode. ↵Irit Katriel2022-10-251-56/+43
| | | | compiler_jump_if no longer needs a pointer to the loc. (GH-98494)
* gh-97912: Avoid quadratic behavior when adding LOAD_FAST_CHECK (GH-97952)Dennis Sweeney2022-10-201-64/+135
| | | | | * The compiler analyzes the usage of the first 64 local variables all at once using bit masks. * Local variables beyond the first 64 are only partially analyzed, achieving linear time.
* gh-98461: Fix source location in comprehensions bytecode (GH-98464)Irit Katriel2022-10-201-60/+74
|
* gh-98398: Fix source locations for 'assert' bytecode (GH-98405)Irit Katriel2022-10-191-8/+10
|
* gh-98390: Fix source locations of boolean sub-expressions (GH-98396)Irit Katriel2022-10-181-1/+1
|
* gh-93691: Compiler's code-gen passes location around instead of holding it ↵Irit Katriel2022-10-171-848/+975
| | | | on the global compiler state (GH-98001)
* gh-87092: bring compiler code closer to a preprocessing-opt-assembler ↵Irit Katriel2022-10-051-39/+49
| | | | organisation (GH-97644)
* GH-95921: Fix positions for some chained comparisons (GH-96968)Brandt Bucher2022-09-201-0/+1
|
* gh-87092: in compiler, move the detection of exception handlers before the ↵Irit Katriel2022-09-201-16/+32
| | | | CFG optimization stage (GH-96935)
* gh-87092: reduce redundancy and repetition in compiler's optimization stage ↵Irit Katriel2022-09-131-90/+63
| | | | (GH-96713)
* gh-88057: in compile.c, assertion that stackdepth is alway >=0 is missing in ↵Irit Katriel2022-09-071-0/+1
| | | | one place (GH-96513)
* gh-93554: Conditional jump opcodes only jump forward (GH-96318)Irit Katriel2022-09-011-72/+82
|
* gh-93678: apply remove_redundant_jumps in optimize_cfg (GH-96274)Irit Katriel2022-09-011-11/+33
|
* gh-87092: use basicblock_last_instr consistently in the compiler (GH-96243)Irit Katriel2022-08-241-29/+32
|
* gh-93678: add _testinternalcapi.optimize_cfg() and test utils for compiler ↵Irit Katriel2022-08-241-48/+210
| | | | optimization unit tests (GH-96007)
* GH-90997: Wrap yield from/await in a virtual try/except StopIteration (GH-96010)Brandt Bucher2022-08-191-6/+13
|
* gh-95922: compiler's eliminate_empty_basic_blocks ignores the last block of ↵Irit Katriel2022-08-121-8/+5
| | | | the compilation unit (GH-95924)
* gh-87092: compiler's codegen stage uses int jump target labels, and the ↵Irit Katriel2022-08-111-70/+52
| | | | target pointer is only calculated just before optimization stage (GH-95655)
* gh-87092: create a 'jump target label' abstraction so that the compiler's ↵Irit Katriel2022-08-041-354/+385
| | | | codegen stage does not work directly with basic blocks (GH-95398)
* gh-93678: extract 'struct cfg_builder' from the compiler so that the CFG can ↵Irit Katriel2022-07-261-120/+113
| | | | be manipulated directly (GH-95107)
* GH-94036: Fix more attribute location quirks (GH-95028)Brandt Bucher2022-07-221-20/+23
|
* GH-95113: Don't use EXTENDED_ARG_QUICK in unquickened code (GH-95121)Brandt Bucher2022-07-221-3/+3
|
* GH-91409: Don't overwrite valid locations with NOP locations (GH-95067)Brandt Bucher2022-07-201-1/+4
|
* GH-94851: fix immortal objects refcounting in compiler (gh-95040)Kumar Aditya2022-07-201-1/+1
|
* gh-93678: move normalize_basic_block and extend_block call into optimize_cfg ↵Irit Katriel2022-07-191-31/+26
| | | | (GH-95002)
* GH-94694: Fix column offsets for multi-line method lookups (GH-94697)Brandt Bucher2022-07-101-2/+9
|
* gh-92228: disable the compiler's 'small exit block inlining' optimization ↵Irit Katriel2022-07-071-0/+14
| | | | | | | for blocks that have a line number (GH-94592) Inlining of code that corresponds to source code lines, can make it hard to distinguish later between code which is only reachable from except handlers, and that which is reachable in normal control flow. This caused problems with the debugger's jump feature. This PR turns off the inlining optimisation for code which has line numbers. We still inline things like the implicit "return None".
* gh-94485: Set line number of module's RESUME instruction to 0, as specified ↵Irit Katriel2022-07-051-1/+4
| | | | | by PEP 626 (GH-94552) Co-authored-by: Mark Shannon <mark@hotpy.org>
* gh-94216: add pseudo instructions to the dis/opcodes modules (GH-94241)Irit Katriel2022-07-011-38/+10
|
* GH-94329: Don't raise on excessive stack consumption (GH-94421)Mark Shannon2022-06-301-6/+1
|
* gh-94332: make it safe to call assemble_free when assemble_init has not been ↵Irit Katriel2022-06-301-1/+2
| | | | called (GH-94389)
* GH-94163: Add BINARY_SLICE and STORE_SLICE instructions. (GH-94168)Mark Shannon2022-06-271-18/+70
|
* GH-93678: refactor compiler so that optimizer does not need the assembler ↵Irit Katriel2022-06-211-160/+169
| | | | and compiler structs (GH-93842)
* GH-93678: reduce boilerplate and code repetition in the compiler (GH-93682)Irit Katriel2022-06-141-261/+150
|
* GH-93429: Merge `LOAD_METHOD` back into `LOAD_ATTR` (GH-93430)Ken Jin2022-06-141-2/+11
|
* GH-93662: Make sure that column offsets are correct in multi-line method ↵Mark Shannon2022-06-141-4/+16
| | | | calls. (GH-93673)
* GH-93621: reorder code in with/async-with exception exit path to reduce the ↵Irit Katriel2022-06-101-7/+13
| | | | size of the exception table (GH-93622)
* GH-93444: remove redundant fields from basicblock: b_nofallthrough, b_exit, ↵Irit Katriel2022-06-031-78/+74
| | | | b_return (GH-93445)
* gh-93356: Lay out exception handling code at end of code unit (GH-92769)Irit Katriel2022-06-021-42/+220
|
* gh-93143: Avoid NULL check in LOAD_FAST based on analysis in the compiler ↵Dennis Sweeney2022-05-311-0/+108
| | | | (GH-93144)
* gh-93008: refactor compiler functions that add instructions to take only a ↵Irit Katriel2022-05-291-60/+61
| | | | basicblock* (not the whole compiler) (GH-93009)
* GH-93207: Remove HAVE_STDARG_PROTOTYPES configure check for stdarg.h (#93215)Kumar Aditya2022-05-271-8/+0
|
* gh-93223: More aggressive Jump-To-Jump elimination (GH-93229)Dennis Sweeney2022-05-271-1/+1
|
* gh-93061: Mark as artificial: backwards jump after async for (GH-93062)Dennis Sweeney2022-05-231-0/+2
|
* GH-89914: Make the oparg of the YIELD_VALUE instruction equal the stack ↵Mark Shannon2022-05-191-2/+5
| | | | depth. (GH-92960)