A kind of low-level code optimisation that considers only a few adjacent machine code instructions at a time and looks for certain combinations which can be replaced with more efficient sequences. E.g. ADD R0, #1 ADD R0, #1 (add one to register R0) could be replaced by ADD R0, #2 as long as there were no jumps to the second instruction.