A parameterized tool to construct programs in various intermediate representations, such as SSA, e-SSA, SSU, and SSI. It works on LLVM 3.3.