Diablo is a retargetable link-time binary rewriting framework. While our focus has been mostly on program compaction, binary rewriting has a much broader range of applications: speed optimizations, power consumption optimizations, size optimizations, program obfuscation and watermarking, instrumentation, etc.

A good binary rewriting framework (one like Diablo :-)) is also very useful for program analysis and understanding. For instance, Diablo can print out the control flow graph for all functions in a program, annotated with for example liveness information.