1. A method for aggressive safe load speculation for a compiler in a computer system, the method consisting of: building a control flow graph; identifying both countable and non-countable loops; gathering a set of candidate loops for load speculation; for each candidate loop in the set of candidate loops gathered for load speculation performing: computing an estimate of the iteration count, delay cycles, and code size; performing a profitability analysis and determine an unroll factor based on the delay cycles and the code size; transforming the loop by generating a prologue loop to achieve data alignment and an unrolled main loop with loop directives, indicating which loads can safely be executed speculatively; and performing low-level instruction scheduling on the generated unrolled main loop.