Dagger is a decompilation framework based on LLVM. It enables existing backends to easily provide instruction-level semantics. These are then used to translate target instructions to LLVM IR. Dagger also enables easy retargetability of several planned tools, like rewriters, static or dynamic binary translators (with valgrind-like instrumentation), and even simple instruction set emulators. The IR can also be transformed to do static analysis, or even, using a revived and improved C backend, full-blown decompilation.
git clone http://repzret.org/git/dagger.git
dagger <at> repzret dot org