]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
bpo-42615: Delete redundant jump instructions that only bypass empty blocks (GH-23733)
authorOm G <34579088+OmG-117@users.noreply.github.com>
Wed, 16 Dec 2020 12:18:05 +0000 (17:48 +0530)
committerGitHub <noreply@github.com>
Wed, 16 Dec 2020 12:18:05 +0000 (12:18 +0000)
commitc71581c7a4192e6ba9a79eccc583aaadab300efa
tree9d42fd9c2bbf583cd7259672abe62c98c28cedc0
parent8203c73f3bb1f51614279b6e23af2ec587d1fa22
bpo-42615: Delete redundant jump instructions that only bypass empty blocks (GH-23733)

* Delete jump instructions that bypass empty blocks

* Add news entry

* Explicitly check for unconditional jump opcodes

Using the is_jump function results in the inclusion of instructions like
returns for which this optimization is not really valid. So, instead
explicitly check that the instruction is an unconditional jump.

* Handle conditional jumps, delete jumps gracefully

* Ensure b_nofallthrough and b_reachable are valid

* Add test for redundant jumps

* Regenerate importlib.h and edit Misc/ACKS

* Fix bad whitespace
Lib/test/test_compile.py
Misc/ACKS
Misc/NEWS.d/next/Core and Builtins/2020-12-10-17-06-52.bpo-42615.Je6Q-r.rst [new file with mode: 0644]
Python/compile.c
Python/importlib.h