Patents by Inventor Roger Scott Hoover

Roger Scott Hoover has filed for patents to protect the following inventions. This listing includes patent applications that are pending as well as patents that have already been granted by the United States Patent and Trademark Office (USPTO).

  • Patent number: 9195486
    Abstract: 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.
    Type: Grant
    Filed: July 30, 2010
    Date of Patent: November 24, 2015
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Patent number: 9146759
    Abstract: Techniques for processing source code written in a traditionally interpreted language such as JavaScript, or another dynamic and/or interpreted language, are disclosed. In one example, compiled code associated with the source code is constructed and executed. An assumption on which a specific aspect of the compiled code is based (e.g., an optimization) is tested at a checkpoint of the compiled code. A roll over to fallback code is performed if the test indicates the assumption is not true.
    Type: Grant
    Filed: July 30, 2010
    Date of Patent: September 29, 2015
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Patent number: 8898625
    Abstract: Optimized storage of function variables in compiled code is disclosed. It is determined that a variable of a first function is required to be available for use by a second function subsequent to return of the first function. Machine code is generated to escape the variable from a storage location in a stack memory to a storage location in a heap memory, prior to the variable being removed from the stack memory, in connection with return of the first function.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: November 25, 2014
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover
  • Patent number: 8826253
    Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: September 2, 2014
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien
  • Patent number: 8806457
    Abstract: Deferred constant pool generation is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is used to generate a constant pool. In some embodiments, the source code comprises JavaScript, which is used to generate a low level virtual machine (LLVM) or other intermediate representation (IR), which intermediate representation is optimized prior to a constant pool being generated.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: August 12, 2014
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher
  • Patent number: 8752016
    Abstract: A device-independent intermediate representation of a source code is generated and stored, e.g., in a memory or other storage mechanism. The stored intermediate representation of the source code is used to generate a device-specific machine code corresponding to the source code. The stored intermediate representation may be updated, e.g., periodically, for example by obtaining an updated version of the source code and compiling the updated source code to generate an updated intermediate representation. The stored intermediate representation may be based on source code received from a device that is synchronized with which a compiling device that generates the device-specific machine code. In some cases, the stored intermediate representation may be used to generate for each of a plurality of devices a corresponding device-specific machine code.
    Type: Grant
    Filed: December 15, 2008
    Date of Patent: June 10, 2014
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Thomas John O'Brien, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher, Pratik Solanki, Jia-Hong Chen, Michael Alan Kahl
  • Patent number: 8561045
    Abstract: Techniques for processing computer code are disclosed. In one example, an indication that a computer code is to begin execution at a portion of code other than a starting portion of the code is received, and a runtime state associated with the portion of the code at which execution is to begin is constructed. In some examples, execution of the portion of code is initiated. In some examples, a program counter associated with the portion of the code is used to initiate execution of the code. In some examples, the computer code comprises a fallback code associated with a previously executing code.
    Type: Grant
    Filed: July 30, 2010
    Date of Patent: October 15, 2013
    Assignee: Apple Inc.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Publication number: 20120030661
    Abstract: 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.
    Type: Application
    Filed: July 30, 2010
    Publication date: February 2, 2012
    Applicant: APPLE INC.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Publication number: 20120030653
    Abstract: Techniques for processing source code written in a traditionally interpreted language such as JavaScript, or another dynamic and/or interpreted language, are disclosed. In one example, compiled code associated with the source code is constructed and executed. An assumption on which a specific aspect of the compiled code is based (e.g., an optimization) is tested at a checkpoint of the compiled code. A roll over to fallback code is performed if the test indicates the assumption is not true.
    Type: Application
    Filed: July 30, 2010
    Publication date: February 2, 2012
    Applicant: APPLE INC.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Publication number: 20120030659
    Abstract: Techniques for processing computer code are disclosed. In one example, an indication that a computer code is to begin execution at a portion of code other than a starting portion of the code is received, and a runtime state associated with the portion of the code at which execution is to begin is constructed. In some examples, execution of the portion of code is initiated. In some examples, a program counter associated with the portion of the code is used to initiate execution of the code. In some examples, the computer code comprises a fallback code associated with a previously executing code.
    Type: Application
    Filed: July 30, 2010
    Publication date: February 2, 2012
    Applicant: APPLE INC.
    Inventors: Victor Leonel Hernandez Porras, Christopher Arthur Lattner, Jia-Hong Chen, Eric Marshall Christopher, Roger Scott Hoover, Francois Jouaux, Robert John McCall, Thomas John O'Brien, Pratik Solanki
  • Publication number: 20100153936
    Abstract: Deferred constant pool generation is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is used to generate a constant pool. In some embodiments, the source code comprises JavaScript, which is used to generate an LLVM or other intermediate representation (IR), which intermediate representation is optimized prior to a constant pool being generated.
    Type: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher
  • Publication number: 20100153911
    Abstract: Optimized storage of function variables in compiled code is disclosed. It is determined that a variable of a first function is required to be available for use by a second function subsequent to return of the first function. Machine code is generated to escape the variable from a storage location in a stack memory to a storage location in a heap memory, prior to the variable being removed from the stack memory, in connection with return of the first function.
    Type: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover
  • Publication number: 20100153929
    Abstract: A device-independent intermediate representation of a source code is generated and stored, e.g., in a memory or other storage mechanism. The stored intermediate representation of the source code is used to generate a device-specific machine code corresponding to the source code. The stored intermediate representation may be updated, e.g., periodically, for example by obtaining an updated version of the source code and compiling the updated source code to generate an updated intermediate representation. The stored intermediate representation may be based on source code received from a device that is synchronized with which a compiling device that generates the device-specific machine code. In some cases, the stored intermediate representation may be used to generate for each of a plurality of devices a corresponding device-specific machine code.
    Type: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Thomas John O'Brien, Roger Scott Hoover, Christopher Arthur Lattner, Eric Marshall Christopher, Pratik Solanki, Jia-Hong Chen, Michael Alan Kahl
  • Publication number: 20100153912
    Abstract: Variable type knowledge based call specialization is disclosed. An indication is received that a variable that is an argument of a function or operation the behavior of which depends at least in part on a data type of the argument is of a first data type. Machine code that implements a first behavior that corresponds to the first data type, but not a second behavior that corresponds to a second data type other than the first data type, is generated for the function or operation.
    Type: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Eric Marshall Christopher, Christopher Arthur Lattner, Thomas John O'Brien, Pratik Solanki, Jia-Hong Chen
  • Publication number: 20100153935
    Abstract: Delayed insertion of safepoint related code is disclosed. Optimization processing is performed with respect to an intermediate representation of a source code. The optimized intermediate representation is analyzed programmatically to identify a safepoint and insert safepoint related code associated with the safepoint. In some embodiments, analyzing the optimized intermediate representation programmatically comprises determining where to place the safepoint within a program structure of the source code as reflected in the intermediate representation.
    Type: Application
    Filed: December 15, 2008
    Publication date: June 17, 2010
    Inventors: Victor Leonel Hernandez Porras, Roger Scott Hoover, Christopher Arthur Lattner, Thomas John O'Brien