py: Replace POP_BLOCK and POP_EXCEPT opcodes with POP_EXCEPT_JUMP.
POP_BLOCK and POP_EXCEPT are now the same, and are always followed by a JUMP. So this optimisation reduces code size, and RAM usage of bytecode by two bytes for each try-except handler.
This commit is contained in:
@@ -257,13 +257,11 @@ Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ LOAD_FAST 0
|
||||
\\d\+ POP_JUMP_IF_TRUE \\d\+
|
||||
\\d\+ POP_BLOCK
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ POP_EXCEPT_JUMP \\d\+
|
||||
\\d\+ POP_TOP
|
||||
\\d\+ LOAD_DEREF 14
|
||||
\\d\+ POP_TOP
|
||||
\\d\+ POP_EXCEPT
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ POP_EXCEPT_JUMP \\d\+
|
||||
\\d\+ END_FINALLY
|
||||
\\d\+ LOAD_CONST_NONE
|
||||
\\d\+ LOAD_FAST 1
|
||||
@@ -272,11 +270,9 @@ Raw bytecode (code_info_size=\\d\+, bytecode_size=\\d\+):
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ SETUP_EXCEPT \\d\+
|
||||
\\d\+ UNWIND_JUMP \\d\+ 1
|
||||
\\d\+ POP_BLOCK
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ POP_EXCEPT_JUMP \\d\+
|
||||
\\d\+ POP_TOP
|
||||
\\d\+ POP_EXCEPT
|
||||
\\d\+ JUMP \\d\+
|
||||
\\d\+ POP_EXCEPT_JUMP \\d\+
|
||||
\\d\+ END_FINALLY
|
||||
\\d\+ LOAD_FAST 0
|
||||
\\d\+ POP_JUMP_IF_TRUE \\d\+
|
||||
|
||||
Reference in New Issue
Block a user