Maximal loop-unrolling is possible after constant propagation. The code motion analysis implemented was very simple, and relied on source-language information from the abstract-syntax tree. It was able, however, to fully unroll the simple loops found in the algorithms under investigation. Once the loop was fully unrolled, the above optimization algorithms render more sophisticated code motion analysis (for example, code hoisting outside the loop) unnecessary. Further work on code motion optimizations is possible, especially in light of the recent ability to generate sequential circuitry from loop constructs. Code motion when sequential circuits are targetted allows us to reduce the amount of state, and hence, registers, necessary to implement the state machine.