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

JIT: break loop canonicalization into two stages #70809

Merged
merged 4 commits into from
Jun 17, 2022

Commits on Jun 16, 2022

  1. JIT: break loop canonicalization into two stages

    For a given loop, we need to separate out the true backedge, any
    non-loop backedges, and any inner loop backedges so that they all
    target distinct blocks.
    
    Otherwise we may violate assumptions that the loop entry dominates
    all blocks in the loop and that all backedges that reach top come
    from within the loop.
    
    This seems simplest to do with two rounds of canonicalization, one
    that moves the non-loop edges, and another that moves the true backedge.
    
    Fixes dotnet#70802.
    AndyAyersMS committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    26b2c7c View commit details
    Browse the repository at this point in the history
  2. formatting

    AndyAyersMS committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    ec6985c View commit details
    Browse the repository at this point in the history
  3. review feedback

    AndyAyersMS committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    c9b6f46 View commit details
    Browse the repository at this point in the history
  4. format

    AndyAyersMS committed Jun 16, 2022
    Configuration menu
    Copy the full SHA
    6a2c3c2 View commit details
    Browse the repository at this point in the history