-
Notifications
You must be signed in to change notification settings - Fork 2.6k
Description
What is the expected enhancement?
With the BackendV2/Target interface being added in #5885 we have more data available to the transpiler to inform the passes on the characteristics and constraints of a backend. However as of right now none of the passes in the transpiler know how to take advantage of this extra information. We need to update the transpile()
/PassManagerConfig
/preset pass manager constructors to deal with passing a Target
object around and then update some passes to leverage the extra information.
Primarily for 0.19.0 we probably will need to update the BasisTranslator
to respect the qargs of an instruction, CheckGateDirection
/GateDirection
to work with Target instead of a coupling map, and optionally UnitarySynthesis
to get noise parameters from a Target. While pretty much every other pass will need to be updated too those can happen over time the first 2 should be enough so transpile()
will respect a heterogeneous gate set which is our goal for 0.19.0.