Monthly Archives: June 2007

Induction Variable Analysis and Array Bounds Check Elimination

I added an Induction Variable Analysis (IVA) pass to the compiler. It runs after the arithmetic optimizer which converts all instructions that substract a constant value from a value into additions with a negative constant. The IVA pass then searches … Continue reading

Posted in Trace Compilation

Common Subexpression Elimination & Guards

I added guard instructions to the set of instructions that can be subject to common subexpression elimination. They are not strictly expressions since they don’t calculate a value, but they can be eliminated just like common subexpressions. To calculate the … Continue reading

Posted in Trace Compilation

Load Elimination and Non-Constant Offsets

If during load elinination a store is observed into a captured object (we only care about captured objects at this point, since we know them to be alias free) that does not use a constant offset (i.e. array access with … Continue reading

Posted in Trace Compilation