gh-130480: Move duplicate LOAD_SMALL_INT optimization from codegen to CFG (#130481)

This commit is contained in:
Yan Yanchii 2025-03-14 22:23:27 +01:00 committed by GitHub
parent 26511993e6
commit 55815a6474
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
6 changed files with 146 additions and 116 deletions

View file

@ -29,10 +29,10 @@ def test_if_expression(self):
('LOAD_CONST', 0, 1),
('TO_BOOL', 0, 1),
('POP_JUMP_IF_FALSE', false_lbl := self.Label(), 1),
('LOAD_SMALL_INT', 42, 1),
('LOAD_CONST', 1, 1), # 42
('JUMP_NO_INTERRUPT', exit_lbl := self.Label()),
false_lbl,
('LOAD_SMALL_INT', 24, 1),
('LOAD_CONST', 2, 1), # 24
exit_lbl,
('POP_TOP', None),
('LOAD_CONST', 1),
@ -82,7 +82,7 @@ def f(x):
# Function body
('RESUME', 0),
('LOAD_FAST', 0),
('LOAD_SMALL_INT', 42),
('LOAD_CONST', 42),
('BINARY_OP', 0),
('RETURN_VALUE', None),
('LOAD_CONST', 0),
@ -125,23 +125,23 @@ def g():
[
('RESUME', 0),
('NOP', None),
('LOAD_SMALL_INT', 12),
('LOAD_CONST', 12),
('RETURN_VALUE', None),
('LOAD_CONST', 1),
('RETURN_VALUE', None),
],
[
('RESUME', 0),
('LOAD_SMALL_INT', 1),
('LOAD_CONST', 1),
('STORE_FAST', 0),
('LOAD_SMALL_INT', 2),
('LOAD_CONST', 2),
('STORE_FAST', 1),
('LOAD_SMALL_INT', 3),
('LOAD_CONST', 3),
('STORE_FAST', 2),
('LOAD_SMALL_INT', 4),
('LOAD_CONST', 4),
('STORE_FAST', 3),
('NOP', None),
('LOAD_SMALL_INT', 42),
('LOAD_CONST', 42),
('RETURN_VALUE', None),
('LOAD_CONST', 0),
('RETURN_VALUE', None),