IP Library Granted Patent US 12,386,601
Granted Patent B2
US 12,386,601 · App. 18/514,475 · Granted Aug 12, 2025

Extensible compilation using composite programming for hardware performance enhancements

Inventors: Eashan Krishna Hatti (Charlestown, WV); Harsha Mysore Hatti (Charlestown, WV)
Assignee: CuraeChoice, Inc.
G06F8/4434
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 12,386,601
App. No.
18/514,475
Granted
Aug 12, 2025
Kind
B2
Abstract

Systems, methods, and machine-readable media are disclosed for enabling high-performance programming via a composite programming language that gives programmers complete control over the compilation process. The composite programs include two language levels: an object program level (source code), and a metaprogram level that describes how a compiler should be customized in order to optimize the source code for a target hardware environment. When an augmented compiler receives a composite program, it recognizes the metaprogram and implements the one or more parameters specified within the composite program to optimize the compiler for a given target. Once the augmented compiler has been, it proceeds with compiling the source code included in the composite program. The compiled code is then output as machine language and may be executed by one or more computing systems.

Claims (56)

1. A method, comprising:

providing a first generic compiler configured to receive second code instructions at a metaprogram level;

editing, by a computing device, a program code of the first generic compiler based on one or more code transformation instructions to create a second compiler, the one or more code transformation instructions contained in the second code instructions, the second code instructions being part of a composite computer program that further comprises first code instructions at an object program level;

compiling, by the computing device, the first code instructions using the second compiler to produce a transformed set of code for the computing device; and

executing, by the computing device, at least part of a computer program from the composite computer program based on the transformed set of code.

2. The method of claim 1 , further comprising:

compiling, by the computing device, the transformed set of code using a third compiler to produce a second transformed set of code.

3. The method of claim 2 , wherein the second transformed set of code comprises a set of machine code, and

the executing based on the transformed set of code comprises executing the set of machine code.

4. The method of claim 1 , wherein the transformed set of code is transformed by the second compiler based on a specified hardware configuration of the computing device based on the second code instructions.

5. The method of claim 1 , wherein the editing further comprises:

producing, by the computing device executing the second code instructions, a plurality of alternative transformation results of a combination of transformations for the first generic compiler to implement; and

pruning, by the computing device executing the second code instructions, one or more of the plurality of alternative transformation results using a cost measure.

6. The method of claim 1 , further comprising:

receiving, by the computing device, a manual modification to one or more parameters specified in the second code instructions; and

repeating the editing, compiling, and executing according to the manual modification.

7. The method of claim 1 , further comprising:

implementing, by the computing device executing the composite computer program, an artificial intelligence (AI) algorithm to determine one or more parameters to transform the first code instructions based on a particular hardware platform;

modifying, automatically by the computing device, the determined one or more parameters specified in the second code instructions; and

repeating the editing, compiling, and executing according to the modification.

8. The method of claim 7 , further comprising:

receiving, by the computing device, one or more outcome goals as the second code instructions for the artificial intelligence (AI) algorithm implementation.

9. The method of claim 1 , wherein the one or more code transformation instructions contained in the second code instructions comprises at least one of constant folding, monomorphization, or list fusion.

10. A computing device, comprising:

a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of implementing a composite computer program, the composite computer program comprising first code instructions at an object program level and second code instructions at a metaprogram level; and

a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to:

provide a first generic compiler configured to receive the second code instructions;

edit a program code of the first generic compiler of the computing device based on one or more code transformation instructions to create a second compiler, the one or more code transformation instructions contained in the second code instructions;

compile the first code instructions using the second compiler to produce a transformed set of code for the computing device; and

execute at least a part of a computer program from the composite computer program based on the transformed set of code.

11. The computing device of claim 10 , wherein the processor is further configured to compile the transformed set of code using a third compiler to produce a second transformed set of code.

12. The computing device of claim 11 , wherein the transformed set of code comprises a set of machine code, and the execution of at least the part of the computer program comprises execution of the set of machine code.

