A more "generic" loop analysis


Currently, I have to deal with loop analysis for an ongoing project. As
a basis, I use the already existing LoopInfo pass and SCEV as well.
However, I'd like to extend the loop analysis and provide some more
generic information.

For instance, when information regarding loop ranges shall be retrieved,
in my opinion LoopInfo and SCEV can only handle static loops (please
correct me, if I'm wrong). Hence, an improvement would be providing a
kind of function returning the loop range depending on the input values
(for loops with dynamic ranges). A similar extension could test whether
the loop is affected by side-effects, e.g. modifying the loop counter
from within the body.

Before I proceed, I'd like to have some feedback: would this be
beneficial for the community? And: are there any related projects, which
possibly implemented specific parts?