summaryrefslogtreecommitdiffstats
path: root/Python/flowgraph.c
Commit message (Collapse)AuthorAgeFilesLines
* gh-107901: make compiler inline basic blocks with no line number and no ↵Irit Katriel2024-02-021-21/+54
| | | | fallthrough (#114750)
* gh-114569: Use PyMem_* APIs for non-PyObjects in compiler (#114587)Erlend E. Aasland2024-01-291-3/+3
|
* gh-107901: compiler replaces POP_BLOCK instruction by NOPs before ↵Irit Katriel2024-01-251-1/+2
| | | | optimisations (#114530)
* gh-114265: remove i_loc_propagated, jump threading does not consider line ↵Irit Katriel2024-01-251-41/+47
| | | | numbers anymore (#114535)
* gh-114083: apply optimization of LOAD_CONST instructions to the whole CFG ↵Irit Katriel2024-01-221-140/+179
| | | | before optimize_basic_block. (#114408)
* gh-114265: move line number propagation before cfg optimization, remove ↵Irit Katriel2024-01-191-53/+54
| | | | guarantee_lineno_for_exits (#114267)
* gh-107901: duplicate blocks with no lineno that have an eval break and ↵Irit Katriel2024-01-121-10/+22
| | | | multiple predecessors (#113950)
* gh-107901: jump leaving an exception handler doesn't need an eval break ↵Irit Katriel2024-01-111-1/+1
| | | | check (#113943)
* gh-107901: synthetic jumps which are not at end of loop no longer check the ↵Irit Katriel2024-01-061-3/+16
| | | | eval breaker (#113721)
* gh-113603: Compiler no longer tries to maintain the no-empty-block invariant ↵Irit Katriel2024-01-031-78/+38
| | | | (#113636)
* gh-113297: Fix segfault in compiler for with statement with 19 context ↵Irit Katriel2023-12-221-1/+2
| | | | managers (#113327)
* GH-111485: Generate instruction and uop metadata (GH-113287)Mark Shannon2023-12-201-2/+2
|
* gh-113054: Compiler no longer replaces a redundant jump with no line number ↵Irit Katriel2023-12-191-1/+16
| | | | by a NOP (#113139)
* gh-112519: Make it possible to specify instruction flags for pseudo ↵Irit Katriel2023-11-301-1/+1
| | | | instructions in bytecodes.c (#112520)
* gh-111354: simplify detection of RESUME after YIELD_VALUE at except-depth 1 ↵Irit Katriel2023-11-021-3/+15
| | | | (#111459)
* gh-109889: fix compiler's redundant NOP detection to look past NOPs with no ↵Irit Katriel2023-09-281-1/+11
| | | | lineno when looking for the next instruction's lineno (#109987)
* gh-109923: set line number on the POP_TOP that follows a RETURN_GENERATOR ↵Irit Katriel2023-09-271-2/+4
| | | | (#109924)
* gh-109823: Adjust labels in compiler when removing an empty basic block ↵Irit Katriel2023-09-251-1/+8
| | | | which is a jump target (#109839)
* gh-109719: Fix missing jump target labels when compiler reorders cold/warm ↵Irit Katriel2023-09-221-0/+5
| | | | blocks (#109734)
* gh-109627: duplicated smalll exit blocks need to be assigned jump target ↵Irit Katriel2023-09-201-5/+17
| | | | labels (#109630)
* dump readable opcode names in flowgraph debug utility (#109392)Carl Meyer2023-09-141-3/+2
| | | Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
* GH-105848: Replace KW_NAMES + CALL with LOAD_CONST + CALL_KW (GH-109300)Brandt Bucher2023-09-131-2/+0
|
* gh-108444: Replace _PyLong_AsInt() with PyLong_AsInt() (#108459)Victor Stinner2023-08-241-2/+2
| | | | | | Change generated by the command: sed -i -e 's!_PyLong_AsInt!PyLong_AsInt!g' \ $(find -name "*.c" -o -name "*.h")
* gh-108308: Replace PyDict_GetItem() with PyDict_GetItemRef() (#108309)Victor Stinner2023-08-231-8/+22
| | | | | | | | | Replace PyDict_GetItem() calls with PyDict_GetItemRef() or PyDict_GetItemWithError() to handle errors. * Replace PyLong_AS_LONG() with _PyLong_AsInt() and check for errors. * Check for PyDict_Contains() error. * pycore_init_builtins() checks for _PyType_Lookup() failure.
* gh-107901: Fix missing line number on BACKWARD_JUMP at the end of a for loop ↵Irit Katriel2023-08-211-1/+1
| | | | (#108242)
* gh-106149: move CFG and basicblock definitions into flowgraph.c, use them as ↵Irit Katriel2023-08-101-40/+397
| | | | opaque types in compile.c (#107639)
* GH-105848: Simplify the arrangement of CALL's stack (GH-107788)Brandt Bucher2023-08-091-4/+4
|
* gh-106149: Simplify stack depth calculation. Replace asserts by exceptions. ↵Irit Katriel2023-07-261-20/+41
| | | | (#107255)
* gh-106149: move _PyCfg_BasicblockLastInstr and make it local to flowgraph.c ↵Irit Katriel2023-07-241-23/+34
| | | | (#107180)
* gh-105481: expose opcode metadata via the _opcode module (#106688)Irit Katriel2023-07-141-3/+1
|
* gh-105481: move Python/opcode_metadata.h to ↵Irit Katriel2023-07-121-1/+1
| | | | Include/internal/pycore_opcode_metadata.h (#106673)
* GH-106008: Fix refleak when peepholing `None` comparisons (#106367)Brandt Bucher2023-07-041-1/+1
|
* gh-106149: move unconditional jump direction resolution from optimizer to ↵Irit Katriel2023-07-011-16/+6
| | | | assembler (#106291)
* GH-106008: Make implicit boolean conversions explicit (GH-106003)Brandt Bucher2023-06-291-29/+120
|
* gh-105775: Convert LOAD_CLOSURE to a pseudo-op (#106059)hms2023-06-291-0/+4
| | | | | | This enables super-instruction formation, removal of checks for uninitialized variables, and frees up an instruction.
* gh-106149: move jump target resolution from optimizer to assembler (#106150)Irit Katriel2023-06-271-78/+2
|
* gh-105481: remove HAS_ARG, HAS_CONST, IS_JUMP_OPCODE, IS_PSEUDO_OPCODE and ↵Irit Katriel2023-06-171-11/+10
| | | | replace by their new versions (#105865)
* gh-105481: add HAS_JUMP flag to opcode metadata (#105791)Irit Katriel2023-06-141-1/+2
|
* gh-105481: add pseudo-instructions to the bytecodes DSL (#105506)Irit Katriel2023-06-111-0/+6
|
* GH-105229: Remove remaining two-codeunit superinstructions (GH-105326)Mark Shannon2023-06-081-2/+0
| | | | * Remove LOAD_CONST__LOAD_FAST and LOAD_FAST__LOAD_CONST superinstructions.
* gh-104635: Eliminate redundant STORE_FAST instructions in the compiler ↵Dong-hee Na2023-06-071-5/+18
| | | | (gh-105320)
* GH-105229: Replace some superinstructions with single instruction ↵Mark Shannon2023-06-051-0/+51
| | | | equivalent. (GH-105230)
* gh-104615: don't make unsafe swaps in apply_static_swaps (#104620)Carl Meyer2023-05-181-0/+22
|
* gh-97933: (PEP 709) inline list/dict/set comprehensions (#101441)Carl Meyer2023-05-091-3/+13
| | | | Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com> Co-authored-by: Erlend E. Aasland <erlend.aasland@protonmail.com>
* gh-87092: Expose assembler to unit tests (#103988)Irit Katriel2023-05-011-0/+14
|
* gh-87092: change assembler to use instruction sequence instead of CFG (#103933)Irit Katriel2023-04-291-13/+7
|
* gh-91276: remove unused _PyOpcode_RelativeJump (#103156)Irit Katriel2023-04-111-23/+11
|
* gh-87092: move assembler related code from compile.c to assemble.c (#103277)Irit Katriel2023-04-111-24/+24
|
* gh-87092: move CFG related code from compile.c to flowgraph.c (#103021)Irit Katriel2023-03-311-0/+2160