René's URL Explorer Experiment


Title: gh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples by reidenong · Pull Request #144300 · python/cpython · GitHub

Open Graph Title: gh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples by reidenong · Pull Request #144300 · python/cpython

X Title: gh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples by reidenong · Pull Request #144300 · python/cpython

Description: Implements unique reference tracking to references in the JIT Optimizer. Uses the unique reference tracking to eliminate unnecessary reference counting for uniquely referenced tuples. ex: x, y, z = f() Some notes: Only implements the unique reference tracking (and relevant optimization) for tuples in _BUILD_TUPLE, to be extended to other objects in the future Objects are deemed as not uniquely referenced when they are made aliases or duplicated, in uops of _LOAD_FAST_* and _COPY. Would appreciate any feedback. Thanks Issue: gh-143414

Open Graph Description: Implements unique reference tracking to references in the JIT Optimizer. Uses the unique reference tracking to eliminate unnecessary reference counting for uniquely referenced tuples. ex: x, y, z ...

X Description: Implements unique reference tracking to references in the JIT Optimizer. Uses the unique reference tracking to eliminate unnecessary reference counting for uniquely referenced tuples. ex: x, y, z ...

Opengraph URL: https://github.com/python/cpython/pull/144300

X: @github

direct link

Domain: github.com

route-pattern/:user_id/:repository/pull/:id/files(.:format)
route-controllerpull_requests
route-actionfiles
fetch-noncev2:ee0e89a8-9f5a-15b4-a7d4-7a9ea6e380e6
current-catalog-service-hashae870bc5e265a340912cde392f23dad3671a0a881730ffdadd82f2f57d81641b
request-id8180:B2444:4E27A3C:6D2780A:6A50F459
html-safe-nonced9e25a4f7ce3cbf5f6cce190c4e500d85ad6dbfc8597f118a1e0d923af51fbcb
visitor-payloadeyJyZWZlcnJlciI6IiIsInJlcXVlc3RfaWQiOiI4MTgwOkIyNDQ0OjRFMjdBM0M6NkQyNzgwQTo2QTUwRjQ1OSIsInZpc2l0b3JfaWQiOiIxMjEwNzUyMjQ4ODkzNzMxOTI5IiwicmVnaW9uX2VkZ2UiOiJpYWQiLCJyZWdpb25fcmVuZGVyIjoiaWFkIn0=
visitor-hmacd6b7cb943165959c26b932656418311739f4ce1babf40689e212b895377fea0b
hovercard-subject-tagpull_request:3218714325
github-keyboard-shortcutsrepository,pull-request-list,pull-request-conversation,pull-request-files-changed,copilot
google-site-verificationApib7-x98H0j5cPqHWwSMm6dNU4GmODRoqxLiDzdx9I
octolytics-urlhttps://collector.github.com/github/collect
analytics-location///pull_requests/show/files
fb:app_id1401488693436528
apple-itunes-appapp-id=1477376905, app-argument=https://github.com/python/cpython/pull/144300/files
twitter:imagehttps://avatars.githubusercontent.com/u/65756407?s=400&v=4
twitter:cardsummary_large_image
og:imagehttps://avatars.githubusercontent.com/u/65756407?s=400&v=4
og:image:altImplements unique reference tracking to references in the JIT Optimizer. Uses the unique reference tracking to eliminate unnecessary reference counting for uniquely referenced tuples. ex: x, y, z ...
og:site_nameGitHub
og:typeobject
hostnamegithub.com
expected-hostnamegithub.com
None5266e58c17a510c403505cc811606465e90a881d2007ee7df1c4800d5c659838
turbo-cache-controlno-preview
diff-viewunified
go-importgithub.com/python/cpython git https://github.com/python/cpython.git
octolytics-dimension-user_id1525981
octolytics-dimension-user_loginpython
octolytics-dimension-repository_id81598961
octolytics-dimension-repository_nwopython/cpython
octolytics-dimension-repository_publictrue
octolytics-dimension-repository_is_forkfalse
octolytics-dimension-repository_network_root_id81598961
octolytics-dimension-repository_network_root_nwopython/cpython
turbo-body-classeslogged-out env-production page-responsive full-width
disable-turbotrue
browser-stats-urlhttps://api.github.com/_private/browser/stats
browser-errors-urlhttps://api.github.com/_private/browser/errors
release5ec60191a48933536a90c8a19f47142fcd0d4739
ui-targetfull
theme-color#1e2327
color-schemelight dark

Links:

