---
title: passes (v2.0)
description: API reference for qiskit.transpiler.passes in qiskit v2.0
source: https://eu-de.quantum.cloud.ibm.com/docs/en/api/qiskit/2.0/transpiler_passes
---

# Transpiler Passes

`qiskit.transpiler.passes`

## Layout Selection (Placement)

|                                                                                                                                                                     |                                                                                                                      |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------- |
| [`SetLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SetLayout "qiskit.transpiler.passes.SetLayout")(\*args, \*\*kwargs)                                     | Set the `layout` property to the given layout.                                                                       |
| [`TrivialLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.TrivialLayout "qiskit.transpiler.passes.TrivialLayout")(\*args, \*\*kwargs)                         | Choose a Layout by assigning `n` circuit qubits to device qubits `0, .., n-1`.                                       |
| [`DenseLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.DenseLayout "qiskit.transpiler.passes.DenseLayout")(\*args, \*\*kwargs)                               | Choose a Layout by finding the most connected subset of qubits.                                                      |
| [`SabreLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SabreLayout "qiskit.transpiler.passes.SabreLayout")(\*args, \*\*kwargs)                               | Choose a Layout via iterative bidirectional routing of the input circuit.                                            |
| [`CSPLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CSPLayout "qiskit.transpiler.passes.CSPLayout")(\*args, \*\*kwargs)                                     | If possible, chooses a Layout as a CSP, using backtracking.                                                          |
| [`VF2Layout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.VF2Layout "qiskit.transpiler.passes.VF2Layout")(\*args, \*\*kwargs)                                     | A pass for choosing a Layout of a circuit onto a Coupling graph, as a subgraph isomorphism problem, solved by VF2++. |
| [`ApplyLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ApplyLayout "qiskit.transpiler.passes.ApplyLayout")(\*args, \*\*kwargs)                               | Transform a circuit with virtual qubits into a circuit with physical qubits.                                         |
| [`Layout2qDistance`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Layout2qDistance "qiskit.transpiler.passes.Layout2qDistance")(\*args, \*\*kwargs)                | Evaluate how good the layout selection was.                                                                          |
| [`EnlargeWithAncilla`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.EnlargeWithAncilla "qiskit.transpiler.passes.EnlargeWithAncilla")(\*args, \*\*kwargs)          | Extend the dag with virtual qubits that are in layout but not in the circuit yet.                                    |
| [`FullAncillaAllocation`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.FullAncillaAllocation "qiskit.transpiler.passes.FullAncillaAllocation")(\*args, \*\*kwargs) | Allocate all idle nodes from the coupling map or target as ancilla on the layout.                                    |
| [`SabrePreLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SabrePreLayout "qiskit.transpiler.passes.SabrePreLayout")(\*args, \*\*kwargs)                      | Choose a starting layout to use for additional Sabre layout trials.                                                  |

## Routing

|                                                                                                                                                                     |                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------- |
| [`BasicSwap`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.BasicSwap "qiskit.transpiler.passes.BasicSwap")(\*args, \*\*kwargs)                                     | Map (with minimum effort) a DAGCircuit onto a `coupling_map` adding swap gates. |
| [`LookaheadSwap`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.LookaheadSwap "qiskit.transpiler.passes.LookaheadSwap")(\*args, \*\*kwargs)                         | Map input circuit onto a backend topology via insertion of SWAPs.               |
| [`SabreSwap`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SabreSwap "qiskit.transpiler.passes.SabreSwap")(\*args, \*\*kwargs)                                     | Map input circuit onto a backend topology via insertion of SWAPs.               |
| [`Commuting2qGateRouter`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Commuting2qGateRouter "qiskit.transpiler.passes.Commuting2qGateRouter")(\*args, \*\*kwargs) | A class to swap route one or more commuting gates to the coupling map.          |
| [`StarPreRouting`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.StarPreRouting "qiskit.transpiler.passes.StarPreRouting")(\*args, \*\*kwargs)                      | Run star to linear pre-routing                                                  |

