-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
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 passes CommutationAnalysis
and CommutativeCancellation
, 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:
Tracked issues:
- Support control flow in
SabreSwap
#9419 - Support control flow in Python components of
SabreLayout
#9421 - Restore level 1 layout/routing default to
SabreSwap
#9422 - Support control flow in
CommutationAnalysis
andCommutativeCancellation
#9423 - Support control flow in
DAGCircuit.collect_runs
#9425 - Support control flow in
ConsolidateBlocks
#9426
Low priority related issues - these should not be prioritised, and are not required for this epic: