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

inference: Fix correctness and ensure termination in the presence of PhiNodes #53876

Merged
merged 1 commit into from
Mar 28, 2024

Commits on Mar 27, 2024

  1. inference: Fix correctness and ensure termination in the presence of …

    …PhiNodes
    
    There's two related, but distinct, issues here:
    1. We were not using `tmerge` for merging SSA results inside loops,
       which could cause infinite looping. In the absence of PhiNodes, things
       usually have to go through a slot to be able to make the round trip,
       which would usually put a PhiNode on the path, but it's possible there
       may be other ways to smuggle things around (e.g. through exception handling).
    
    2. We were not properly accounting for the fact that PhiNode uses do not need to
       be linearly ordered in the same BB, so we were getting the type of the testcase
       here incorrect by failing to re-schedule the PhiNode.
    
    The first of these shows up in the Diffractor test suite, the second was found
    by writing the test case.
    Keno committed Mar 27, 2024
    Configuration menu
    Copy the full SHA
    9505984 View commit details
    Browse the repository at this point in the history