Post compile optimizer for linkable object code
DCFirst Claim
1. A system for generating data representing an optimized object code set for a data processing system from data representing a complete object code set, comprising:
- (a) a memory area for storing data;
(b) means for forming a plurality of data storage areas within said memory area;
(c) first converter means for converting said data representing the complete object code set into data representing a first plurality of instruction sequences to be stored in a first data storage area, a first plurality of symbol and relocation data to be stored in a second data storage area and a plurality of static data to be stored in a third data storage area;
(d) second converter means coupled with the first and second data storage areas for converting said data representing said first plurality of instruction sequences into data representing a plurality of optimized instruction sequences to be stored in a fourth data storage area;
(e) adjuster means coupled with the second storage area for adjusting said first symbol and relocation data into a plurality of adjusted symbol and relocation data to be stored in a fifth data storage area such that said adjusted symbol and relocation data corresponds to said data representing the plurality of optimized instruction sequences; and
(f) data generating means coupled to said third, fourth and fifth storage areas for generating said data representing the optimized object code set from said static data, said data representing the plurality of optimized instruction sequences and said plurality of adjusted symbol and relocation data.
3 Assignments
Litigations
0 Petitions
Reexamination
Accused Products
Abstract
A system for processing a complete object code data set, to be linked into an executable program. The system features means for facilitating optimization analysis based upon the complete object code data set and also means for modifying the object code data based upon the optimization analysis results. The system allows for the specification of static instruction ranges that are to be isolated from the optimization process. Indirect and external process transfer of control destination ranges are identified in order to formulate the proper control flow information necessary to retain the optimized object code data integrity. The system enables the implementation of a class of optimizations which are supplemental to the standard class of optimizations performed during the initial object code generation process.
48 Citations
26 Claims
-
1. A system for generating data representing an optimized object code set for a data processing system from data representing a complete object code set, comprising:
-
(a) a memory area for storing data; (b) means for forming a plurality of data storage areas within said memory area; (c) first converter means for converting said data representing the complete object code set into data representing a first plurality of instruction sequences to be stored in a first data storage area, a first plurality of symbol and relocation data to be stored in a second data storage area and a plurality of static data to be stored in a third data storage area; (d) second converter means coupled with the first and second data storage areas for converting said data representing said first plurality of instruction sequences into data representing a plurality of optimized instruction sequences to be stored in a fourth data storage area; (e) adjuster means coupled with the second storage area for adjusting said first symbol and relocation data into a plurality of adjusted symbol and relocation data to be stored in a fifth data storage area such that said adjusted symbol and relocation data corresponds to said data representing the plurality of optimized instruction sequences; and (f) data generating means coupled to said third, fourth and fifth storage areas for generating said data representing the optimized object code set from said static data, said data representing the plurality of optimized instruction sequences and said plurality of adjusted symbol and relocation data. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
- 9. The system of claim i wherein said data representing the first plurality of instruction sequences contains data representing a plurality of indirect transfer of control instructions.
-
11. The system of claim i wherein said complete object code data set contains a plurality of external process transfer of control destination ranges comprising:
third identifying means for designating said external process transfer of control destination ranges within said complete object code data set thereby allowing for the formulation of accurate control flow information corresponding to said data representing the complete object code set.
- 12. The system of claim i wherein said data representing the first plurality of instruction sequences contains data representing a plurality of limited displacement instructions.
-
14. A method for generating data representing an optimized object code set for a data processing system from data representing a complete object code set, comprising the steps of:
-
(a) forming a plurality of data storage areas within a memory area; (b) converting said data representing the complete object code set into data representing a first plurality of instruction sequences to be stored in a first data storage area, a first plurality of symbol and relocation data to be stored in a second data storage area and a plurality of static data to be stored in a third data storage area; (c) converting said data representing said first plurality of instruction sequences into data representing a plurality of optimized instruction sequences to be stored in a fourth data storage area; (d) adjusting said first symbol and relocation data into a plurality of adjusted symbol and relocation data to be stored in a fifth data storage area such that said adjusted symbol and relocation data corresponds to said data representing the plurality of optimized instruction sequences; and (e) generating said data representing the optimized object code set from said static data, said data representing the plurality of optimized instruction sequences and said plurality of adjusted symbol and relocation data. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26)
-
Specification