From ae45bcd98fe81dbe9df98c2a355b29e2cc1229d9 Mon Sep 17 00:00:00 2001 From: AlexanderIvrii Date: Thu, 4 May 2023 13:42:07 +0300 Subject: [PATCH] fixing start time updates to be completely equivalent to the old code --- .../passes/scheduling/alignments/reschedule.py | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/qiskit/transpiler/passes/scheduling/alignments/reschedule.py b/qiskit/transpiler/passes/scheduling/alignments/reschedule.py index 350ee31882c8..f0c21d1c89ac 100644 --- a/qiskit/transpiler/passes/scheduling/alignments/reschedule.py +++ b/qiskit/transpiler/passes/scheduling/alignments/reschedule.py @@ -111,10 +111,8 @@ def _push_node_back(self, dag: DAGCircuit, node: DAGOpNode, shift: int): clbit_write_latency = self.property_set.get("clbit_write_latency", 0) nodes_with_overlap = [(node, shift)] - shift_stack = [] while nodes_with_overlap: node, shift = nodes_with_overlap.pop() - shift_stack.append((node, shift)) # Compute shifted t1 of this node separately for qreg and creg this_t0 = node_start_time[node] new_t1q = this_t0 + node.op.duration + shift @@ -132,6 +130,9 @@ def _push_node_back(self, dag: DAGCircuit, node: DAGOpNode, shift: int): new_t1c = None this_clbits = set() + # Update start time of this node after all overlaps are resolved + node_start_time[node] += shift + # Check successors for overlap for next_node in self._get_next_gate(dag, node): # Compute next node start time separately for qreg and creg @@ -163,10 +164,6 @@ def _push_node_back(self, dag: DAGCircuit, node: DAGOpNode, shift: int): overlap = max(qreg_overlap, creg_overlap) if overlap > 0: nodes_with_overlap.append((next_node, overlap)) - # Update start time of this node after all overlaps are resolved - while shift_stack: - node, shift = shift_stack.pop() - node_start_time[node] += shift def run(self, dag: DAGCircuit): """Run rescheduler.