Patent ID: 8495607

Claim:
A method, in a data processing system, for compiling a portion of source code into an executable portion of code, comprising: determining, by a compiler excepting on a processor in the data processing system, an optimization to apply to a portion of source code; determining, by the compiler, if the optimization as applied to the portion of source code will result in unsafe optimized code and is thus an unsafe optimization, wherein the unsafe optimized code is code that introduces a new source of exceptions being generated by the unsafe optimized code that was not previously present in the portion of source code or generates results which are different from the results that would have been obtained by the portion of source code; in response to a determination that the optimization is an unsafe optimization, generating, by the compiler, the executable portion of code with both an aggressively compiled code version of the portion of source code in which the unsafe optimization is applied and a conservatively compiled code version in which the unsafe optimization is not applied; and storing, by the compiler, the executable portion of code with both the aggressively compiled code version and conservatively compiled code version in a storage device associated with the data processing system.