C251 User's Guide

General Optimizations

OptimizationDescription
Constant FoldingMultiple constant values in an expression or address calculation are combined into a single constant.
Jump OptimizingJumps are extended to the final target address. Jumps to jumps are eliminated. Conditional jumps are examined to determine if they can be streamlined or eliminated by the inversion of the test logic.
Dead Code EliminationCode which cannot be reached (dead code) is removed from the program. This includes code which is not executed due to constant conditional expressions or unreferenced labels.
Register VariablesAutomatic variables and function arguments are located in registers when possible. No data memory is reserved for these variables.
Parameter Passing
Via Registers
A maximum of three function arguments may be passed in registers.
Global Common
Subexpression Elimination
Identical subexpressions or address calculations that occur multiple times in a function are recognized and calculated only once when possible.
Life Variable AnalysisRemoves redundant store operations to automatic variables.
Constant PropagationThe values of expressions are tracked and when possible constant values are inserted instead of variable accesses.