IR optimizations

LANCE includes a number of both classical ("Dragon Book") and advanced IR-level code optimization engines. They are implemented as separate tools and can be combined and iterated by a predefined IR optimization script that can be modified or extended to optimize code quality for a specific class of target machines or to plug in new optimization tools. Currently, the following optimization engines are available:

constant folding
constant propagation
copy propagation
dead code elimination
common subexpression elimination
function inlining
induction variable elimination
jump optimization
loop invariant code motion
SSA conversion
reassociation