13. The computing device of claim 10 , wherein the transformed set of code is transformed by the second compiler based on a specified hardware configuration of the computing device based on the second code instructions.

14. The computing device of claim 10 , wherein the processor is further configured, as part of the editing, to:

produce a plurality of alternative transformation results of a combination of transformations for the first generic compiler to implement; and

prune one or more of the plurality of alternative transformation results using a cost measure.

15. The computing device of claim 10 , wherein the processor is further configured to:

receive a manual modification to one or more parameters specified in the second code instructions; and

repeat the editing, compilation, and execution according to the manual modification.

16. The computing device of claim 10 , wherein the processor is further configured to:

implement an artificial intelligence (AI) algorithm to determine one or more parameters to transform the first code instructions based on a particular hardware platform;

modify, automatically by the computing device, the determined one or more parameters specified in the second code instructions; and

repeat the editing, compilation, and execution according to the modification.

17. The computing device of claim 16 , wherein the processor is further configured to:

receive one or more outcome goals as the second code instructions for the artificial intelligence (AI) algorithm implementation.

18. A non-transitory computer-readable medium having program code recorded thereon, the program code comprising:

code for causing a computing device to provide a first generic compiler configured to receive second code instructions at a metaprogram level;

code for causing the computing device to edit a program code of the first generic compiler with one or more code transformation instructions to create a second compiler, the one or more code transformation instructions contained in the second code instructions, the second code instructions being part of a composite computer program that further comprises first code instructions at an object program level;

code for causing the computing device to compile the first code instructions using the second compiler to produce a transformed set of code for the computing device; and

code for causing the computing device to execute at least a part of a computer program from the composite computer program based on the transformed set of code.

19. The non-transitory computer-readable medium of claim 18 , wherein the transformed set of code is transformed by the second compiler based on a specified hardware configuration of the computing device based on the second code instructions.

20. The non-transitory computer-readable medium of claim 18 , further comprising:

code for causing the computing device to receive one or more outcome goals as the second code instructions for an artificial intelligence (AI) algorithm implementation;

code for causing the computing device to implement an artificial intelligence (AI) algorithm to determine one or more parameters to transform the first code instructions based on a particular hardware platform, based on the received one or more outcome goals;

code for causing the computing device to automatically modify the determined one or more parameters specified in the second code instructions; and

code for causing the computing device to repeat the editing, compilation, and execution according to the modification.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 20, 2024
From: HATTI, EASHAN KRISHNA; HATTI, HARSHA MYSORE
To: CURAECHOICE, INC.
Reel/Frame 066501/0710 →
Continuity (2)
Continuation 18167448 · Feb 10, 2023
Related Publication 20240303055A1 · Sep 12, 2024
References Cited (11)
US 6516305B1 · Fraser · 2003 [cited by applicant]
US 10402731B1 · Cosic · 2019 [cited by examiner]
US 10503775B1 · Ranzinger · 2019 [cited by applicant]
US 11822908B1 · Hatti · 2023 [cited by examiner]
US 20190179796A1 · Lakhman · 2019 [cited by applicant]
US 20220383131A1 · Baker · 2022 [cited by applicant]
Ruben Fiszel, “Staged meta-programming, new LMS frontend and computation graphs”, 2017, retrieved from https://rubenfiszel.github.io/posts/lms/2017-01-05-LMS-semester-project.html , 21 pages. (Year: 2017). [cited by examiner]
Wikipedia, “Monomorphization”, 2021, retrieved from https://web.archive.org/web/20211104111405/https://en.wikipedia.org/wiki/Monomorphization , 2 pages. (Year: 2021). [cited by examiner]
Martin Bravenboer, Exercises in Free Syntax, 2008, Thesis, Utrecht University, Netherlands, 251 pages. [cited by applicant]
Lilis et al., An inegrated implementation framework for compile-time metaprogramming, 2013, John Wiley & Sons, Ltd., pp. 727-763. [cited by applicant]
Nicolas Vasilache et al., Composable and Modular Code Generation in MLIR, 2022, Google, 43 pages. [cited by applicant]