value range propagation


I wonder if llvm has pure range propagation pass. Is correlated value propagation that one? It seems that it is not directly deals with ranges. Maybe there any passes that simply contain some information about value ranges?

Will symbolic value range propagation be done in some time?

And also can, if exist, the current version of value range propagation see that for example if I have an operation y = x&60, that the value will nit be more than 6 bits in length?

Hello Anastasiya, please take a look at the analysis implemented in LazyValueInfo.cpp, this is LLVM's version of VRP. Also, a lot of this kind of work gets done by the analyses in ValueTracking.cpp. Both are in the lib/Analysis directory.