1. A method for prefetching data from a computer memory and placing it in a cache to be accessed by a processor during execution of a program thread comprising the steps of: executing a sequence of instructions in a program thread using a first processor, said instructions at least including a plurality of register-writing instructions, some of which specify an address where data to be loaded into a processor register during execution of said instruction resides; after each register-writing instruction is executed, supplying the instruction and a result thereof to a value predictor and updating the value predictor with said result; employing the value predictor to determine a likely result for a future execution of said instruction; if the predicted value is determined to have a confidence level exceeding a threshold, then substituting the instruction with a load immediate instruction, where said immediate is said predicted value; forming said instructions as they are processed by said value predictor into a prefetching thread; and executing said prefetching thread, whereby data to be employed during execution of said program thread is caused to be loaded into said cache by execution of said prefetching thread.