GH-125837: Split LOAD_CONST into three. (GH-125972)

* Add LOAD_CONST_IMMORTAL opcode

* Add LOAD_SMALL_INT opcode

* Remove RETURN_CONST opcode
This commit is contained in:
Mark Shannon 2024-10-29 11:15:42 +00:00 committed by GitHub
parent 67f5c5bd6f
commit faa3272fb8
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
33 changed files with 706 additions and 538 deletions

View file

@ -29,13 +29,13 @@ class IsolatedCodeGenTests(CodegenTestCase):
('LOAD_CONST', 0, 1),
('TO_BOOL', 0, 1),
('POP_JUMP_IF_FALSE', false_lbl := self.Label(), 1),
('LOAD_CONST', 1, 1),
('LOAD_SMALL_INT', 42, 1),
('JUMP_NO_INTERRUPT', exit_lbl := self.Label()),
false_lbl,
('LOAD_CONST', 2, 1),
('LOAD_SMALL_INT', 24, 1),
exit_lbl,
('POP_TOP', None),
('LOAD_CONST', 3),
('LOAD_CONST', 1),
('RETURN_VALUE', None),
]
self.codegen_test(snippet, expected)
@ -82,7 +82,7 @@ class IsolatedCodeGenTests(CodegenTestCase):
# Function body
('RESUME', 0),
('LOAD_FAST', 0),
('LOAD_CONST', 1),
('LOAD_SMALL_INT', 42),
('BINARY_OP', 0),
('RETURN_VALUE', None),
('LOAD_CONST', 0),
@ -125,23 +125,23 @@ class IsolatedCodeGenTests(CodegenTestCase):
[
('RESUME', 0),
('NOP', None),
('LOAD_CONST', 1),
('LOAD_SMALL_INT', 12),
('RETURN_VALUE', None),
('LOAD_CONST', 0),
('LOAD_CONST', 1),
('RETURN_VALUE', None),
],
[
('RESUME', 0),
('LOAD_CONST', 1),
('LOAD_SMALL_INT', 1),
('STORE_FAST', 0),
('LOAD_CONST', 2),
('LOAD_SMALL_INT', 2),
('STORE_FAST', 1),
('LOAD_CONST', 3),
('LOAD_SMALL_INT', 3),
('STORE_FAST', 2),
('LOAD_CONST', 4),
('LOAD_SMALL_INT', 4),
('STORE_FAST', 3),
('NOP', None),
('LOAD_CONST', 5),
('LOAD_SMALL_INT', 42),
('RETURN_VALUE', None),
('LOAD_CONST', 0),
('RETURN_VALUE', None),