Improve exit block computation #971
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR is a mix of using more idiomatic Rust/convenient APIs and massaging the code into an easier-to-understand(-by-me) shape. The most notable change is that I rewrote the loop exit computation to be done once per loop header instead of for all of them together. This is clearly worse for perf but a lot easier to follow; given that we do a bunch of other quadratic graph traversals I think one more is fine.
The test diff is a small consistency fix.
ci: use AeneasVerif/eurydice#369