US 7,458,067 B1
Method and apparatus for optimizing computer program performance using steered execution
Partha P. Tirumalai, Fremont, Calif. (US); Spiros Kalogeropulos, Los Gatos, Calif. (US); Yonghong Song, South San Francisco, Calif. (US); and Kurt J. Goebel, Dayton, Ohio (US)
Assigned to Sun Microsystems, Inc., Santa Clara, Calif. (US)
Filed on Mar. 18, 2005, as Appl. No. 11/84,656.
Int. Cl. G06F 9/44 (2006.01)
U.S. Cl. 717—140  [717/151] 13 Claims
OG exemplary drawing
 
1. A method for optimizing computer program performance by using steered execution, comprising: receiving source code for a computer program; compiling a portion of source code with a first set of optimizations to generate a first compiled portion; compiling the same portion of source code with a second set of optimizations to generate a second compiled portion; compiling remaining source code to generate a third compiled portion, wherein the remaining source code was not compiled with either the first set of optimizations or the second set of optimizations; generating a rule for selecting between the first compiled portion and the second compiled portion; and combining the first compiled portion, the second compiled portion, the third compiled portion, and the rule into an executable output file;
During execution of the executable output file, steering execution between the first compiled portion and the second compiled portion based upon the rule;
Monitoring an execution parameter during execution of the executable output file; and
steering execution between the first compiled portion and the second compiled portion based upon the monitored value of the execution parameter.