Loop optimizations implemented in the front end (source-to-source transformation)

     I'd like to implement loop transformations that are currently implemented in LLVM (loop distribution/fission, strip, coalescing, etc) in the front end, normally using Clang normally using libtooling?

     Did anybody tried this already or is considering it? I know currently of the Scout project (https://tu-dresden.de/die_tu_dresden/zentrale_einrichtungen/zih/forschung/projekte/scout/publications) which does something similar with Clang, without using libtooling, making it harder to use and I guess less standard.

     Another feasible option I'm considering is using CIL (for the C language; available at https://github.com/cil-project/cil) - well, a more complete list of similar tools is available at https://en.wikipedia.org/wiki/List_of_program_transformation_systems .

   Thank you,