Method and computer program product for dynamically and precisely discovering deliquent memory operations
First Claim
1. A method executed by a processor for dynamically and precisely discovering delinquent memory operations through integration of a compiler, a performance monitoring tool, and an analysis tool comprising:
- compiling an application by the compiler;
generating executable compiler annotated information by the compiler for utilization by the analysis tool at a delinquent memory operation analysis and for utilization by the compiler during re-compilation, the executable compiler annotated information comprising what inlining optimizations are performed, what unrolling optimizations are performed, information about instruction groups, and what symbol mappings are conducted;
wherein the application is linked with a tracing library to generate the executable compiler annotated information and executable linker mapping information;
executing the application to obtain runtime trace information comprising hardware performance counters and tracing library instrumentation events;
analyzing the trace information, the executable compiler annotated information, and the executable linker mapping information to produce a delinquent memory operation file containing delinquent memory operation information; and
reading the delinquent memory operation information of the delinquent memory operation file by the compiler to perform memory reference mapping to guide static analysis and memory hierarchy optimization, wherein performing memory reference mapping maps delinquent memory operations externally in a user source code and maps the delinquent memory operation internally in a compiler intermediate representation.
2 Assignments
0 Petitions
Accused Products
Abstract
A method and computer product for dynamically and precisely discovering delinquent memory operations through integration of compilers, performance monitoring tools, and analysis tools are provided. The method includes compiling an application, and linking the application with a tracing library to generate executable, compiler annotated information and linker mapping information. The application is executed to obtain runtime trace information that includes hardware performance counters and tracing library instrumentation events. The trace information, the compiler annotated information, and the linker mapping information are analyzed to produce a delinquent memory operation file containing delinquent memory operation information. The delinquent memory operation information of the delinquent memory operation file is read by the compiler to perform memory reference mapping to guide static analysis and memory hierarchy optimization. The memory reference mapping maps delinquent memory operations precisely, both externally in a user source code and internally in a compiler intermediate representation.
30 Citations
4 Claims
-
1. A method executed by a processor for dynamically and precisely discovering delinquent memory operations through integration of a compiler, a performance monitoring tool, and an analysis tool comprising:
-
compiling an application by the compiler; generating executable compiler annotated information by the compiler for utilization by the analysis tool at a delinquent memory operation analysis and for utilization by the compiler during re-compilation, the executable compiler annotated information comprising what inlining optimizations are performed, what unrolling optimizations are performed, information about instruction groups, and what symbol mappings are conducted; wherein the application is linked with a tracing library to generate the executable compiler annotated information and executable linker mapping information; executing the application to obtain runtime trace information comprising hardware performance counters and tracing library instrumentation events; analyzing the trace information, the executable compiler annotated information, and the executable linker mapping information to produce a delinquent memory operation file containing delinquent memory operation information; and reading the delinquent memory operation information of the delinquent memory operation file by the compiler to perform memory reference mapping to guide static analysis and memory hierarchy optimization, wherein performing memory reference mapping maps delinquent memory operations externally in a user source code and maps the delinquent memory operation internally in a compiler intermediate representation. - View Dependent Claims (2)
-
-
3. A computer program product, tangibly embodied on a non-transitory computer readable medium, for dynamically and precisely discovering delinquent memory operations through integration of a compiler, a performance monitoring tool, and an analysis tool, the computer program product including instructions for causing a computer to execute a method, comprising:
-
compiling an application; generating executable compiler annotated information by the compiler for utilization by the analysis tool at a delinquent memory operation analysis and for utilization by the compiler during re-compilation, the executable compiler annotated information comprising what inlining optimizations are performed, what unrolling optimizations are performed, information about instruction groups, and what symbol mappings are conducted; wherein linking the application is linked with a tracing library to generate the executable compiler annotated information and executable linker mapping information; executing the application to obtain runtime hardware trace information through hardware performance counts; analyzing the hardware trace information, the executable compiler annotated information, and the executable linker mapping information to produce a delinquent memory operation file containing delinquent memory operation information; and reading the delinquent memory operation information of the delinquent memory operation file by the compiler to perform memory reference mapping to guide static analysis and memory hierarchy optimizations, wherein performing memory reference mapping maps delinquent memory operations precisely, both externally in a user source code and maps the delinquent memory operations internally in a compiler intermediate representation. - View Dependent Claims (4)
-
Specification