This is an optimized C++ implemention of the Relooper algorithm originally developed as part of Emscripten. This implementation includes optimizations added since the original academic paper [1] - see paper.pdf - was published about it, and is written in an LLVM-friendly way with the goal of inclusion in upstream LLVM.
License: MIT&LLVM
[1] Alon Zakai. 2011. Emscripten: an LLVM-to-JavaScript compiler. In Proceedings of the ACM international conference companion on Object oriented programming systems languages and applications companion (SPLASH '11). ACM, New York, NY, USA, 301-312. DOI=10.1145/2048147.2048224 http://doi.acm.org/10.1145/2048147.2048224