Change SwitchInt handling in dataflow analysis.#156169
Open
nnethercote wants to merge 1 commit intorust-lang:mainfrom
Open
Change SwitchInt handling in dataflow analysis.#156169nnethercote wants to merge 1 commit intorust-lang:mainfrom
SwitchInt handling in dataflow analysis.#156169nnethercote wants to merge 1 commit intorust-lang:mainfrom
Conversation
We call `get_switch_int_data` once for the switch and then pass that data to `apply_switch_int_edge_effect` for each switch target. The only case in practice is `MaybePlacesSwitchIntData` which does an awkward thing, maintaining an index into the discriminants and updating it on each call to `apply_switch_int_edge_effect`. This commit changes things to do more work up front in `get_switch_int_data`, in order to then do less work in `apply_switch_int_edge_effect`. This avoids the need for the `variants` and `next_discr` methods and the discriminants index. Overall it's a little simpler.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
We call
get_switch_int_dataonce for the switch and then pass that data toapply_switch_int_edge_effectfor each switch target.The only case in practice is
MaybePlacesSwitchIntDatawhich does an awkward thing, maintaining an index into the discriminants and updating it on each call toapply_switch_int_edge_effect.This commit changes things to do more work up front in
get_switch_int_data, in order to then do less work inapply_switch_int_edge_effect. This avoids the need for thevariantsandnext_discrmethods and the discriminants index. Overall it's a little simpler.r? @cjgillot