- 
                Notifications
    You must be signed in to change notification settings 
- Fork 84
Open
Labels
cleanupRefactoring, clean-upRefactoring, clean-up
Description
In #737 (comment) it became even more apparent that we have multiple must-equality analyses, some of which are not in regular use:
- var_eq analysis is the one we regularly use, particularly together with symb_locks. Nevertheless, it contains multiple dead functions, which have been copied around. Its whole logic is messy and incomprehensible.
- condvars analysis describes itself as "Must equality between variables and logical expressions". We have no tests for it nor activate it in benchmarking, so it's not apparent how well it works or what it does compared to var_eq. (Is it just a more specialized and cheaper version of var_eq specifically for logical expressions?)
- MusteqDomainis separate from var_eq and completely unused (there's no corresponding analysis even). At some point I deduced from something, that it might have been intended (and maybe at some earlier time even used) to be used together with region analysis. At least the region analysis paper speaks about a must-equality analysis, but our region implementation makes no use of- MusteqDomainnor var_eq analysis. Figuring out whether it should be used would also be part of Cleaning up and documenting region analysis #107.
An easy thing would be to just get rid of condvars and MusteqDomain, but without having investigated further, it's unclear if they maybe contain logic that var_eq does not. Hence, at some point it might be useful to clean up var_eq and see how the other two could integrate into it, instead of potentially duplicating something.
Metadata
Metadata
Assignees
Labels
cleanupRefactoring, clean-upRefactoring, clean-up