Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extract remaining preset pass manager stages into plugins #8661

Closed
5 tasks done
mtreinish opened this issue Sep 2, 2022 · 0 comments · Fixed by #10689
Closed
5 tasks done

Extract remaining preset pass manager stages into plugins #8661

mtreinish opened this issue Sep 2, 2022 · 0 comments · Fixed by #10689
Labels
mod: transpiler Issues and PRs related to Transpiler short project type: epic A theme of work that contain sub-tasks type: feature request New feature or request
Milestone

Comments

@mtreinish
Copy link
Member

mtreinish commented Sep 2, 2022

What should we add?

In #8305 we added a new plugin interface for transpiler stages in the preset passmanagers. As part of that PR we migrated the built in routing stage options to be plugins. As a follow up we should continue to expand our internal use of the plugin interface to run the other transpiler stages. This will simplify the maintenance and reuse of the transpiler stages and also ensure we're testing the full path of the plugin interface.

The list of stages to be extracted into plugins:

@mtreinish mtreinish added type: feature request New feature or request short project mod: transpiler Issues and PRs related to Transpiler labels Sep 2, 2022
@jakelishman jakelishman added this to the 0.23.0 milestone Sep 2, 2022
@mtreinish mtreinish modified the milestones: 0.23.0, 0.24.0 Jan 9, 2023
@kdk kdk removed this from the 0.24.0 milestone Apr 5, 2023
@kdk kdk added the type: epic A theme of work that contain sub-tasks label Jun 21, 2023
@mtreinish mtreinish added this to the 0.45.0 milestone Aug 17, 2023
mtreinish added a commit to mtreinish/qiskit-core that referenced this issue Aug 22, 2023
This commit updates the preset pass manager construction to only use
plugins for the init stage. To accomplish this the previously hard
coded built-in pass manager used for each optimization level are
refactored to be in a plugin named "default". One thing that is changed
in this PR is that the use of `generate_control_flow_options_check()`
is moved to the `pre_init` stage. The reason for this is because the way
the init stage was being constructed in the preset pass managers was to
do initial checking of any methods, and this was unconditionally being
run. This is a more logical fit for pre_init stage because it should run
before any specified plugin.

Fixes: Qiskit#10687
Fixes: Qiskit#8661
github-merge-queue bot pushed a commit that referenced this issue Aug 22, 2023
This commit updates the preset pass manager construction to only use
plugins for the init stage. To accomplish this the previously hard
coded built-in pass manager used for each optimization level are
refactored to be in a plugin named "default". One thing that is changed
in this PR is that the use of `generate_control_flow_options_check()`
is moved to the `pre_init` stage. The reason for this is because the way
the init stage was being constructed in the preset pass managers was to
do initial checking of any methods, and this was unconditionally being
run. This is a more logical fit for pre_init stage because it should run
before any specified plugin.

Fixes: #10687
Fixes: #8661
SamD-1998 pushed a commit to SamD-1998/qiskit-terra that referenced this issue Sep 7, 2023
This commit updates the preset pass manager construction to only use
plugins for the init stage. To accomplish this the previously hard
coded built-in pass manager used for each optimization level are
refactored to be in a plugin named "default". One thing that is changed
in this PR is that the use of `generate_control_flow_options_check()`
is moved to the `pre_init` stage. The reason for this is because the way
the init stage was being constructed in the preset pass managers was to
do initial checking of any methods, and this was unconditionally being
run. This is a more logical fit for pre_init stage because it should run
before any specified plugin.

Fixes: Qiskit#10687
Fixes: Qiskit#8661
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
mod: transpiler Issues and PRs related to Transpiler short project type: epic A theme of work that contain sub-tasks type: feature request New feature or request
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants