Runtime Compiler Environment With Dynamic Co-Located Code Execution
AssigneeThe Regents of the University of Michigan
InventorsJason Mars, Michael Laurenzano, Lingjia Tang
Life of this patent
Estimating the term…
Abstract
A system is provided for monitoring, regenerating and replacing the code of running applications with semantically equivalent, specialized code versions that reflect the demands of the execution environment. The system includes a co-designed compiler and runtime system that virtualizes a selected set of edges in a host program, where these edges provide hooks through which the runtime system may redirect execution into an intermediate representation utilized to optimize introspective and extrospective processes.
Claims18
A computer-implemented method of executing a host application code using one or more runtime processors and using co-located code instructions accessible to the one or more runtime processors, the method comprising:
- monitoring the host application code during runtime, the host application code including a plurality of functions and/or code regions;
- identifying one or more control edges within the host application code, where the one or more edges are redirection points for a subset of the plurality of functions and/or code regions;
- caching a code variant for each function and/or code region associated with the one or more control edges;
- and
- during runtime execution of the host application code, redirecting code execution out of host application code at each of the one or more control edges to execute the cached code variant corresponding to the function and/or code region associated with the one or more edges and redirecting code execution back into the host application code after completion of the executed cached code variant.
A system comprising:
- one or more processors and one or more memories, the one or more memories storing instructions that when executed by the one or more processors, cause the one or more processors to:
- monitor the host application code during runtime, the host application code including a plurality of functions and/or code regions;
- identify one or more control edges within the host application code, where the one or more edges are redirection points for a subset of the plurality of functions and/or code regions;
- cache a code variant for each function and/or code region associated with the one or more control edges;
- and
- during runtime execution of the host application code, redirect code execution out of host application code at each of the one or more control edges to execute the cached code variant corresponding to the function and/or code region associated with the one or more edges and redirecting code execution back into the host application code after completion of the executed cached code variant.
Dependencies are inferred from the claim text.