1. A method of compiling a software program, comprising: identifying a delinquent memory instruction based on information in an intermediate representation of a source code, the intermediate representation generated by a compiler during initial compilation of the source code; and modifying a main thread binary file, by a compiler without user intervention, during an additional compiler pass of the source code, to include additional instructions, wherein the additional instructions provide for performing speculative precomputation of a memory address associated with the delinquent memory instruction, the delinquent memory instruction being an instruction in the source code.