1. A computer-implemented method performed by a processor having a cache, the method comprising: prefetching data associated with a load instruction of a computer program, wherein said prefetching is performed in anticipation to performing the load instruction, whereby the data is retained in the cache; detecting whether the prefetched data of said prefetching is invalidated after said prefetching commenced and prior to performing the load instruction; and adaptively determining whether to modify the prefetching data operation associated with the load instruction in response to said detection.