Modulating dynamic optimizations of a computer program
First Claim
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.
3 Assignments
0 Petitions
Accused Products
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.
-
Citations
21 Claims
-
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. - View Dependent Claims (2, 3, 4, 5, 6, 7)
-
-
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. - View Dependent Claims (9, 10, 11, 12, 13, 14)
-
-
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. - View Dependent Claims (16, 17, 18, 19, 20, 21)
-
Specification