Skip to content

Commit

Permalink
pythonGH-118095: Add dynamic exit support and FOR_ITER_GEN support to…
Browse files Browse the repository at this point in the history
… tier 2 (pythonGH-118279)
  • Loading branch information
markshannon committed Apr 26, 2024
1 parent 63add11 commit 3e06c7f
Show file tree
Hide file tree
Showing 12 changed files with 315 additions and 139 deletions.
3 changes: 2 additions & 1 deletion Include/internal/pycore_opcode_metadata.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

207 changes: 104 additions & 103 deletions Include/internal/pycore_uop_ids.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

8 changes: 8 additions & 0 deletions Include/internal/pycore_uop_metadata.h

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

17 changes: 16 additions & 1 deletion Lib/test/test_capi/test_opt.py
Original file line number Diff line number Diff line change
Expand Up @@ -132,7 +132,7 @@ def iter_opnames(ex):


def get_opnames(ex):
return set(iter_opnames(ex))
return list(iter_opnames(ex))


@requires_specialization
Expand Down Expand Up @@ -1298,5 +1298,20 @@ def testfunc(n):
self.assertIsNotNone(ex)
self.assertIn("_RETURN_GENERATOR", get_opnames(ex))

def test_for_iter_gen(self):
def gen(n):
for i in range(n):
yield i
def testfunc(n):
g = gen(n)
s = 0
for i in g:
s += i
return s
res, ex = self._run_with_optimizer(testfunc, 20)
self.assertEqual(res, 190)
self.assertIsNotNone(ex)
self.assertIn("_FOR_ITER_GEN_FRAME", get_opnames(ex))

if __name__ == "__main__":
unittest.main()
Loading

0 comments on commit 3e06c7f

Please sign in to comment.