diff --git a/qiskit/circuit/quantumcircuit.py b/qiskit/circuit/quantumcircuit.py index cb164404ac1e..fac89bfeb04b 100644 --- a/qiskit/circuit/quantumcircuit.py +++ b/qiskit/circuit/quantumcircuit.py @@ -40,6 +40,7 @@ from qiskit._accelerate.quantum_circuit import CircuitData from qiskit.exceptions import QiskitError from qiskit.utils.multiprocessing import is_main_process +from qiskit.circuit.barrier import Barrier from qiskit.circuit.instruction import Instruction from qiskit.circuit.gate import Gate from qiskit.circuit.parameter import Parameter @@ -2265,6 +2266,8 @@ def measure_all( in the already existing classical bits, with qubit ``n`` being measured into classical bit ``n``. + A barrier gate is inserted before the measurement statements. + Returns a new circuit with measurements if ``inplace=False``. Args: @@ -2284,7 +2287,8 @@ def measure_all( if add_bits: new_creg = circ._create_creg(len(circ.qubits), "meas") circ.add_register(new_creg) - circ.barrier() + # inline call to barrier + circ._append(Barrier(len(circ.qubits), label=None), circ.qubits, []) circ.measure(circ.qubits, new_creg) else: if len(circ.clbits) < len(circ.qubits): @@ -2292,7 +2296,8 @@ def measure_all( "The number of classical bits must be equal or greater than " "the number of qubits." ) - circ.barrier() + # inline call to barrier + circ._append(Barrier(len(circ.qubits), label=None), circ.qubits, []) circ.measure(circ.qubits, circ.clbits[0 : len(circ.qubits)]) if not inplace: @@ -2815,14 +2820,13 @@ def barrier(self, *qargs: QubitSpecifier, label=None) -> InstructionSet: Returns: qiskit.circuit.InstructionSet: handle to the added instructions. """ - from .barrier import Barrier - qubits = ( # This uses a `dict` not a `set` to guarantee a deterministic order to the arguments. list({q: None for qarg in qargs for q in self.qbit_argument_conversion(qarg)}) if qargs else self.qubits.copy() ) + return self.append(Barrier(len(qubits), label=label), qubits, []) def delay(