Skip to content

Commit 3e06c7f

Browse files
authored
GH-118095: Add dynamic exit support and FOR_ITER_GEN support to tier 2 (GH-118279)
1 parent 63add11 commit 3e06c7f

12 files changed

+315
-139
lines changed

Include/internal/pycore_opcode_metadata.h

+2-1
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_uop_ids.h

+104-103
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Include/internal/pycore_uop_metadata.h

+8
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Lib/test/test_capi/test_opt.py

+16-1
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ def iter_opnames(ex):
132132

133133

134134
def get_opnames(ex):
135-
return set(iter_opnames(ex))
135+
return list(iter_opnames(ex))
136136

137137

138138
@requires_specialization
@@ -1298,5 +1298,20 @@ def testfunc(n):
12981298
self.assertIsNotNone(ex)
12991299
self.assertIn("_RETURN_GENERATOR", get_opnames(ex))
13001300

1301+
def test_for_iter_gen(self):
1302+
def gen(n):
1303+
for i in range(n):
1304+
yield i
1305+
def testfunc(n):
1306+
g = gen(n)
1307+
s = 0
1308+
for i in g:
1309+
s += i
1310+
return s
1311+
res, ex = self._run_with_optimizer(testfunc, 20)
1312+
self.assertEqual(res, 190)
1313+
self.assertIsNotNone(ex)
1314+
self.assertIn("_FOR_ITER_GEN_FRAME", get_opnames(ex))
1315+
13011316
if __name__ == "__main__":
13021317
unittest.main()

0 commit comments

Comments
 (0)