Instances of just-in-time (JIT) compilation of code using different compilation settings

US11487565B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11487565-B2
Application numberUS-202017083769-A
CountryUS
Kind codeB2
Filing dateOct 29, 2020
Priority dateOct 29, 2020
Publication dateNov 1, 2022
Grant dateNov 1, 2022

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

In some examples, just-in-time (JIT) control instructions upon execution cause a system to initiate a plurality of instances of JIT compilation of a first code called by a program, where the initiating of the plurality of instances of the JIT compilation of the first code is under control of the JIT control instructions that are outside the program, and the plurality of instances of the JIT compilation of the first code use respective different compilation settings, and are to produce respective JIT compiled instances of the first code.

First claim

Opening claim text (preview).

What is claimed is: 1. A non-transitory machine-readable storage medium comprising just-in-time (JIT) control instructions that upon execution cause a system to: initiate a plurality of instances of JIT compilation of a first code called by a program, wherein the initiating of the plurality of instances of the JIT compilation of the first code is under control of the JIT control instructions that are outside the program, the plurality of instances of the JIT compilation of the first code using respective different compilation settings, and are to produce respective plural JIT compiled instances of the first code; store, in a data repository, the plural JIT compiled instances of the first code produced using the respective different compilation settings; and in response to a call of the first code in the program, select a JIT compiled instance of the first code from among the plural JIT compiled instances of the first code stored in the data repository, the selecting being based on a criterion. 2. The non-transitory machine-readable storage medium of claim 1 , wherein the JIT control instructions upon execution cause the system to: receive measurements relating to executions of the plural JIT compiled instances of the first code; and select, in response to the call of the first code in the program, the JIT compiled instance of the first code from among the plural JIT compiled instances of the first code based on the measurements. 3. The non-transitory machine-readable storage medium of claim 2 , wherein the measurements are acquired at runtime of the program, and are acquired by measurement instructions invoked responsive to execution of a JIT compiled instance of the first code in response to the first code being called by the program. 4. The non-transitory machine-readable storage medium of claim 1 , wherein the program comprises a first instruction to indirectly call the first code by calling a first pointer entry in a data structure, and wherein the JIT control instructions upon execution cause the system to: add, at runtime of the program under control of the JIT control instructions, a first pointer for the first code to the first pointer entry, wherein the first pointer refers to a location at which a first JIT compiled instance of the first code is stored. 5. The non-transitory machine-readable storage medium of claim 2 , wherein the selecting based on the measurements comprises selecting the JIT compiled instance of the first code from among the plural JIT compiled instances of the first code based on a determination of which of the plural JIT compiled instances of the first code provides better performance according to the measurements. 6. The non-transitory machine-readable storage medium of claim 4 , wherein the program comprises a second instruction, different from the first instruction, to indirectly call the first code by calling a second pointer entry in the data structure, and wherein the JIT control instructions upon execution cause the system to: add, at the runtime of the program under control of the JIT control instructions, a second pointer for the first code to the second pointer entry, wherein the second pointer refers to a location at which a second JIT compiled instance of the first code is stored, the second JIT compiled instance of the first code being different from the first JIT compiled instance of the first code. 7. The non-transitory machine-readable storage medium of claim 5 , wherein the measurements indicate how long each JIT compiled instance of the plural JIT compiled instances took to execute, or a size of each JIT compiled instance of the plural JIT compiled instances. 8. The non-transitory machine-readable storage medium of claim 7 , wherein the measurements further indicate how many times each JIT compiled instance of the plural JIT compiled instances was called. 9. The non-transitory machine-readable storage medium of claim 1 , wherein the program is without any instruction related to the JIT compilation of the first code. 10. The non-transitory machine-readable storage medium of claim 1 , wherein an execution of the program is not blocked for measurement of an execution of a JIT compiled instance of the first code or for patching a pointer for a JIT compiled instance of the first code responsive to the call of the first code in the program. 11. The non-transitory machine-readable storage medium of claim 1 , wherein the plurality of instances of the JIT compilation of the first code are useable by multiple instances of the program. 12. The non-transitory machine-readable storage medium of claim 1 , wherein the first code has an input variable, and wherein initiating the plurality of instances of the JIT compilation of the first code comprises: initiating multiple instances of JIT compilation of the first code where the input variable satisfies a logical predicate. 13. The non-transitory machine-readable storage medium of claim 1 , wherein the JIT control instructions upon execution cause the system to: select, for the call of the first code in the program, the JIT compiled instance of the first code from among the plural JIT compiled instances of the first code based on which location of a plurality of locations the first code is to execute at in response to the call. 14. The non-transitory machine-readable storage medium of claim 1 , wherein the JIT control instructions upon execution cause the system to: select, for the call of the first code in the program, the JIT compiled instance of the first code from among the plural JIT compiled instances of the first code based on a status of a processor that is to execute the first code in response to the call. 15. The non-transitory machine-readable storage medium of claim 1 , wherein the JIT control instructions upon execution cause the system to: select, for the call of the first code in the program, the JIT compiled instance of the first code from among the plural JIT compiled instances of the first code based on a physical layout of physical resources of a computer system in which the program is executed. 16. A system comprising: a processor; and a non-transitory storage medium storing just-in-time (JIT) control instructions separate from a program that is to call a function a plurality of times, the JIT control instructions executable on the processor to: for a first call of the function by the program: select a first JIT compiled instance of the function compiled by a compiler using a first compilation setting, and cause execution of the first JIT compiled instance of the function that is stored in a data repository storing a plurality of JIT compiled instances of the function; and for a second call of the function by the program: select a second JIT compiled instance of the function compiled by the compiler using a second compilation setting that is different from the first compilation setting, and cause execution of the second JIT compiled instance of the function that is stored in the data repository. 17. The system of claim 16 , wherein the JIT control instructions are executable on the processor to: for the first call of the function, patch a first pointer to a first pointer entry of a patch pointer data structure, the first pointer referring to a storage location of the first JIT compiled instance of the function; and for the second call of the function, patch a second pointer to the first pointer entry of the patch pointer data structure, the second pointer referring to a storage location of the second JIT compiled instance of the function.

Assignees

Inventors

Classifications

  • Reducing the execution time required by the program code · CPC title

  • G06F9/449Primary

    Object-oriented method invocation or resolution · CPC title

  • Pointers; Aliasing · CPC title

  • G06F9/4552Primary

    Involving translation to a different instruction set architecture, e.g. just-in-time translation in a JVM · CPC title

  • using software metrics · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US11487565B2 cover?
In some examples, just-in-time (JIT) control instructions upon execution cause a system to initiate a plurality of instances of JIT compilation of a first code called by a program, where the initiating of the plurality of instances of the JIT compilation of the first code is under control of the JIT control instructions that are outside the program, and the plurality of instances of the JIT com…
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F9/449. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 01 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).