## Basis Change

|                                                                                                                                                                                       |                                                                                                            |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------------------------------------- |
| [`BasisTranslator`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.BasisTranslator "qiskit.transpiler.passes.BasisTranslator")(\*args, \*\*kwargs)                                     | Translates gates to a target basis by searching for a set of translations from a given EquivalenceLibrary. |
| [`Decompose`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Decompose "qiskit.transpiler.passes.Decompose")(\*args, \*\*kwargs)                                                       | Expand a gate in a circuit using its decomposition rules.                                                  |
| [`TranslateParameterizedGates`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.TranslateParameterizedGates "qiskit.transpiler.passes.TranslateParameterizedGates")(\*args, \*\*kwargs) | Translate parameterized gates to a supported basis set.                                                    |
| [`Unroll3qOrMore`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Unroll3qOrMore "qiskit.transpiler.passes.Unroll3qOrMore")(\*args, \*\*kwargs)                                        | Recursively expands 3q+ gates until the circuit only contains 2q or 1q gates.                              |
| [`UnrollCustomDefinitions`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.UnrollCustomDefinitions "qiskit.transpiler.passes.UnrollCustomDefinitions")(\*args, \*\*kwargs)             | Unrolls instructions with custom definitions.                                                              |

## Optimizations

|                                                                                                                                                                                                      |                                                                                                                                                                                                                                                                                                                                                                                                                |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`Optimize1qGates`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Optimize1qGates "qiskit.transpiler.passes.Optimize1qGates")(\*args, \*\*kwargs)                                                    | Optimize chains of single-qubit u1, u2, u3 gates by combining them into a single gate.                                                                                                                                                                                                                                                                                                                         |
| [`Optimize1qGatesDecomposition`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Optimize1qGatesDecomposition "qiskit.transpiler.passes.Optimize1qGatesDecomposition")(\*args, \*\*kwargs)             | Optimize chains of single-qubit gates by combining them into a single gate.                                                                                                                                                                                                                                                                                                                                    |
| [`Collect1qRuns`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Collect1qRuns "qiskit.transpiler.passes.Collect1qRuns")(\*args, \*\*kwargs)                                                          | Collect one-qubit subcircuits.                                                                                                                                                                                                                                                                                                                                                                                 |
| [`Collect2qBlocks`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Collect2qBlocks "qiskit.transpiler.passes.Collect2qBlocks")(\*args, \*\*kwargs)                                                    | Collect two-qubit subcircuits.                                                                                                                                                                                                                                                                                                                                                                                 |
| [`CollectMultiQBlocks`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CollectMultiQBlocks "qiskit.transpiler.passes.CollectMultiQBlocks")(\*args, \*\*kwargs)                                        | Collect sequences of uninterrupted gates acting on groups of qubits.                                                                                                                                                                                                                                                                                                                                           |
| [`CollectAndCollapse`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CollectAndCollapse "qiskit.transpiler.passes.CollectAndCollapse")(\*args, \*\*kwargs)                                           | A general transpiler pass to collect and to consolidate blocks of nodes in a circuit.                                                                                                                                                                                                                                                                                                                          |
| [`CollectLinearFunctions`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CollectLinearFunctions "qiskit.transpiler.passes.CollectLinearFunctions")(\*args, \*\*kwargs)                               | Collect blocks of linear gates ([`CXGate`](/docs/api/qiskit/2.0/qiskit.circuit.library.CXGate "qiskit.circuit.library.CXGate") and [`SwapGate`](/docs/api/qiskit/2.0/qiskit.circuit.library.SwapGate "qiskit.circuit.library.SwapGate") gates) and replaces them by linear functions ([`LinearFunction`](/docs/api/qiskit/2.0/qiskit.circuit.library.LinearFunction "qiskit.circuit.library.LinearFunction")). |
| [`CollectCliffords`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CollectCliffords "qiskit.transpiler.passes.CollectCliffords")(\*args, \*\*kwargs)                                                 | Collects blocks of Clifford gates and replaces them by a [`Clifford`](/docs/api/qiskit/2.0/qiskit.quantum_info.Clifford "qiskit.quantum_info.Clifford") object.                                                                                                                                                                                                                                                |
| [`ConsolidateBlocks`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ConsolidateBlocks "qiskit.transpiler.passes.ConsolidateBlocks")(\*args, \*\*kwargs)                                              | Replace each block of consecutive gates by a single Unitary node.                                                                                                                                                                                                                                                                                                                                              |
| [`InverseCancellation`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.InverseCancellation "qiskit.transpiler.passes.InverseCancellation")(\*args, \*\*kwargs)                                        | Cancel specific Gates which are inverses of each other when they occur back-to- back.                                                                                                                                                                                                                                                                                                                          |
| [`CommutationAnalysis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CommutationAnalysis "qiskit.transpiler.passes.CommutationAnalysis")(\*args, \*\*kwargs)                                        | Analysis pass to find commutation relations between DAG nodes.                                                                                                                                                                                                                                                                                                                                                 |
| [`CommutativeCancellation`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CommutativeCancellation "qiskit.transpiler.passes.CommutativeCancellation")(\*args, \*\*kwargs)                            | Cancel the redundant (self-adjoint) gates through commutation relations.                                                                                                                                                                                                                                                                                                                                       |
| [`CommutativeInverseCancellation`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CommutativeInverseCancellation "qiskit.transpiler.passes.CommutativeInverseCancellation")(\*args, \*\*kwargs)       | Cancel pairs of inverse gates exploiting commutation relations.                                                                                                                                                                                                                                                                                                                                                |
| [`Optimize1qGatesSimpleCommutation`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Optimize1qGatesSimpleCommutation "qiskit.transpiler.passes.Optimize1qGatesSimpleCommutation")(\*args, \*\*kwargs) | Optimizes 1Q gate strings interrupted by 2Q gates by commuting the components and resynthesizing the results.                                                                                                                                                                                                                                                                                                  |
| [`RemoveDiagonalGatesBeforeMeasure`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveDiagonalGatesBeforeMeasure "qiskit.transpiler.passes.RemoveDiagonalGatesBeforeMeasure")(\*args, \*\*kwargs) | Remove diagonal gates (including diagonal 2Q gates) before a measurement.                                                                                                                                                                                                                                                                                                                                      |
| [`RemoveResetInZeroState`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveResetInZeroState "qiskit.transpiler.passes.RemoveResetInZeroState")(\*args, \*\*kwargs)                               | Remove reset gate when the qubit is in zero state.                                                                                                                                                                                                                                                                                                                                                             |
| [`RemoveFinalReset`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveFinalReset "qiskit.transpiler.passes.RemoveFinalReset")(\*args, \*\*kwargs)                                                 | Remove reset when it is the final instruction on a qubit wire.                                                                                                                                                                                                                                                                                                                                                 |
| [`HoareOptimizer`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HoareOptimizer "qiskit.transpiler.passes.HoareOptimizer")(\*args, \*\*kwargs)                                                       | This is a transpiler pass using Hoare logic circuit optimization.                                                                                                                                                                                                                                                                                                                                              |
| [`TemplateOptimization`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.TemplateOptimization "qiskit.transpiler.passes.TemplateOptimization")(\*args, \*\*kwargs)                                     | Class for the template optimization pass.                                                                                                                                                                                                                                                                                                                                                                      |
| [`ResetAfterMeasureSimplification`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ResetAfterMeasureSimplification "qiskit.transpiler.passes.ResetAfterMeasureSimplification")(\*args, \*\*kwargs)    | This pass replaces reset after measure with a conditional X gate.                                                                                                                                                                                                                                                                                                                                              |
| [`OptimizeCliffords`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.OptimizeCliffords "qiskit.transpiler.passes.OptimizeCliffords")(\*args, \*\*kwargs)                                              | Combine consecutive Cliffords over the same qubits.                                                                                                                                                                                                                                                                                                                                                            |
| [`ElidePermutations`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ElidePermutations "qiskit.transpiler.passes.ElidePermutations")(\*args, \*\*kwargs)                                              | Remove permutation operations from a pre-layout circuit                                                                                                                                                                                                                                                                                                                                                        |
| [`OptimizeAnnotated`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.OptimizeAnnotated "qiskit.transpiler.passes.OptimizeAnnotated")(\*args, \*\*kwargs)                                              | Optimization pass on circuits with annotated operations.                                                                                                                                                                                                                                                                                                                                                       |
| [`Split2QUnitaries`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Split2QUnitaries "qiskit.transpiler.passes.Split2QUnitaries")(\*args, \*\*kwargs)                                                 | Attempt to splits two-qubit unitaries in a [`DAGCircuit`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") into two single-qubit gates.                                                                                                                                                                                                                                       |
| [`RemoveIdentityEquivalent`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveIdentityEquivalent "qiskit.transpiler.passes.RemoveIdentityEquivalent")(\*args, \*\*kwargs)                         | Remove gates with negligible effects.                                                                                                                                                                                                                                                                                                                                                                          |
| [`ContractIdleWiresInControlFlow`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ContractIdleWiresInControlFlow "qiskit.transpiler.passes.ContractIdleWiresInControlFlow")(\*args, \*\*kwargs)       | Remove idle qubits from control-flow operations of a [`DAGCircuit`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit").                                                                                                                                                                                                                                                         |
| [`LightCone`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.LightCone "qiskit.transpiler.passes.LightCone")(\*args, \*\*kwargs)                                                                      | Remove the gates that do not affect the outcome of a measurement on a circuit.                                                                                                                                                                                                                                                                                                                                 |

## Scheduling

|                                                                                                                                                                              |                                                                                                                         |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
| [`TimeUnitConversion`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.TimeUnitConversion "qiskit.transpiler.passes.TimeUnitConversion")(\*args, \*\*kwargs)                   | Choose a time unit to be used in the following time-aware passes, and make all circuit time units consistent with that. |
| [`ALAPScheduleAnalysis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ALAPScheduleAnalysis "qiskit.transpiler.passes.ALAPScheduleAnalysis")(\*args, \*\*kwargs)             | ALAP Scheduling pass, which schedules the **stop** time of instructions as late as possible.                            |
| [`ASAPScheduleAnalysis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ASAPScheduleAnalysis "qiskit.transpiler.passes.ASAPScheduleAnalysis")(\*args, \*\*kwargs)             | ASAP Scheduling pass, which schedules the start time of instructions as early as possible.                              |
| [`PadDynamicalDecoupling`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.PadDynamicalDecoupling "qiskit.transpiler.passes.PadDynamicalDecoupling")(\*args, \*\*kwargs)       | Dynamical decoupling insertion pass.                                                                                    |
| [`PadDelay`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.PadDelay "qiskit.transpiler.passes.PadDelay")(\*args, \*\*kwargs)                                                 | Padding idle time with Delay instructions.                                                                              |
| [`ConstrainedReschedule`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ConstrainedReschedule "qiskit.transpiler.passes.ConstrainedReschedule")(\*args, \*\*kwargs)          | Rescheduler pass that updates node start times to conform to the hardware alignments.                                   |
| [`InstructionDurationCheck`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.InstructionDurationCheck "qiskit.transpiler.passes.InstructionDurationCheck")(\*args, \*\*kwargs) | Duration validation pass for reschedule.                                                                                |
| [`SetIOLatency`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SetIOLatency "qiskit.transpiler.passes.SetIOLatency")(\*args, \*\*kwargs)                                     | Set IOLatency information to the input circuit.                                                                         |

## Circuit Analysis

|                                                                                                                                                               |                                                                                                                                                                                                                                                                                                                                                                                                                                                   |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`Width`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Width "qiskit.transpiler.passes.Width")(\*args, \*\*kwargs)                                           | Calculate the width of a DAG circuit.                                                                                                                                                                                                                                                                                                                                                                                                             |
| [`Depth`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Depth "qiskit.transpiler.passes.Depth")(\*args, \*\*kwargs)                                           | Calculate the depth of a DAG circuit.                                                                                                                                                                                                                                                                                                                                                                                                             |
| [`Size`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.Size "qiskit.transpiler.passes.Size")(\*args, \*\*kwargs)                                              | Calculate the size of a DAG circuit.                                                                                                                                                                                                                                                                                                                                                                                                              |
| [`CountOps`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CountOps "qiskit.transpiler.passes.CountOps")(\*args, \*\*kwargs)                                  | Count the operations in a DAG circuit.                                                                                                                                                                                                                                                                                                                                                                                                            |
| [`CountOpsLongestPath`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CountOpsLongestPath "qiskit.transpiler.passes.CountOpsLongestPath")(\*args, \*\*kwargs) | Count the operations on the longest path in a [`DAGCircuit`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit").                                                                                                                                                                                                                                                                                                   |
| [`NumTensorFactors`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.NumTensorFactors "qiskit.transpiler.passes.NumTensorFactors")(\*args, \*\*kwargs)          | Calculate the number of tensor factors of a DAG circuit.                                                                                                                                                                                                                                                                                                                                                                                          |
| [`DAGLongestPath`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.DAGLongestPath "qiskit.transpiler.passes.DAGLongestPath")(\*args, \*\*kwargs)                | Return the longest path in a [`DAGCircuit`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGCircuit "qiskit.dagcircuit.DAGCircuit") as a list of [`DAGOpNode`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGOpNode "qiskit.dagcircuit.DAGOpNode")s, [`DAGInNode`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGInNode "qiskit.dagcircuit.DAGInNode")s, and [`DAGOutNode`](/docs/api/qiskit/2.0/qiskit.dagcircuit.DAGOutNode "qiskit.dagcircuit.DAGOutNode")s. |

## Synthesis

The synthesis transpiler plugin documentation can be found in the [`qiskit.transpiler.passes.synthesis.plugin`](/docs/api/qiskit/2.0/transpiler_synthesis_plugins#module-qiskit.transpiler.passes.synthesis.plugin "qiskit.transpiler.passes.synthesis.plugin") page.

|                                                                                                                                                                                             |                                                                                                                                                                                                                                                                                                 |
| ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`UnitarySynthesis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.UnitarySynthesis "qiskit.transpiler.passes.UnitarySynthesis")(\*args, \*\*kwargs)                                        | Synthesize gates according to their basis gates.                                                                                                                                                                                                                                                |
| [`LinearFunctionsToPermutations`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.LinearFunctionsToPermutations "qiskit.transpiler.passes.LinearFunctionsToPermutations")(\*args, \*\*kwargs) | Promotes linear functions to permutations when possible.                                                                                                                                                                                                                                        |
| [`HighLevelSynthesis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis")(\*args, \*\*kwargs)                                  | Synthesize higher-level objects and unroll custom definitions.                                                                                                                                                                                                                                  |
| [`HLSConfig`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HLSConfig "qiskit.transpiler.passes.HLSConfig")(\[use\_default\_on\_unspecified, ...])                                          | The high-level-synthesis config allows to specify a list of "methods" used by [`HighLevelSynthesis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.HighLevelSynthesis "qiskit.transpiler.passes.HighLevelSynthesis") transformation pass to synthesize different types of higher-level objects. |
| [`SolovayKitaev`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.SolovayKitaev "qiskit.transpiler.passes.SolovayKitaev")(\*args, \*\*kwargs)                                                 | Approximately decompose 1q gates to a discrete basis using the Solovay-Kitaev algorithm.                                                                                                                                                                                                        |

