Browse Prior Art Database

Maintaining Basic Block Movement during Trace Directed Program Restructuring

IP.com Disclosure Number: IPCOM000106884D
Original Publication Date: 1993-Dec-01
Included in the Prior Art Database: 2005-Mar-21
Document File: 2 page(s) / 58K

Publishing Venue

IBM

Related People

Heisch, RR: AUTHOR

Abstract

Disclosed is a technique for maintaining and tracking the movement of basic blocks while performing Trace Directed Program Restructuring (TDPR) on an existing executable program. The TDPR process reorganizes the basic blocks in a program so as to minimize the run-time real memory requirements and to improve performance by increasing available cache space for that program. The basic blocks in a program are repositioned according to a list of addresses, representing the highest executed instruction paths, derived in a separate process from an instruction address trace for the program.

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

Maintaining Basic Block Movement during Trace Directed Program Restructuring

      Disclosed is a technique for maintaining and tracking the
movement of basic blocks while performing Trace Directed Program
Restructuring (TDPR) on an existing executable program.  The TDPR
process reorganizes the basic blocks in a program so as to minimize
the run-time real memory requirements and to improve performance by
increasing available cache space for that program.  The basic blocks
in a program are repositioned according to a list of addresses,
representing the highest executed instruction paths, derived in a
separate process from an instruction address trace for the program.
When moving these basic blocks, however, the original branch target
and fall through addresses must be adjusted to account for basic
blocks that have already been moved, basic blocks that have not been
moved but will be, and basic blocks that will not be moved so as to
preserve the original program functionality.

      The described technique maintains and utilizes a data
structure, with the following format, for each address in the
original text section of the program (basic blocks are moved to the
end of the original text section in an area referred to here as the
new text area):

        structure LOG

                moved_to_address

                list_of_addresses_that_branch_to_this_address
where the first entry indicates the address in the new text area
where the instruction at the current log index was moved to and the
second entry provides fo...