1. A method of generating object code from an intermediate representation of source code, the object code adapted for execution on a target computer having an instruction set, the intermediate representation comprising a plurality of basic blocks each being represented by a plurality data dependency graphs, each data dependency graph comprising a plurality of nodes each corresponding to an instruction from the target computer instruction set, the method comprising the steps of: (1) selecting a source basic block being one of the basic blocks of the intermediate representation and a target basic block being another of the basic blocks of the intermediate representation; (2) identifying a maximal set of instructions contained in said source basic block that are movable from said source basic block to said target basic block without violating any data dependency relationships of the data dependency graphs; (3) generating an overall cost model of aggregately moving instructions of said maximal set from said source basic block to said target basic block, said cost model specifying an executable cost of moving each of said instructions of said maximal set from said source basic block to said target basic block; and (4) aggregately moving one or more instructions of said maximal set from said source basic block to said target basic block according to said cost model to form the object code.