Analysis for grouping/ordering values representing a single program qubit
Nobody has claimed this yet.
- Dominant language
- C++
- Stars
- 1.1k
- Forks
- 455
- Avg merge
- 1d 22h
- Merged PRs (30d)
- 165
Description
Currently, there are many ad-hoc mechanisms to map MLIR Values to the qubit they represent, particularly for quake.wires, and to get the next value/wire corresponding to that qubit through an operation. It would be good to consolidate this into a single analysis and replace every ad-hoc instance.
Please add any passes/analyses with an ad-hoc implementation of this logic below:
- PhaseFolding does this to identify subcircuits and to track phases.
- DependencyAnalysis does this to form a dependency graph
- Mapping does this for placement and routing
- #4984 introduces a more structured analysis for this case, and uses it for commutation analysis
- #5148 does this in resource estimation to track which Qubit an operation is applied to
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Compare the ad-hoc qubit-value tracking in PhaseFolding, DependencyAnalysis, and Mapping with the structured analysis from #4984 and the resource-estimation work in #5148. Identify the common analysis boundary and its consumers first. Done means the shared analysis replaces the listed mechanisms while preserving subcircuit, dependency, mapping, commutation, and resource-estimation behavior.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- cpp
- Domain
- compilers, quantum-computing
- Issue type
- Refactor
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Active
- Clarity
- Mostly clear
- Newbie friendliness
- 38/100