* Build data-flow dependencied between instructions * Each instruction has at least one consumer and at least one producer of its operands.