Soot: a Java Optimization Framework

Soot is a compiler infrastructure and framework for Java bytecodes and Java source code, implemented in Java. It supplies several intermediate representations, including:

  • “streamlined” bytecode,
  • a typed three-address IR,
  • a typed three-address IR with SSA,
  • an “aggregated” version of the three-address IR.

Many analyses and optimizations are provided, including several high-quality whole-program pointer analyses, devirtualization of monomorphic call sites, and most standard intraprocedural optimizations. Also enables decompilation of bytecodes to Java source.

Very easy to extend. I use it in my research.

Leave a Reply