julia
e07c0f1d - inference: Fix correctness and ensure termination in the presence of PhiNodes (#53876)

Commit
1 year ago
inference: Fix correctness and ensure termination in the presence of PhiNodes (#53876) 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.
Author
Parents
Loading