mpage
053c285f6b
gh-130704: Strength reduce `LOAD_FAST{_LOAD_FAST}` ( #130708 )
...
Optimize `LOAD_FAST` opcodes into faster versions that load borrowed references onto the operand stack when we can prove that the lifetime of the local outlives the lifetime of the temporary that is loaded onto the stack.
2025-04-01 10:18:42 -07:00
Yan Yanchii
674dbf3b3a
gh-126835: Refine constant folding tests in `test_peepholer.py::TestTranforms` ( #131826 )
2025-03-28 10:10:22 +00:00
Yan Yanchii
75103d975c
gh-126835: Move constant tuple folding from ast_opt to CFG ( #130769 )
2025-03-19 20:59:55 +00:00
Yan Yanchii
55815a6474
gh-130480: Move duplicate `LOAD_SMALL_INT` optimization from codegen to CFG ( #130481 )
2025-03-14 21:23:27 +00:00
Yan Yanchii
38642bff13
gh-126835: Move constant unaryop & binop folding to CFG ( #129550 )
2025-02-21 17:54:22 +00:00
Yan Yanchii
334589f619
gh-126835: Set location for noped out instructions after constant folding in CFG. ( #130109 )
2025-02-14 14:15:08 +00:00
Yan Yanchii
140e69c4a8
gh-126835: Move const folding of lists & sets from ast_opt.c to flowgraph.c ( #130032 )
2025-02-13 12:11:07 +00:00
Yan Yanchii
91d9544112
gh-126835: Make CFG optimizer skip over NOP's when looking for const sequence construction ( #129703 )
...
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-02-09 18:00:41 +00:00
Irit Katriel
a1417b211f
gh-100239: replace BINARY_SUBSCR & family by BINARY_OP with oparg NB_SUBSCR ( #129700 )
2025-02-07 22:39:54 +00:00
Yan Yanchii
0664c1af9b
gh-126835: Move constant subscript folding to CFG ( #129568 )
...
Move folding of constant subscription from AST optimizer to CFG.
Co-authored-by: Irit Katriel <1055913+iritkatriel@users.noreply.github.com>
2025-02-04 10:10:55 +02:00
Brandt Bucher
004f9fd1f2
Remove unnecessary LIST_TO_TUPLE conversions (GH-126558)
2025-01-08 09:00:11 -08:00
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
Irit Katriel
e97910cdb7
gh-125522 : add explicit exception types to bare excepts in tests ( #125523 )
2024-10-15 17:00:04 +01:00
Victor Stinner
f916b77fea
gh-120417: Remove unused imports in tests (part 3) ( #120631 )
2024-06-17 21:04:58 +02:00
Tian Gao
b034f14a4b
gh-74929: Implement PEP 667 (GH-115153)
2024-05-04 12:12:10 +01:00
Irit Katriel
c179c0e6cb
gh-117680: make _PyInstructionSequence a PyObject and use it in tests ( #117629 )
2024-04-17 16:42:04 +01:00
Irit Katriel
f42e112fd8
gh-115420: Fix translation of exception hander targets by _testinternalcapi.optimize_cfg. ( #115425 )
2024-02-15 14:32:52 +00:00
Irit Katriel
0315941441
gh-114265: remove i_loc_propagated, jump threading does not consider line numbers anymore ( #114535 )
2024-01-25 12:54:19 +00:00
Irit Katriel
d36a365118
gh-107901: synthetic jumps which are not at end of loop no longer check the eval breaker ( #113721 )
2024-01-06 14:20:08 +00:00
Serhiy Storchaka
f3ba0a74cd
gh-108416: Mark slow test methods with @requires_resource('cpu') (GH-108421)
...
Only mark tests which spend significant system or user time,
by itself or in subprocesses.
2023-09-02 07:45:34 +03:00
Irit Katriel
b0202a4e5d
gh-106149: Simplify stack depth calculation. Replace asserts by exceptions. ( #107255 )
2023-07-26 13:32:47 +01:00
Dong-hee Na
aa5b762bd3
gh-104635: Eliminate redundant STORE_FAST instructions in the compiler (gh-105320)
2023-06-08 08:39:56 +09:00
Mark Shannon
0689340366
GH-105229: Replace some superinstructions with single instruction equivalent. (GH-105230)
2023-06-05 11:07:04 +01:00
Carl Meyer
0589c6a4d3
gh-104615: don't make unsafe swaps in apply_static_swaps ( #104620 )
2023-05-18 21:22:03 +00:00
Rodolfo M. Pereira
8291ae31dd
GH-103805: Lib test f541 linting issue fix ( #103812 )
...
This PR makes some minor linting adjustments to the Lib/test module
caught by [ruff](https://github.com/charliermarsh/ruff ). The adjustments
are all related to the `F541 f-string without any placeholders` issue.
Issue: https://github.com/python/cpython/issues/103805
<!-- gh-issue-number: gh-103805 -->
* Issue: gh-103805
<!-- /gh-issue-number -->
---------
Co-authored-by: blurb-it[bot] <43283697+blurb-it[bot]@users.noreply.github.com>
Co-authored-by: Gregory P. Smith <greg@krypto.org>
2023-04-24 23:24:49 +00:00
Irit Katriel
3468c768ce
gh-102859: Remove JUMP_IF_FALSE_OR_POP and JUMP_IF_TRUE_OR_POP ( #102870 )
2023-03-22 18:10:48 +00:00
Irit Katriel
634cb61909
gh-87092: refactor assemble() to a number of separate functions, which do not need the compiler struct ( #102562 )
2023-03-13 15:59:20 +00:00
Irit Katriel
9f799ab020
gh-87092: Make jump target label equal to the offset of the target in the instructions sequence ( #102093 )
2023-02-28 11:29:32 +00:00
penguin_wwy
753fc8a5d6
gh-101632: Add the new RETURN_CONST opcode ( #101633 )
2023-02-07 22:32:21 +00:00
Irit Katriel
a3ac9232f8
gh-87092: expose the compiler's codegen to python for unit tests (GH-99111)
2022-11-14 13:56:40 +00:00
Brandt Bucher
c7065ce019
GH-93143: Don't turn LOAD_FAST into LOAD_FAST_CHECK (GH-99075)
2022-11-08 07:50:46 -08:00
Dennis Sweeney
39bc70e267
gh-97912: Avoid quadratic behavior when adding LOAD_FAST_CHECK (GH-97952)
...
* 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.
2022-10-20 18:27:41 -04:00
Irit Katriel
6d7a0e0dd7
gh-87092: reduce redundancy and repetition in compiler's optimization stage (GH-96713)
2022-09-13 13:03:41 +01:00
Irit Katriel
4c72517cad
gh-93554: Conditional jump opcodes only jump forward (GH-96318)
2022-09-01 21:36:47 +01:00
Irit Katriel
894cafd9a5
gh-93678: apply remove_redundant_jumps in optimize_cfg (GH-96274)
2022-09-01 11:03:52 +01:00
Irit Katriel
420f39f457
gh-93678: add _testinternalcapi.optimize_cfg() and test utils for compiler optimization unit tests (GH-96007)
2022-08-24 11:02:53 +01:00
Irit Katriel
bde06e1b83
gh-92228: disable the compiler's 'small exit block inlining' optimization 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".
2022-07-06 23:38:36 -07:00
Dennis Sweeney
f425f3bb27
gh-93143: Avoid NULL check in LOAD_FAST based on analysis in the compiler (GH-93144)
2022-05-31 16:32:30 -04:00
Dennis Sweeney
ddc4a782d3
gh-93223: More aggressive Jump-To-Jump elimination (GH-93229)
2022-05-27 11:17:59 +01:00
Irit Katriel
dd207a6ac5
bpo-47120: make POP_JUMP_IF_TRUE/FALSE/NONE/NOT_NONE relative (GH-32400)
2022-04-11 10:40:24 +01:00
Irit Katriel
a00518d9ad
bpo-47120: Replace the JUMP_ABSOLUTE opcode by the relative JUMP_BACKWARD (GH-32115)
2022-03-31 14:14:15 +01:00
Brandt Bucher
78ae4cc6dc
bpo-46528: Attempt SWAPs at compile-time (GH-30970)
2022-02-09 15:15:36 -08:00
Brandt Bucher
a0e55a571c
bpo-46528: Simplify BUILD_TUPLE/UNPACK_SEQUENCE folding (GH-31039)
2022-02-01 13:41:32 -08:00
Brandt Bucher
8548366864
bpo-46528: Simplify the VM's stack manipulations (GH-30902)
2022-01-26 12:47:45 -08:00
Brandt Bucher
27b69e60da
bpo-45773: Stop "optimizing" certain jump patterns (GH-29505)
2021-11-11 11:44:34 -08:00
Brandt Bucher
9178f533ff
bpo-45636: Merge all numeric operators (GH-29482)
2021-11-10 22:56:22 -08:00
Irit Katriel
f8d624d6a5
bpo-45144: use subTests in test_peepholer (GH-28247)
2021-09-10 18:29:21 +02:00
Serhiy Storchaka
8b01067318
bpo-28307: Tests and fixes for optimization of C-style formatting (GH-26318)
...
Fix errors:
* "%10.s" should be equal to "%10.0s", not "%10s".
* Tuples with starred expressions caused a SyntaxError.
2021-05-23 19:06:48 +03:00
Mark Shannon
8473cf89bd
bpo-42246: Remove DO_NOT_EMIT_BYTECODE macros, so that while loops and if statements conform to PEP 626. (GH-23743)
2020-12-15 11:07:50 +00:00
Mark Shannon
b52432cb8c
bpo-42057: Add regression test to master. (GH-22893)
2020-10-23 00:42:26 +09:00