## Post Layout

These are post qubit selection.

|                                                                                                                                             |                                                                                                                                                     |
| ------------------------------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| [`VF2PostLayout`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.VF2PostLayout "qiskit.transpiler.passes.VF2PostLayout")(\*args, \*\*kwargs) | A pass for improving an existing Layout after transpilation of a circuit onto a Coupling graph, as a subgraph isomorphism problem, solved by VF2++. |

## Additional Passes

|                                                                                                                                                                                                |                                                                                           |
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------- |
| [`CheckMap`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CheckMap "qiskit.transpiler.passes.CheckMap")(\*args, \*\*kwargs)                                                                   | Check if a DAG circuit is already mapped to a coupling map.                               |
| [`CheckGateDirection`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.CheckGateDirection "qiskit.transpiler.passes.CheckGateDirection")(\*args, \*\*kwargs)                                     | Check if the two-qubit gates follow the right direction with respect to the coupling map. |
| [`GateDirection`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.GateDirection "qiskit.transpiler.passes.GateDirection")(\*args, \*\*kwargs)                                                    | Modify asymmetric gates to match the hardware coupling direction.                         |
| [`MergeAdjacentBarriers`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.MergeAdjacentBarriers "qiskit.transpiler.passes.MergeAdjacentBarriers")(\*args, \*\*kwargs)                            | Return a circuit with any adjacent barriers merged together.                              |
| [`RemoveBarriers`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveBarriers "qiskit.transpiler.passes.RemoveBarriers")(\*args, \*\*kwargs)                                                 | Return a circuit with any barrier removed.                                                |
| [`BarrierBeforeFinalMeasurements`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.BarrierBeforeFinalMeasurements "qiskit.transpiler.passes.BarrierBeforeFinalMeasurements")(\*args, \*\*kwargs) | Add a barrier before final measurements.                                                  |
| [`RemoveFinalMeasurements`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.RemoveFinalMeasurements "qiskit.transpiler.passes.RemoveFinalMeasurements")(\*args, \*\*kwargs)                      | Remove final measurements and barriers at the end of a circuit.                           |
| [`DAGFixedPoint`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.DAGFixedPoint "qiskit.transpiler.passes.DAGFixedPoint")(\*args, \*\*kwargs)                                                    | Check if the DAG has reached a fixed point.                                               |
| [`FixedPoint`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.FixedPoint "qiskit.transpiler.passes.FixedPoint")(\*args, \*\*kwargs)                                                             | Check if a property reached a fixed point.                                                |
| [`MinimumPoint`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.MinimumPoint "qiskit.transpiler.passes.MinimumPoint")(\*args, \*\*kwargs)                                                       | Check if the DAG has reached a relative semi-stable point over previous runs              |
| [`ContainsInstruction`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.ContainsInstruction "qiskit.transpiler.passes.ContainsInstruction")(\*args, \*\*kwargs)                                  | An analysis pass to detect if the DAG contains a specific instruction.                    |
| [`GatesInBasis`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.GatesInBasis "qiskit.transpiler.passes.GatesInBasis")(\*args, \*\*kwargs)                                                       | Check if all gates in a DAG are in a given set of gates                                   |
| [`UnrollForLoops`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.UnrollForLoops "qiskit.transpiler.passes.UnrollForLoops")(\*args, \*\*kwargs)                                                 | `UnrollForLoops` transpilation pass unrolls for-loops when possible.                      |
| [`FilterOpNodes`](/docs/api/qiskit/2.0/qiskit.transpiler.passes.FilterOpNodes "qiskit.transpiler.passes.FilterOpNodes")(\*args, \*\*kwargs)                                                    | Remove all operations that match a filter function                                        |
