summaryrefslogtreecommitdiffstats
path: root/Lib/test
diff options
context:
space:
mode:
authorMark Shannon <mark@hotpy.org>2020-07-30 09:03:00 (GMT)
committerGitHub <noreply@github.com>2020-07-30 09:03:00 (GMT)
commit6e8128f02e1d36e38e5866f9dc36e051caa47bc9 (patch)
tree69cb790e96057a35333a9a2de94934d9ab3aab9d /Lib/test
parentba18c0b13ba3c08077ea3db6658328523823a33f (diff)
downloadcpython-6e8128f02e1d36e38e5866f9dc36e051caa47bc9.zip
cpython-6e8128f02e1d36e38e5866f9dc36e051caa47bc9.tar.gz
cpython-6e8128f02e1d36e38e5866f9dc36e051caa47bc9.tar.bz2
bpo-41323: Perform 'peephole' optimizations directly on the CFG. (GH-21517)
* Move 'peephole' optimizations into compile.c and perform them directly on the CFG.
Diffstat (limited to 'Lib/test')
-rw-r--r--Lib/test/test_dis.py4
-rw-r--r--Lib/test/test_peepholer.py6
-rw-r--r--Lib/test/test_sys_settrace.py4
3 files changed, 5 insertions, 9 deletions
diff --git a/Lib/test/test_dis.py b/Lib/test/test_dis.py
index ac5836d..4533a01 100644
--- a/Lib/test/test_dis.py
+++ b/Lib/test/test_dis.py
@@ -360,8 +360,6 @@ dis_tryfinally = """\
16 CALL_FUNCTION 0
18 POP_TOP
20 RERAISE
- 22 LOAD_CONST 0 (None)
- 24 RETURN_VALUE
""" % (_tryfinally.__code__.co_firstlineno + 1,
_tryfinally.__code__.co_firstlineno + 2,
_tryfinally.__code__.co_firstlineno + 4,
@@ -385,8 +383,6 @@ dis_tryfinallyconst = """\
16 CALL_FUNCTION 0
18 POP_TOP
20 RERAISE
- 22 LOAD_CONST 0 (None)
- 24 RETURN_VALUE
""" % (_tryfinallyconst.__code__.co_firstlineno + 1,
_tryfinallyconst.__code__.co_firstlineno + 2,
_tryfinallyconst.__code__.co_firstlineno + 4,
diff --git a/Lib/test/test_peepholer.py b/Lib/test/test_peepholer.py
index 7913e91..65047ca 100644
--- a/Lib/test/test_peepholer.py
+++ b/Lib/test/test_peepholer.py
@@ -416,9 +416,9 @@ class TestTranforms(BytecodeTestCase):
if cond1: return 4
self.assertNotInBytecode(f, 'JUMP_FORWARD')
# There should be one jump for the while loop.
- returns = [instr for instr in dis.get_instructions(f)
- if instr.opname == 'JUMP_ABSOLUTE']
- self.assertEqual(len(returns), 1)
+ jumps = [instr for instr in dis.get_instructions(f)
+ if 'JUMP' in instr.opname]
+ self.assertEqual(len(jumps), 1)
returns = [instr for instr in dis.get_instructions(f)
if instr.opname == 'RETURN_VALUE']
self.assertLessEqual(len(returns), 2)
diff --git a/Lib/test/test_sys_settrace.py b/Lib/test/test_sys_settrace.py
index 482e918..3f902b1 100644
--- a/Lib/test/test_sys_settrace.py
+++ b/Lib/test/test_sys_settrace.py
@@ -948,7 +948,7 @@ class JumpTestCase(unittest.TestCase):
output.append(11)
output.append(12)
- @jump_test(5, 11, [2, 4], (ValueError, 'unreachable'))
+ @jump_test(5, 11, [2, 4], (ValueError, 'after'))
def test_no_jump_over_return_try_finally_in_finally_block(output):
try:
output.append(2)
@@ -1457,7 +1457,7 @@ class JumpTestCase(unittest.TestCase):
async with asynctracecontext(output, 4):
output.append(5)
- @jump_test(5, 7, [2, 4], (ValueError, "unreachable"))
+ @jump_test(5, 7, [2, 4], (ValueError, "after"))
def test_no_jump_over_return_out_of_finally_block(output):
try:
output.append(2)