A source code and architecture information for at least one data processing environment in which a first executable program code compiled from the source code is to be configured to be executed can be received. The source code can be compiled to generate the first executable program code. The compiling the source code can include selecting, using a processor, from a plurality of source code transformations, a source code transformation to apply to compile a portion of the source code based on a plurality of sets of benchmark data, each of the sets of benchmark data comprising data indicating an efficiency of a portion of another executable program code compiled using a respective source code transformation at executing in the at least one data processing environment. The compiling the source code also can include compiling the portion of the source code using the selected source code transformation.
Legal claims defining the scope of protection, as filed with the USPTO.
1. A method, comprising: receiving a source code and architecture information for at least one data processing environment in which a first executable program code compiled from the source code is to be configured to be executed; compiling the source code to generate the first executable program code, the compiling the source code comprising: selecting, using a processor, from a plurality of source code transformations, a source code transformation to apply to compile a portion of the source code based on a plurality of sets of benchmark data, each of the sets of benchmark data comprising data indicating an efficiency of a portion of another executable program code compiled using a respective source code transformation at executing in the at least one data processing environment; and compiling the portion of the source code using the selected source code transformation.
2. The method of claim 1 , further comprising: communicating the first executable program code to a first data processing environment having a first architecture and, responsive to the first data processing environment executing the first executable program code, receiving from the first data processing environment a plurality of first sets of benchmark data, each of the plurality of first sets of the first benchmark data indicating an efficiency of the first data processing environment at processing a respective portion of the first executable program code; and creating a correspondence between each of the plurality of first sets of first benchmark data, a respective source code transformation used to generate the respective portion of the first executable program code, and the first architecture of the first data processing environment.
3. The method of claim 2 , further comprising: communicating the first executable program code to a second data processing environment having a second architecture and, responsive to the second data processing environment executing the first executable program code, receiving from the second data processing environment a plurality of second sets of benchmark data, each of the plurality of second sets of benchmark data indicating an efficiency of the second data processing environment at processing the respective portion of the first executable program code; and creating a correspondence between each of the plurality of second sets of benchmark data, the respective source code transformation used to generate the respective portion of the first executable program code, and the second architecture of the second data processing environment.
4. The method of claim 1 , wherein the compiling the portion of the source code using the selected source code transformation comprises replacing a portion of an intermediate code version of the source code with the selected source code transformation.
5. The method of claim 4 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the intermediate code version of the source code to be compiled that includes less than a threshold number of instructions.
6. The method of claim 1 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the source code to be compiled that includes less than a threshold number of instructions.
7. The method of claim 1 , wherein the architecture information indicates a type of processor and a type of memory of the at least one data processing environment in which the first executable program code is to be configured to be executed.
8. A system, comprising: a processor programmed to initiate executable operations comprising: receiving a source code and architecture information for at least one data processing environment in which a first executable program code compiled from the source code is to be configured to be executed; compiling the source code to generate the first executable program code, the compiling the source code comprising: selecting from a plurality of source code transformations, a source code transformation to apply to compile a portion of the source code based on a plurality of sets of benchmark data, each of the sets of benchmark data comprising data indicating an efficiency of a portion of another executable program code compiled using a respective source code transformation at executing in the at least one data processing environment; and compiling the portion of the source code using the selected source code transformation.
9. The system of claim 8 , the executable operations further comprising: communicating the first executable program code to a first data processing environment having a first architecture and, responsive to the first data processing environment executing the first executable program code, receiving from the first data processing environment a plurality of first sets of benchmark data, each of the plurality of first sets of the first benchmark data indicating an efficiency of the first data processing environment at processing a respective portion of the first executable program code; and creating a correspondence between each of the plurality of first sets of first benchmark data, a respective source code transformation used to generate the respective portion of the first executable program code, and the first architecture of the first data processing environment.
10. The system of claim 9 , the executable operations further comprising: communicating the first executable program code to a second data processing environment having a second architecture and, responsive to the second data processing environment executing the first executable program code, receiving from the second data processing environment a plurality of second sets of benchmark data, each of the plurality of second sets of benchmark data indicating an efficiency of the second data processing environment at processing the respective portion of the first executable program code; and creating a correspondence between each of the plurality of second sets of benchmark data, the respective source code transformation used to generate the respective portion of the first executable program code, and the second architecture of the second data processing environment.
11. The system of claim 8 , wherein the compiling the portion of the source code using the selected source code transformation comprises replacing a portion of an intermediate code version of the source code with the selected source code transformation.
12. The system of claim 11 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the intermediate code version of the source code to be compiled that includes less than a threshold number of instructions.
13. The system of claim 8 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the source code to be compiled that includes less than a threshold number of instructions.
14. The system of claim 8 , wherein the architecture information indicates a type of processor and a type of memory of the at least one data processing environment in which the first executable program code is to be configured to be executed.
15. A computer program product, comprising: a computer readable storage medium having program code stored thereon, the program code executable by a data processing system to initiate operations including: receiving a source code and architecture information for at least one data processing environment in which a first executable program code compiled from the source code is to be configured to be executed; compiling the source code to generate the first executable program code, the compiling the source code comprising: selecting from a plurality of source code transformations, a source code transformation to apply to compile a portion of the source code based on a plurality of sets of benchmark data, each of the sets of benchmark data comprising data indicating an efficiency of a portion of another executable program code compiled using a respective source code transformation at executing in the at least one data processing environment; and compiling the portion of the source code using the selected source code transformation.
16. The computer program product of claim 15 , wherein the program code is executable by the data processing system to initiate operations further comprising: communicating the first executable program code to a first data processing environment having a first architecture and, responsive to the first data processing environment executing the first executable program code, receiving from the first data processing environment a plurality of first sets of benchmark data, each of the plurality of first sets of the first benchmark data indicating an efficiency of the first data processing environment at processing a respective portion of the first executable program code; and creating a correspondence between each of the plurality of first sets of first benchmark data, a respective source code transformation used to generate the respective portion of the first executable program code, and the first architecture of the first data processing environment.
17. The computer program product of claim 16 , wherein the program code is executable by the data processing system to initiate operations further comprising: communicating the first executable program code to a second data processing environment having a second architecture and, responsive to the second data processing environment executing the first executable program code, receiving from the second data processing environment a plurality of second sets of benchmark data, each of the plurality of second sets of benchmark data indicating an efficiency of the second data processing environment at processing the respective portion of the first executable program code; and creating a correspondence between each of the plurality of second sets of benchmark data, the respective source code transformation used to generate the respective portion of the first executable program code, and the second architecture of the second data processing environment.
18. The computer program product of claim 15 , wherein the compiling the portion of the source code using the selected source code transformation comprises replacing a portion of an intermediate code version of the source code with the selected source code transformation.
19. The computer program product of claim 18 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the intermediate code version of the source code to be compiled that includes less than a threshold number of instructions.
20. The computer program product of claim 15 , wherein at least one of the plurality of source code transformations implements a peephole optimization, wherein the peephole optimization is an optimization of a set of instructions of the source code to be compiled that includes less than a threshold number of instructions.
Cooperative Patent Classification codes for this invention. Click any code to explore related patents in that topic.
June 10, 2019
March 23, 2021
Browse 5M+ US patents with plain-English claim translations and AI-generated analysis.