IP Library Granted Patent US 9,367,292
Granted Patent B2
US 9,367,292 · App. 13/582,937 · Granted Jun 14, 2016

Modulating dynamic optimizations of a computer program

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 9,367,292
App. No.
13/582,937
Granted
Jun 14, 2016
Kind
B2
Abstract

Systems and methods for modulating dynamic optimizations of a computer program are disclosed. One method includes receiving an intermediate representation (IR) of machine executable instructions, optimizing the received IR to generate a first optimized IR prior to the machine executable instructions being generated by a runtime compiler, optimizing the received IR to generate two or more alternative optimizations for the IR, wherein the two or more alternative optimizations generating two or more optimized IRs are optimized at different optimization points based at least in part on information generated during execution of the first optimized IR in a runtime environment different optimization strategies, and modulating between the two or more alternative optimizations for the IR to use different ones of the alternative optimizations during execution of the machine executable instructions at a frequency based at least in part on a degree of difference between the two or more optimized IRs.

Claims (36)

1. A method comprising:

receiving an intermediate representation (IR) of machine executable instructions;

optimizing the received IR to generate a first optimized IR prior to the machine executable instructions being generated by a runtime compiler;

generating two or more alternative optimized IRs which are optimized at different optimization points based at least in part on information generated during execution of the first optimized IR in a runtime environment, wherein one of the two or more alternative optimized IRs is randomly optimized at a predetermined percentage below a full optimization; and

modulating between the generated two or more alternative optimized IRs during execution of the machine executable instructions at a frequency based at least in part on a degree of difference between the two or more alternative optimized IRs.

2. The method of claim 1 further comprising storing the two or more alternative optimizations for the IRs.

3. The method of claim 2 , wherein the run-time compiler comprises a Just-in-Time (JIT) compiler.

4. The method of claim 1 , wherein receiving the IR comprises receiving byte-code.

5. The method of claim 1 , wherein receiving the IR comprise receiving virtual machine type instructions.

6. The method of claim 1 , wherein said modulating comprises utilizing, in a random manner, the two or more alternative optimizations for the IRs.

7. The method of claim 1 , wherein said modulating comprises utilizing, in a random time dependent manner, the two or more alternative optimizations for the IRs.

8. A machine readable non-transitory medium having stored therein instructions that, when executed by one or more processors, operatively enable a programming translation module to:

receive an intermediate representation (IR) of machine executable instructions;

optimize the received IR to generate a first optimized IR prior to the machine executable instructions being generated by a runtime compiler;

generating two or more alternative optimized IRs which are optimized at different optimization points based at least in part on information generated during execution of the first optimized IR in a runtime environment, wherein one of the two or more alternative optimized IRs is randomly optimized at a predetermined percentage below a full optimization; and

modulate between the generated two or more alternative optimized IRs during execution of the machine executable instructions at a frequency based at least in part on a degree of difference between the two or more alternative optimized IRs.

9. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to store the two or more alternative optimizations for the IR.

10. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to receive the IR at a Just-in-Time (JIT) compiler.

11. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to receive byte-code.

12. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to receive virtual machine type instructions.

13. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to modulate, in a random manner, the two or more alternative optimizations for the IR.

14. The machine-readable non-transitory medium of claim 8 , wherein the stored instructions, that when executed by one or more processors, further operatively enable the programming translation module to modulate, in a random time dependent manner, the two or more alternative optimizations for the IR.

15. A system for utilizing an intermediate representation (IR), comprising:

a processor;

a programming translation module communicatively coupled to the processor; and

a machine readable medium having stored therein instructions that, when executed by the processor, operatively enable the programming translation module to:

receive an intermediate representation (IR) of machine executable instructions;

optimize the received IR to generate a first optimized IR prior to the machine executable instructions being generated by a runtime compiler;

generating two or more alternative optimized IRs which are optimized at different optimization points based at least in part on information generated during execution of the first optimized IR in a runtime environment, wherein one of the two or more alternative optimized IRs is randomly optimized at a predetermined percentage below a full optimization; and

modulate between the generated two or more alternative optimized IRs during execution of the machine executable instructions at a frequency based at least in part on a degree of difference between the two or more alternative optimized IRs.

16. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to store the two or more alternative optimizations for the IR.

17. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to receive the IR at a Just-in-Time (JIT) compiler.

18. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to receive byte-code.

19. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to receive virtual machine type instructions.

20. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to modulate, in a random manner, the two or more alternative optimizations for the IR.

21. The system of claim 15 , wherein the stored instructions, that when executed by the processor, further operatively enable the programming translation module to modulate, in a random time dependent manner, the two or more alternative optimizations for the IR.

Assignments (1)
SECURITY INTEREST Recorded Jan 29, 2019
From: EMPIRE TECHNOLOGY DEVELOPMENT LLC
To: CRESTLINE DIRECT FINANCE, L.P.
Reel/Frame 048373/0217 →