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

Remove init peephole optimization discrete basis check (backport #12898) #12920

Merged
merged 1 commit into from
Aug 8, 2024

Commits on Aug 8, 2024

  1. Remove init peephole optimization discrete basis check (#12898)

    * Fix target handling in discrete basis check
    
    In #12727 a check was added to the default init stage's construction to
    avoid running 2q gate consolidation in the presence of targets with
    only discrete gates. However the way the target was being used in this
    check was incorrect. The name for an instruction in the target should be
    used as its identifier and then if we need the object representation
    that should query the target for that object based on the name. However
    the check was doing this backwards getting a list of operation objects
    and then using the name contained in the object. This will cause issues
    for instructions that use custom names such as when there are tuned
    variants or a custom gate instance with a unique name.
    
    While there is some question over whether we need this check as we will
    run the consolidate 2q blocks pass as part of the optimization stage
    which will have the same effect, this opts to just fix the target usage
    for it to minimize the diff. Also while not the explicit goal of this
    check it is protecting against some bugs in the consolidate blocks pass
    that occur when custom gates are used. So for the short term this check
    is retained, but in the future when these bugs in consolidate blocks are
    fixed we can revisit whether we want to remove the conditional logic.
    
    * Remove check and fix ConsolidateBlocks bug
    
    This commit pivots this PR branch to just remove the additional logic
    around skipping the optimization passes for discrete basis sets. The
    value the check was actually providing was not around a discrete basis
    set target and instead was to workaround a bug in the consolidate blocks
    pass. If a discrete basis set target was used this would still fail
    because we will unconditionally call `ConsolidateBlocks` during the
    optimization stage. This commit opts to just remove the extra complexity
    of the conditional execution of the peephole optimization passes and
    instead just fix the underlying bug in `ConsolidateBlocks` and remove
    the check.
    
    (cherry picked from commit 70c2f78)
    mtreinish authored and mergify[bot] committed Aug 8, 2024
    Configuration menu
    Copy the full SHA
    1048085 View commit details
    Browse the repository at this point in the history