1. A method of optimizing a computer program, the computer program executable on a processor-based system, the method comprising the steps of: executing the computer program, the computer program comprising a hint providing storage within the program, wherein the hint is defined as a software variable in the computer program, where the hint has a label that indicates that the hint is used to store learned information, and a hardware engine of the system is primarily responsible for managing contents of the hint, and the computer program includes a marker instruction represented as a software function that is passed the hint as a software parameter, wherein a software code location of the software function within the computer program marks a section of the computer program for a subsequent optimization; during the execution of the computer program, and in response to the marker instruction being executed by the computer program, the hardware engine of the system performing: monitoring of data references caused by execution of instructions in the marked section; and storing the data references in the storage of the hint; and optimizing a subsequent execution of the marked section of the computer program using the data stored in the storage of the hint.