Optimization of control transfers to dynamically loaded modules
First Claim
1. A computer-implemented method for optimization of an executable program that calls procedures in a shared library, comprising:
- identifying linkage code segments in the executable program, wherein each linkage code segment is associated with a call to a procedure in the shared library, reads procedure address information from a linkage table, and transfers control to an associated one of the procedures;
reading the address information from the linkage table;
generating respective substitute code segments for the linkage code segments, each substitute code segment having references to the linkage table replaced by direct loads of the address information without reference to the linkage table; and
executing the substitute code segments instead of the linkage code segments.
5 Assignments
0 Petitions
Accused Products
Abstract
Method and apparatus for optimization of an executable program that calls procedures in a shared library. Code segments that read procedure address information from a linkage table are first identified. Each linkage code segment is associated with a call to a procedure in the shared library, and the address information in the linkage table is associated with the procedures in the shared library. During program execution, the address information is read from the linkage table and substitute code segments are generated for the linkage code segments. Each substitute code segment has direct loads of the address information for calling the associated procedure instead of the original references to the linkage table. Thereafter, the substitute code segments are executed instead of the linkage code segments.
46 Citations
12 Claims
-
1. A computer-implemented method for optimization of an executable program that calls procedures in a shared library, comprising:
-
identifying linkage code segments in the executable program, wherein each linkage code segment is associated with a call to a procedure in the shared library, reads procedure address information from a linkage table, and transfers control to an associated one of the procedures;
reading the address information from the linkage table;
generating respective substitute code segments for the linkage code segments, each substitute code segment having references to the linkage table replaced by direct loads of the address information without reference to the linkage table; and
executing the substitute code segments instead of the linkage code segments. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. An apparatus for optimization of an executable program that calls procedures in a shared library, comprising:
-
means for identifying linkage code segments in the executable program, wherein each linkage code segment is associated with a call to a procedure in the shared library, reads procedure address information from a linkage table, and transfers control to an associated one of the procedures;
means for reading the address information from the linkage table;
means for generating respective substitute code segments for the linkage code segments, each substitute code segment having references to the linkage table replaced by direct loads of the address information without reference to the linkage table; and
means for executing the substitute code segments instead of the linkage code segments.
-
Specification