aiPop for C16x/ST10 also optimizes the use of constants and immediates in instructions. On the C16x, many immediate values require 4-byte instructions, whereas references to general-purpose registers only need 2 bytes. aiPop for C16x/ST10 performs interprocedural constant propagation in order to collect information about the constant values available from registers. An immediate value is then replaced by a reference to a register which is known to contain the value. This method saves two bytes for each replacement.