Skip to contenthttps://github.com/python/cpython/pull/144300/files#start-of-content
https://github.com/
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F144300%2Ffiles
GitHub CopilotWrite better code with AIhttps://github.com/features/copilot
GitHub Copilot appDirect agents from issue to mergehttps://github.com/features/ai/github-app
MCP RegistryNewIntegrate external toolshttps://github.com/mcp
ActionsAutomate any workflowhttps://github.com/features/actions
CodespacesInstant dev environmentshttps://github.com/features/codespaces
IssuesPlan and track workhttps://github.com/features/issues
Code ReviewManage code changeshttps://github.com/features/code-review
GitHub Advanced SecurityFind and fix vulnerabilitieshttps://github.com/security/advanced-security
Code securitySecure your code as you buildhttps://github.com/security/advanced-security/code-security
Secret protectionStop leaks before they starthttps://github.com/security/advanced-security/secret-protection
Why GitHubhttps://github.com/why-github
Documentationhttps://docs.github.com
Bloghttps://github.blog
Changeloghttps://github.blog/changelog
Marketplacehttps://github.com/marketplace
View all featureshttps://github.com/features
Enterpriseshttps://github.com/enterprise
Small and medium teamshttps://github.com/team
Startupshttps://github.com/enterprise/startups
Nonprofitshttps://github.com/solutions/industry/nonprofits
App Modernizationhttps://github.com/solutions/use-case/app-modernization
DevSecOpshttps://github.com/solutions/use-case/devsecops
DevOpshttps://github.com/solutions/use-case/devops
CI/CDhttps://github.com/solutions/use-case/ci-cd
View all use caseshttps://github.com/solutions/use-case
Healthcarehttps://github.com/solutions/industry/healthcare
Financial serviceshttps://github.com/solutions/industry/financial-services
Manufacturinghttps://github.com/solutions/industry/manufacturing
Governmenthttps://github.com/solutions/industry/government
View all industrieshttps://github.com/solutions/industry
View all solutionshttps://github.com/solutions
AIhttps://github.com/resources/articles?topic=ai
Software Developmenthttps://github.com/resources/articles?topic=software-development
DevOpshttps://github.com/resources/articles?topic=devops
Securityhttps://github.com/resources/articles?topic=security
View all topicshttps://github.com/resources/articles
Customer storieshttps://github.com/customer-stories
Events & webinarshttps://github.com/resources/events
Ebooks & reportshttps://github.com/resources/whitepapers
Business insightshttps://github.com/solutions/executive-insights
GitHub Skillshttps://skills.github.com
Documentationhttps://docs.github.com
Customer supporthttps://support.github.com
Community forumhttps://github.com/orgs/community/discussions
Trust centerhttps://github.com/trust-center
Partnershttps://github.com/partners
View all resourceshttps://github.com/resources
GitHub SponsorsFund open source developershttps://github.com/open-source/sponsors
Security Labhttps://securitylab.github.com
Maintainer Communityhttps://maintainers.github.com
Acceleratorhttps://github.com/open-source/accelerator
GitHub Starshttps://stars.github.com
Archive Programhttps://archiveprogram.github.com
Topicshttps://github.com/topics
Trendinghttps://github.com/trending
Collectionshttps://github.com/collections
Enterprise platformAI-powered developer platformhttps://github.com/enterprise
GitHub Advanced SecurityEnterprise-grade security featureshttps://github.com/security/advanced-security
Copilot for BusinessEnterprise-grade AI featureshttps://github.com/features/copilot/copilot-business
Premium SupportEnterprise-grade 24/7 supporthttps://github.com/enterprise/premium-support
Pricinghttps://github.com/pricing
Search syntax tipshttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
documentationhttps://docs.github.com/search-github/github-code-search/understanding-github-code-search-syntax
Sign in https://github.com/login?return_to=https%3A%2F%2Fgithub.com%2Fpython%2Fcpython%2Fpull%2F144300%2Ffiles
Sign up https://github.com/signup?ref_cta=Sign+up&ref_loc=header+logged+out&ref_page=%2F%3Cuser-name%3E%2F%3Crepo-name%3E%2Fpull_requests%2Fshow%2Ffiles&source=header-repo&source_repo=python%2Fcpython
Reloadhttps://github.com/python/cpython/pull/144300/files
Reloadhttps://github.com/python/cpython/pull/144300/files
Reloadhttps://github.com/python/cpython/pull/144300/files
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
python https://github.com/python
cpythonhttps://github.com/python/cpython
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
Notifications https://github.com/login?return_to=%2Fpython%2Fcpython
Fork 35k https://github.com/login?return_to=%2Fpython%2Fcpython
Star 73.7k https://github.com/login?return_to=%2Fpython%2Fcpython
Code https://github.com/python/cpython
Issues 5k+ https://github.com/python/cpython/issues
Pull requests 2.3k https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality 0 https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Code https://github.com/python/cpython
Issues https://github.com/python/cpython/issues
Pull requests https://github.com/python/cpython/pulls
Actions https://github.com/python/cpython/actions
Projects https://github.com/python/cpython/projects
Security and quality https://github.com/python/cpython/security
Insights https://github.com/python/cpython/pulse
Sign up for GitHub https://github.com/signup?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
terms of servicehttps://docs.github.com/terms
privacy statementhttps://docs.github.com/privacy
Sign inhttps://github.com/login?return_to=%2Fpython%2Fcpython%2Fissues%2Fnew%2Fchoose
Fidget-Spinnerhttps://github.com/Fidget-Spinner
python:mainhttps://github.com/python/cpython/tree/main
reidenong:branch-unique-reference-trackinghttps://github.com/reidenong/cpython/tree/branch-unique-reference-tracking
Conversation 43 https://github.com/python/cpython/pull/144300
Commits 36 https://github.com/python/cpython/pull/144300/commits
Checks 86 https://github.com/python/cpython/pull/144300/checks
Files changed https://github.com/python/cpython/pull/144300/files
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
gh-143414: Implement unique reference tracking for JIT, optimize unpacking of such tuples https://github.com/python/cpython/pull/144300/files#top
Show all changes 36 commits https://github.com/python/cpython/pull/144300/files
e4b7f51 Add unique reference tracking to JIT, optimize tuple unpacking reidenong Jan 28, 2026 https://github.com/python/cpython/pull/144300/commits/e4b7f511d38762cf2d44213b608eb1d6c62636f0
b32a8e2 Merge branch 'main' into branch-unique-reference-tracking reidenong Jan 28, 2026 https://github.com/python/cpython/pull/144300/commits/b32a8e2a552897ec2873b1d097eb3d2b60a1a026
7aeac0e Regenerate cases reidenong Jan 28, 2026 https://github.com/python/cpython/pull/144300/commits/7aeac0ef22b0caaab51708d69a71e40f97cceab9
f8b7e4e Fix unique tuple unpacking checks reidenong Jan 28, 2026 https://github.com/python/cpython/pull/144300/commits/f8b7e4ed8d8a323793342ae5d7874029fd664e23
37d7c4b Implement _PyTuple_ExactDealloc reidenong Jan 29, 2026 https://github.com/python/cpython/pull/144300/commits/37d7c4b8cff12b4a9935b7ca0dd0aa24dfb59787
7df2176 Rename symbol reidenong Jan 29, 2026 https://github.com/python/cpython/pull/144300/commits/7df217602471d7ac3110edf7c698397587f8729c
6f66c56 Merge branch 'main' into branch-unique-reference-tracking reidenong Jan 30, 2026 https://github.com/python/cpython/pull/144300/commits/6f66c5609b17d490e486ccf750d36b6913bc831c
b251825 Merge branch 'main' into branch-unique-reference-tracking reidenong Jan 30, 2026 https://github.com/python/cpython/pull/144300/commits/b2518259b00aa1219ebb1b2e61498c484d3015d5
bcd5654 Regenerate cases reidenong Jan 30, 2026 https://github.com/python/cpython/pull/144300/commits/bcd56548f0fc4d5d34c235a499b00dbaf8548460
acfa737 Add alignment checking reidenong Jan 31, 2026 https://github.com/python/cpython/pull/144300/commits/acfa737fb644e25ef7bfbe29fdbbea83d60152ae
a0fd9e2 Change JIT reference tags to 2 bit scheme reidenong Jan 31, 2026 https://github.com/python/cpython/pull/144300/commits/a0fd9e2db5ca6b94eeead1fa098939943c18d3d0
645776a 📜🤖 Added by blurb_it. blurb-it[bot] Jan 31, 2026 https://github.com/python/cpython/pull/144300/commits/645776a909954a355c4ba06959eeb7f028b9d984
cdb4a05 Fix style reidenong Feb 1, 2026 https://github.com/python/cpython/pull/144300/commits/cdb4a0581a3a26a5d2f1727c2d61345f056f88fd
275732b Remove unnecesssary deopt reidenong Feb 2, 2026 https://github.com/python/cpython/pull/144300/commits/275732b48e95e167ffab12820846584511ac74af
dbde059 Regenerate cases reidenong Feb 2, 2026 https://github.com/python/cpython/pull/144300/commits/dbde05909d3bb2b457e2ef5e393254eb9b43620c
bd70ebd Replace tuple deallocation with tuple free reidenong Feb 3, 2026 https://github.com/python/cpython/pull/144300/commits/bd70ebdae1ed89070130928b13bb26f39cedf157
d16f298 Merge branch 'main' into branch-unique-reference-tracking reidenong Feb 5, 2026 https://github.com/python/cpython/pull/144300/commits/d16f2982317fb6ea9d6cd687cf5ab804e2fc2ce3
bec7ee3 Regenerate cases reidenong Feb 5, 2026 https://github.com/python/cpython/pull/144300/commits/bec7ee3d1fb97d800e76b5a0f7a01919621d69f9
5c9b9c6 Add unique reference two tuple optimization reidenong Feb 5, 2026 https://github.com/python/cpython/pull/144300/commits/5c9b9c6b40d4e80d88b9de1bfaa2fd184e8c18b5
cdbe2e6 Add efficient unpacking for uniquely referenced three tuples reidenong Feb 5, 2026 https://github.com/python/cpython/pull/144300/commits/cdbe2e654a55acfd002b8d86d71e16983528c2bc
fb1d227 Move length checks to JIT reidenong Feb 6, 2026 https://github.com/python/cpython/pull/144300/commits/fb1d2271f95d75f58a526603a2eb363d49b29c9d
c7e53fb Refactor JIT reference remove unique reidenong Feb 3, 2026 https://github.com/python/cpython/pull/144300/commits/c7e53fbf2e54bea241bc586c06ee87e4e9d052ce
6851962 Remove JIT reference uniqueness on store reidenong Feb 3, 2026 https://github.com/python/cpython/pull/144300/commits/685196235e5c2bdae3b23317671bf4095e8c5775
8c8e0a9 Remove unnecessary DEOPT reidenong Feb 6, 2026 https://github.com/python/cpython/pull/144300/commits/8c8e0a91ddb4d377a192349f6c1ec09a447f50f7
a6fffdc Remove redundant make unique ops reidenong Feb 21, 2026 https://github.com/python/cpython/pull/144300/commits/a6fffdc50fdb2d75c385dd288214badadc4100f7
78978aa Merge branch 'main' into branch-unique-reference-tracking reidenong Feb 21, 2026 https://github.com/python/cpython/pull/144300/commits/78978aaf9a06afebaef739da54a43a2dd875526c
0b07ac4 Regen cases reidenong Feb 21, 2026 https://github.com/python/cpython/pull/144300/commits/0b07ac42e8b67d11e2c19d6a8ecf0cd82add8735
14e5d3d Merge branch 'main' into branch-unique-reference-tracking reidenong Feb 21, 2026 https://github.com/python/cpython/pull/144300/commits/14e5d3d58ffb1c2ee2e7ef6598521a3d3fe8886c
8506038 Merge branch 'main' into branch-unique-reference-tracking reidenong Mar 9, 2026 https://github.com/python/cpython/pull/144300/commits/8506038cd35bc0aea69026415a12bfb6fac4ed78
d67617f Regen cases reidenong Mar 9, 2026 https://github.com/python/cpython/pull/144300/commits/d67617f0eab5bc8e7568adf642bbb52ee5fc75ef
100eeb5 Merge branch 'main' into branch-unique-reference-tracking reidenong Mar 9, 2026 https://github.com/python/cpython/pull/144300/commits/100eeb5b3353cb4d20994621861ac91bc86f4352
e476061 Merge branch 'main' into branch-unique-reference-tracking reidenong Mar 11, 2026 https://github.com/python/cpython/pull/144300/commits/e47606164d329ec0445701debb51b8f24e826bfc
06a9ec1 Merge branch 'main' into branch-unique-reference-tracking reidenong Mar 11, 2026 https://github.com/python/cpython/pull/144300/commits/06a9ec17c1be5ae9396f0954504ad5094c4a821e
6bce6b4 Merge remote-tracking branch 'upstream/main' into pr/144300 Fidget-Spinner Mar 22, 2026 https://github.com/python/cpython/pull/144300/commits/6bce6b44fbd2934d7e6e9ef5907b5f3af44eccd6
89dc467 Mark unique tuple freeing as non-escaping Fidget-Spinner Mar 22, 2026 https://github.com/python/cpython/pull/144300/commits/89dc467e4d0f8f8a25edd7e7fb7113807b4310c4
4e6c792 fix a bugs in _COPY_FREE_VARS and frame creation Fidget-Spinner Mar 22, 2026 https://github.com/python/cpython/pull/144300/commits/4e6c7923eeaf2effd01f564d5083acfed93b03e4
Clear filters https://github.com/python/cpython/pull/144300/files
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
pycore_optimizer.h https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
pycore_tuple.h https://github.com/python/cpython/pull/144300/files#diff-02a8063ded0e44b150c017ff3c40889642e1f3d5da42195701586e8a2c0a233a
pycore_uop_ids.h https://github.com/python/cpython/pull/144300/files#diff-2a420e4d0d58009249c0f73f7c822167b053bd51cb213b20179bd2aebfc66ff9
pycore_uop_metadata.h https://github.com/python/cpython/pull/144300/files#diff-55e65a72fa31e9b746e03076d2c74b716c0c1171663f36960b2339fcbfae9bab
test_opt.py https://github.com/python/cpython/pull/144300/files#diff-67b5bd915e37f77df79907865982648172c27d3b96fbb072b30a73c6a2735439
2026-01-31-15-15-43.gh-issue-143414.Jgl4xu.rst https://github.com/python/cpython/pull/144300/files#diff-a0957791efd54c8d93b4939e6beaddef182afe5f5c3afe31f453ec75064eab94
tupleobject.c https://github.com/python/cpython/pull/144300/files#diff-1c580282bd10a8157cc81dd4a4658d4bb47f75ea476cd433bc7435913b33eb77
bytecodes.c https://github.com/python/cpython/pull/144300/files#diff-729a985b0cb8b431cb291f1edb561bbbfea22e3f8c262451cd83328a0936a342
executor_cases.c.h https://github.com/python/cpython/pull/144300/files#diff-a1c3430c42a66c16e6d2e154491a6da993b187b27c628545a12a02c7b2a06b81
optimizer_bytecodes.c https://github.com/python/cpython/pull/144300/files#diff-e5bd2b14b0b10f0f47786e26306d689ed1361c3dc3b11dcc3ea52b8a2422ff64
optimizer_cases.c.h https://github.com/python/cpython/pull/144300/files#diff-ed4567b3e67709ec57bf4df91ef058cfcbe00d7da11cd2a75e38241fa1ca99d2
optimizer_symbols.c https://github.com/python/cpython/pull/144300/files#diff-b28c00f0aab70992e604ed7c3e9cb4ca39779f33d5ff2c7777de5a044422f095
analyzer.py https://github.com/python/cpython/pull/144300/files#diff-bf1d5618934b787df486d8077f48217f17bf4321b9a151528f67b6e6f383976b
Include/internal/pycore_optimizer.hhttps://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
View file https://github.com/reidenong/cpython/blob/4e6c7923eeaf2effd01f564d5083acfed93b03e4/Include/internal/pycore_optimizer.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/144300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
https://github.com/python/cpython/pull/144300/files#diff-04d62d99f4a2b418ae2fd0eecece5b153dee4ac843c706a8de03c45a2d65efcc
Include/internal/pycore_tuple.hhttps://github.com/python/cpython/pull/144300/files#diff-02a8063ded0e44b150c017ff3c40889642e1f3d5da42195701586e8a2c0a233a
View file https://github.com/reidenong/cpython/blob/4e6c7923eeaf2effd01f564d5083acfed93b03e4/Include/internal/pycore_tuple.h
Open in desktop https://desktop.github.com
https://github.co/hiddenchars
https://github.com/python/cpython/pull/144300/{{ revealButtonHref }}
https://github.com/python/cpython/pull/144300/files#diff-02a8063ded0e44b150c017ff3c40889642e1f3d5da42195701586e8a2c0a233a
https://github.com/python/cpython/pull/144300/files#diff-02a8063ded0e44b150c017ff3c40889642e1f3d5da42195701586e8a2c0a233a
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
Please reload this pagehttps://github.com/python/cpython/pull/144300/files
https://github.com
Termshttps://docs.github.com/site-policy/github-terms/github-terms-of-service
Privacyhttps://docs.github.com/site-policy/privacy-policies/github-privacy-statement
Securityhttps://github.com/security
Statushttps://www.githubstatus.com/
Communityhttps://github.community/
Docshttps://docs.github.com/
Contacthttps://support.github.com?tags=dotcom-footer

Viewport: width=device-width


URLs of crawlers that visited me.