✨ Preserve reusable functions across jeff import and export - #2339
Merged
Conversation
burgholzer
added a commit
that referenced
this pull request
Sep 3, 2026
Fold #2339 into the existing unreleased jeff conversion entry and record the completed local validation in its execution plan. Assisted-by: GPT-5.6 via Codex
Codecov Report❌ Patch coverage is
📢 Thoughts on this report? Let us know! |
12 tasks
burgholzer
added a commit
that referenced
this pull request
Sep 3, 2026
Fold #2339 into the existing unreleased jeff conversion entry and record the completed local validation in its execution plan. Assisted-by: GPT-5.6 via Codex
burgholzer
force-pushed
the
codex/jeff-reusable-functions
branch
from
September 3, 2026 05:07
c2f0894 to
f6c4ccc
Compare
12 tasks
burgholzer
force-pushed
the
codex/qco-function-model
branch
from
September 3, 2026 11:05
ad32279 to
d2e592b
Compare
burgholzer
force-pushed
the
codex/qco-function-model
branch
from
September 3, 2026 21:05
d2e592b to
1a68140
Compare
burgholzer
force-pushed
the
codex/jeff-reusable-functions
branch
from
September 3, 2026 23:12
f6c4ccc to
aa96714
Compare
12 tasks
burgholzer
force-pushed
the
codex/jeff-reusable-functions
branch
from
September 4, 2026 21:59
aa96714 to
212d319
Compare
burgholzer
force-pushed
the
codex/jeff-reusable-functions
branch
from
September 5, 2026 13:09
212d319 to
29543df
Compare
Preserve native function tables and calls across QCO/jeff conversion, and expand only calls nested under unsupported quantum modifiers. Rely on the corrected jeff reader for forward references while keeping mutable classical helper arguments fail-closed. Assisted-by: Codex
burgholzer
force-pushed
the
codex/jeff-reusable-functions
branch
from
September 5, 2026 15:00
29543df to
b74fd6a
Compare
burgholzer
commented
Sep 6, 2026
burgholzer
left a comment
Member
Author
There was a problem hiding this comment.
This feels very clean. I'm merging this for now as I continue through the stack of PRs here.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🤖 AI text below 🤖
Description
Preserve reusable functions and calls across QCO ↔ jeff conversion using native
func.funcandfunc.callconversion patterns. Ordinary calls remain compact; only calls inside quantum modifiers are expanded by the shared modifier pass. Correct the jeff entry-point mapping to index the function table, not the string table.This PR is rebased on current
main, including the jeff-mlir forward-call fix. Imported helpers are private, source function order is preserved, and the entry-point index identifies the original entry function. Classical-register reference arguments remain unsupported and are rejected explicitly.Codex implemented and tested the changes with an independent jeff/MLIR specialist. The integration reuses existing MLIR conversion and inlining APIs without a new format schema, custom call graph, or whole-program inliner.
Integrated-stack validation: release build; all 3,916 registered CTest cases with one expected skip; all 294 Qiskit translation tests; whole-file C++ lint and repository lint. Stub generation passed without tracked changes. Hosted CI is separate evidence and has not been claimed as passed.
Checklist
If PR contains AI-assisted content:
🤖 *AI text below* 🤖(titles are exempt).