Title: Allow recording uops after specializing uops · Issue #148285 · python/cpython · GitHub
Open Graph Title: Allow recording uops after specializing uops · Issue #148285 · python/cpython
X Title: Allow recording uops after specializing uops · Issue #148285 · python/cpython
Description: Currently, this is illegal in bytecodes.c: macro(TO_BOOL) = _SPECIALIZE_TO_BOOL + _RECORD_TOS_TYPE + unused/2 + _TO_BOOL; because both specializing and recording uops must be first. Since specializing uops are only present in tier 1, and...
Open Graph Description: Currently, this is illegal in bytecodes.c: macro(TO_BOOL) = _SPECIALIZE_TO_BOOL + _RECORD_TOS_TYPE + unused/2 + _TO_BOOL; because both specializing and recording uops must be first. Since specializ...
X Description: Currently, this is illegal in bytecodes.c: macro(TO_BOOL) = _SPECIALIZE_TO_BOOL + _RECORD_TOS_TYPE + unused/2 + _TO_BOOL; because both specializing and recording uops must be first. Since specializ...
Opengraph URL: https://github.com/python/cpython/issues/148285
X: @github
Domain: github.com
{"@context":"https://schema.org","@type":"DiscussionForumPosting","headline":"Allow recording uops after specializing uops","articleBody":"Currently, this is illegal in bytecodes.c:\n\n```C\nmacro(TO_BOOL) = \n _SPECIALIZE_TO_BOOL +\n _RECORD_TOS_TYPE +\n unused/2 +\n _TO_BOOL;\n```\nbecause both specializing and recording uops must be first. Since specializing uops are only present in tier 1, and recording uops are only present in tier 2, there should be no conflict.\n\nWe should fix `Tools/cases_generator/analyzer.py` to allow a recording uop to follow a specializing uop.\n\n\n\u003c!-- gh-linked-prs --\u003e\n### Linked PRs\n* gh-148367\n* gh-148373\n* gh-148482\n\u003c!-- /gh-linked-prs --\u003e\n","author":{"url":"https://github.com/markshannon","@type":"Person","name":"markshannon"},"datePublished":"2026-04-09T08:44:53.000Z","interactionStatistic":{"@type":"InteractionCounter","interactionType":"https://schema.org/CommentAction","userInteractionCount":5},"url":"https://github.com/148285/cpython/issues/148285"}
| route-pattern | /_view_fragments/issues/show/:user_id/:repository/:id/issue_layout(.:format) |
| route-controller | voltron_issues_fragments |
| route-action | issue_layout |
| fetch-nonce | v2:cbce0623-ccf3-a75b-e3b0-e0f769163499 |
| current-catalog-service-hash | 81bb79d38c15960b92d99bca9288a9108c7a47b18f2423d0f6438c5b7bcd2114 |
| request-id | 95D6:FA8B5:68796C:8E7B42:6A5255E8 |
| html-safe-nonce | 08a78d54bb25c9d8a4c84356266da6cd07d821955eef3aaff114c54be84efe17 |
| visitor-payload | eyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI5NUQ2OkZBOEI1OjY4Nzk2Qzo4RTdCNDI6NkE1MjU1RTgiLCJ2aXNpdG9yX2lkIjoiMzEwMzI2Mzc0NjAyNzU3NDc2MCIsInJlZ2lvbl9lZGdlIjoiaWFkIiwicmVnaW9uX3JlbmRlciI6ImlhZCJ9 |
| visitor-hmac | f905cda14625fe9ccf27e201d04b93d99d03287f99c857a34ededc0c31285aea |
| hovercard-subject-tag | issue:4230815291 |
| github-keyboard-shortcuts | repository,issues,copilot |
| google-site-verification | Apib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I |
| octolytics-url | https://collector.github.com/github/collect |
| analytics-location | / |
| fb:app_id | 1401488693436528 |
| apple-itunes-app | app-id=1477376905, app-argument=https://github.com/_view_fragments/issues/show/python/cpython/148285/issue_layout |
| twitter:image | https://opengraph.githubassets.com/75b782815bbe34944a7c45558cb4a472e81162fda13079452362bbc77d850e6d/python/cpython/issues/148285 |
| twitter:card | summary_large_image |
| og:image | https://opengraph.githubassets.com/75b782815bbe34944a7c45558cb4a472e81162fda13079452362bbc77d850e6d/python/cpython/issues/148285 |
| og:image:alt | Currently, this is illegal in bytecodes.c: macro(TO_BOOL) = _SPECIALIZE_TO_BOOL + _RECORD_TOS_TYPE + unused/2 + _TO_BOOL; because both specializing and recording uops must be first. Since specializ... |
| og:image:width | 1200 |
| og:image:height | 600 |
| og:site_name | GitHub |
| og:type | object |
| og:author:username | markshannon |
| hostname | github.com |
| expected-hostname | github.com |
| None | b9a586c06a05a7a86fc7e3f4dbd03e42f6869085879aa184aa6369456dbd50fb |
| turbo-cache-control | no-preview |
| go-import | github.com/python/cpython git https://github.com/python/cpython.git |
| octolytics-dimension-user_id | 1525981 |
| octolytics-dimension-user_login | python |
| octolytics-dimension-repository_id | 81598961 |
| octolytics-dimension-repository_nwo | python/cpython |
| octolytics-dimension-repository_public | true |
| octolytics-dimension-repository_is_fork | false |
| octolytics-dimension-repository_network_root_id | 81598961 |
| octolytics-dimension-repository_network_root_nwo | python/cpython |
| turbo-body-classes | logged-out env-production page-responsive |
| disable-turbo | false |
| browser-stats-url | https://api.github.com/_private/browser/stats |
| browser-errors-url | https://api.github.com/_private/browser/errors |
| release | 7aed05249554b889eb33d002851a973eebcc7e91 |
| ui-target | full |
| theme-color | #1e2327 |
| color-scheme | light dark |
Links:
Viewport: width=device-width