forked from Qiskit/qiskit
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Recreate full dag instead of inplace substitution in BasisTranslator (Q…
…iskit#12195) * Recreate full dag instead of inplace substitution in BasisTranslator This commit tweaks the internal logic of the basis translator transpiler pass to do a full dag recreation instead of inplace modification. If only a few operations were to be substituted it would probably be more efficient to do an inplace modification, but in general the basis translator ends up replacing far more operations than not. In such cases just iterating over the dag and rebuilding it is more efficient because the overhead of `apply_operation_back()` is minimal compared to `substitute_node_with_dag()` (although it's higher than `subtitute_node(.., inplace=True)`). * Return boolean together with dag in 'apply_translation' to maintain original 'flow_blocks' logic and fix drawer test. * Remove print --------- Co-authored-by: Elena Peña Tapia <[email protected]>
- Loading branch information
Showing
1 changed file
with
49 additions
and
32 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters