Profile-based optimizing postprocessors for data references
AssigneeInternational Business Machines Corporation
InventorRandall Ray Heisch
Life of this patent
Estimating the term…
Abstract
The present invention is a system and process for optimizing programs, having memory references, at the object code level. The process includes the computer-implemented steps of instrumenting each of the memory references to create an instrumented program, executing the instrumented program to capture effective address trace data for each of the memory references, analyzing the access patterns of the effective address trace data and, in response, reordering the memory references to create an optimized program.
Claims12
A computer implemented process for directing a computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising the steps of:
- instrumenting each of said memory references to create an instrumented program by:
- setting a pointer to an address;
- scanning said program to detect one of said memory references;
- replacing said memory reference with a branch to said pointer;
- generating instrumentation code at said pointer;
- generating said memory reference;
- and
- repeating said above steps until all of said memory references have been instrumented;
- executing said instrumented program to capture effective address trace data for each of said memory references;
- analyzing access patterns of said effective address trace data;
- in response to said analyzing step, reordering said memory references to create an optimized program.
A computer system having at least a processor, memory, and user controls, to optimize a program at the object code level, said program having memory references, comprising:
- a processor;
- memory;
- means for controlling said processor to instrument each of said memory references to create an instrumented program including:
- means for setting a pointer to an address;
- means for scanning said program to detect at least one of said memory references;
- means for replacing said memory reference with a branch to said pointer;
- means for generating instrumentation code at said pointer;
- and
- means for generating said memory reference;
- means for controlling said processor to execute said instrumented program to capture effective address trace data for each of said memory references;
- means for controlling said processor to analyze access patterns of said effective address trace data;
- and
- in response to analyzing said access patterns, means for controlling said processor to reorder said memory references to create an optimized program.
Dependencies are inferred from the claim text.