1. A method for scheduling a plurality of instructions in a computing system using a plurality of registers to temporarily store values needed to execute the plurality of instructions prior to execution of the plurality of instructions, the method comprising: generating a data dependence graph for the plurality of instructions; generating a plurality of instruction lineages, each of the plurality of instruction lineages comprising at least two of the plurality of instructions that share a data dependency relationship such that executing at least one of the at least two instructions requires a value provided as a result of executing another one of the at least two instructions; assigning all of the instructions in the same instruction lineage to the same register for temporary storage prior to their execution in the computing system; assigning a priority value to each of the plurality of instructions, the assigned priority value for each of the plurality of instructions being based at least on whether the instruction has a sequencing edge or is assigned to the same instruction lineage as an instruction that has a sequencing edge and on a data dependence depth value for the instruction, wherein a sequencing edge indicates that an instruction is required to be executed after at least one instruction in another instruction lineage and the data dependence depth value is a value that indicates a number of instructions of the plurality instructions represented in the data dependence graph that the instruction is dependent on; determining an instruction order-based at least on the priority value assigned to each of the plurality of instructions; and scheduling each of the plurality of instructions for temporary register usage prior to their execution based at least on the assigned register and the instruction order.