Browse Prior Art Database

Adaptive Trace-Directed Program Restructuring

IP.com Disclosure Number: IPCOM000111298D
Original Publication Date: 1994-Feb-01
Included in the Prior Art Database: 2005-Mar-26
Document File: 2 page(s) / 64K

Publishing Venue

IBM

Related People

Heisch, RR: AUTHOR [+2]

Abstract

The technique of Trace-Directed Program Restructuring (TDPR) is a well-known method for reorganizing both instructions and data in a program, based on an address trace of the actual execution of that program, so as to improve the utilization of the instruction cache and optimized hardware (which typically results in improved performance) as well as the utilization of real memory (which typically results in a reduction in real memory requirements for virtual memory systems). Several software vendors provide varying degrees of TDPR, either as a standalone postprocessing tool or integrated with the compiler/linker, which users may apply to their programs to improve execution performance and reduce memory utilization.

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 52% of the total text.

Adaptive Trace-Directed Program Restructuring

      The technique of Trace-Directed Program Restructuring (TDPR) is
a well-known method for reorganizing both instructions and data in a
program, based on an address trace of the actual execution of that
program, so as to improve the utilization of the instruction cache
and optimized hardware (which typically results in improved
performance) as well as the utilization of real memory (which
typically results in a reduction in real memory requirements for
virtual memory systems).  Several software vendors provide varying
degrees of TDPR, either as a standalone postprocessing tool or
integrated with the compiler/linker, which users may apply to their
programs to improve execution performance and reduce memory
utilization.  Performance improvements of 20% and reductions in
memory requirements of 50% are not uncommon after application of TDPR
for a given workload.

      The problem with TDPR, as currently discussed in the literature
or as provided by software vendors, is its static nature.  For
example, an application program is run for a particular workload
while an address trace is collected and the application is
restructured based on that trace.  Typically, the restructured
application produces improvements when run on the same or very
similar workloads.  If the workload changes significantly, then the
improvements are usually less dramatic and, in some cases,
performance and/or memory utilization may even worsen.  This problem
may be reduc...