Downey Brand LLP
Observation and analysis based code optimization
Observation and analysis based optimization of software code is disclosed. An expected value is chosen for a dynamic attribute that cannot be determined, prior to execution of the associated software code, to be guaranteed to have that expected value at runtime. An optimized version of the software code is generated, including one or more optimizations based on an assumption that the dynamic attribute will have the expected value. Non-exhaustive examples of a dynamic attribute include a variable type; a location in memory; a location in which a global object, property, or variable is stored; the contents of a global function or method; and a value of a global property or variable. A check is performed during execution of the optimized version of the software code, prior to executing the portion that has been optimized based on the assumption, to verify that the dynamic attribute has the expected value. In the event that it is determined at runtime that the dynamic attribute does not have the expected value, execution reverts to backup code that is not based on the assumption that dynamic attribute will have the expected value.
Apple Inc.
G G G
G06F G06F G06F
inventional additional additional
Victor Leonel Hernandez Francois Pratik Thomas John Robert John Eric Marshall Roger Scott Christopher Arthur Jia-Hong
Porras Jouaux Solanki O'Brien McCall Christopher Hoover Lattner Chen