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

Make versioner skip loops that have become acyclic during the pass #6531

Merged
merged 1 commit into from
Jun 2, 2022

Commits on May 25, 2022

  1. Make versioner skip loops that have become acyclic during the pass

    The region structure is expected to be a loop. If it isn't, then
    versioner may misbehave, e.g. it may crash. And besides, there's no
    point in trying to version an acyclic region anyway.
    
    HCR guard versioning removes edges from the CFG immediately (unlike
    versioning of regular conditionals/virtual guards, which leaves a
    trivially foldable conditional tree in place). The removal of particular
    edges can change loops into acyclic regions, so skip any region that is
    no longer a loop.
    
    (OSR guard versioning also removes edges immediately, but the targets of
    those edges are not within any loop, so their removal can't change loops
    into acyclic regions.)
    jdmpapin committed May 25, 2022
    Configuration menu
    Copy the full SHA
    505add7 View commit details
    Browse the repository at this point in the history