1. A method of reordering a sequence of code for processing by a target data processor in order to reduce an execution time for said code on said target data processor comprising the steps of: loading said sequence of code, in response to a request to execute said sequence of code, into a volatile data store associated with said target data processor; analyzing said sequence of code in relation to properties of said target data processor; identifying, during said analysis, interlocks within said sequence of code when executing on said target data processor, in which a portion of code would be stalled while waiting for an earlier portion to complete; reordering, in response to said identified interlocks, said sequence of code to remove at least some of said interlocks; and executing said reordered sequence of code, wherein said steps of analyzing, identifying, reordering and executing are performed by said target data processor at a same time as and interleaved with an initial processing of said sequence of code.