-
Notifications
You must be signed in to change notification settings - Fork 2.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Full support for control flow in transpile
#9417
Comments
transpile
transpile
EDIT: #10355 uses a completely different approach. So the comment here is irrelevant to this epic. The current implementation of We might try something like this:
Then these lower-level |
What should we add?
Over the course of the epic:
we added support for control-flow to the transpiler at optimisation levels 0 and 1. For full support, we need to bring the missing passes up-to-speed as well. This epic tracks the other components to achieve that.
For the purposes of this issue, we particularly need
SabreSwap
upgrading. For optimisation level 2, we need the optimisation passesCommutationAnalysis
andCommutativeCancellation
, and optimisation level 3 (and some less common transpiler options) make up the rest. We do not need to add support for control-flow to all of the scheduling passes right now, because Qiskit control-flow is only supported by IBM hardware at the moment, and scheduling this is handled by the IBM provider.When these are updated, we should also make sure that the corresponding gated checks in the preset pass-manager constructors are corrected.
Sub-epics:
optimization_level=2
#9431optimization_level=3
#9432Tracked issues:
SabreSwap
#9419SabreLayout
#9421SabreSwap
#9422CommutationAnalysis
andCommutativeCancellation
#9423DAGCircuit.collect_runs
#9425ConsolidateBlocks
#9426Low priority related issues - these should not be prioritised, and are not required for this epic:
LookaheadSwap
#9429BasicSwap
#9430The text was updated successfully, but these errors were encountered: