You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
ALAPScheduleAnalysis (and all the other built-in scheduling passes) make use of a PassManager feature of requiring that certain passes are run before them. In this case, I think it's the pass that just converts all time units into one unified thing (dt preferentially), but I honestly wouldn't be surprised at all to learn that that pass has a side-effect of initialising the analysis state for the other scheduling passes.
When you __call__ a transpiler pass cold, it skips all the pass-manager infrastructure that manages setting up the executor and handling the requirements, etc, which will be why it's not calling that correctly, and getting out-of-sync. I think the best way to take this is to have BasePass.__call__ simply instantiate a PassManager with self and return the result of running that on the input. That'll also reduce a lot of messy duplicated code, which has clearly got a bit out-of-sync with what PassManager itself does now.
Environment
What is happening?
Running the
ALAPScheduleAnalysis
pass directly on a circuit fails. Running it via a passmanager works.How can we reproduce the issue?
A minimal example
What should happen?
Usually a qiskit pass can be applied directly to a quantum circuit, so it seems reasonable to expect the same from schedule passes.
Any suggestions?
No response
The text was updated successfully, but these errors were encountered: