Patent US5923882A successfully refreshed from Google Patents.
US5923882A
Expired / Lapsed
US
⏱️ 0.0 years remaining
Cross-module optimization for dynamically-shared programs and libraries
Assignee: RPX Corp
•
Filing: 1995-08-29
•
Granted: 1999-07-13
•
Expires: 2015-08-29
Abstract
Abstract A system and method of eliminating some of the indirect addressing associated with Position Independent Code (PIC). The invention applies cross-module optimization to dynamic linking of shared libraries. A definition table is built that defines where each symbol within an application program and associated shared library is defined. Also stored in the definitions table is an associated attribute. The definition table is utilized to eliminate indirect addressing wherever possible. As a result, overall system performance is increased.
Inventors
- 👤 W. Wilson Ho
- 👤 Sun C. Chan
Bibliographic Details
Application Number
—
Jurisdiction
US
Data Source
google_patents
Last Synchronized
2026-11-09 00:49
CPC Classifications
G; G06; G06F; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/447; G06F9/00; G06F9/06; G06F9/44; G06F9/445; G06F9/44521
Claims Analysis
Total Claims: 10
Claim 1
Independent Claim
174 words
A method for generating machine-code that includes an application program and one or more shared libraries to be executed, wherein the machine-code utilizes direct and indirect addressing, comprising: (1) generating intermediate code from source code having two or more separate modules of code utilizing cross-module optimization, wherein said intermediate code includes information about symbol definitions in each of said separate modules of code, said intermediate code also includes information regarding the one or more libraries that will be linked at run-time; (2) generating a definitions table that indicates where all of said symbol definitions are defined, wherein said definitions table is incomplete since said shared library can change at run-time; (3) generating a machine-code object from said intermediate code by using said definitions table, wherein said machine-code object includes indirect addressing for all definitions in said definitions table that are not within said source code and direct addressing code for all definitions in said definitions table that are within said source code; and (4) linking said machine-code object with said one or more libraries.
Claim 2
Independent Claim
174 words
A method for generating machine-code that includes an application program and one or more shared libraries to be executed, wherein the machine-code utilizes direct and indirect addressing, comprising: (1) generating intermediate code from source code having two or more separate modules of code utilizing cross-module optimization, wherein said intermediate code includes information about symbol definitions in each of said separate modules of code, said intermediate code also includes information regarding the one or more libraries that will be linked at run-time; (2) generating a definitions table that indicates where all of said symbol definitions are defined, wherein said definitions table is incomplete since said shared library can change at run-time; (3) generating a machine-code object from said intermediate code by using said definitions table, wherein said machine-code object includes indirect addressing for all definitions in said definitions table that are not within said source code and direct addressing code for all definitions in said definitions table that are within said source code; and (4) linking said machine-code object with said one or more libraries.
Claim 3
Dependent Claim
23 words
The method of claim 1, further comprising the step of linking said machine-code object with other machine-code objects that have been separately compiled.
Claim 4
Dependent Claim
44 words
The method of claim 1, further comprising the step of generating a Ucode object based on said intermediate code, said Ucode object includes Ucode instructions representing said source program and a symbol table that contains symbol table information used by a loader and debugger.
Claim 5
Dependent Claim
26 words
The method of claim 3, wherein said step generating Ucode instructions combines separately-compiled intermediate-code objects and performs function in-lining, interprocedural register allocation, and dead function removal.
Claim 6
Dependent Claim
238 words
A computer program product, comprising: a computer usable medium having computer readable program code means embodied in said medium for causing a computer to generate machine-code that includes an application program and one or more shared libraries to be executed, wherein the machine-code utilizes direct and indirect addressing, wherein said computer readable program code means incudes: computer readable program code means for causing said computer to generate intermediate code from source code having two or more separate modules of code utilizing cross-module optimization, wherein said intermediate code includes information about symbol definitions in each of said separate modules of code, said intermediate code also includes information regarding the one or more libraries that will be linked at run-time; computer readable program code means for causing said computer to generate a definitions table that indicates where all of said symbol definitions are defined, wherein said definitions table is incomplete since said shared library can change at run-time; computer readable program code means for causing said computer to generate a machine-code object from said intermediate code by using said definitions table, wherein said machine-code object includes indirect addressing for all definitions in said definitions table that are not within said source code and direct addressing code for all definitions in said definitions table that are within said source code; and computer readable program code means for causing said computer to link said machine-code object with said one or more libraries.
Claim 7
Dependent Claim
238 words
A computer program product, comprising: a computer usable medium having computer readable program code means embodied in said medium for causing a computer to generate machine-code that includes an application program and one or more shared libraries to be executed, wherein the machine-code utilizes direct and indirect addressing, wherein said computer readable program code means incudes: computer readable program code means for causing said computer to generate intermediate code from source code having two or more separate modules of code utilizing cross-module optimization, wherein said intermediate code includes information about symbol definitions in each of said separate modules of code, said intermediate code also includes information regarding the one or more libraries that will be linked at run-time; computer readable program code means for causing said computer to generate a definitions table that indicates where all of said symbol definitions are defined, wherein said definitions table is incomplete since said shared library can change at run-time; computer readable program code means for causing said computer to generate a machine-code object from said intermediate code by using said definitions table, wherein said machine-code object includes indirect addressing for all definitions in said definitions table that are not within said source code and direct addressing code for all definitions in said definitions table that are within said source code; and computer readable program code means for causing said computer to link said machine-code object with said one or more libraries.
Claim 8
Dependent Claim
32 words
The computer program product of claim 5, further comprising computer readable program code means for causing said computer to link said machine-code object with other machine-code objects that have been separately compiled.
Claim 9
Dependent Claim
28 words
The computer program product of claim 5, further comprising computer readable program code means for causing said computer to generate a Ucode object based on said intermediate code.
Claim 10
Dependent Claim
29 words
The computer program product of claim 7, further comprising computer readable program code means for causing said computer to perform function in-lining, interprocedural register allocation, and dead function removal.
References Cited (Backward Citations)
US5291601A
Cited
US5193191A
Cited
US5359721A
Cited
US5535391A
Cited
US5375241A
Cited
US5408665A
Cited
US5375242A
Cited
US5583988A
Cited
US5590331A
Cited
USPTO Annuity & Maintenance Windows
| Annuity Stage | Window Opens | Payment Deadline | Surcharge Period Until | Estimated Fee | Status |
|---|---|---|---|---|---|
| 3.5 Years (Year 4) | 2002-07-12 | 2003-01-11 | 2003-07-13 | $2000.00 | Window Closed / Lapsed |
| 7.5 Years (Year 8) | 2006-07-12 | 2007-01-11 | 2007-07-13 | $3760.00 | Window Closed / Lapsed |
| 11.5 Years (Year 12) | 2010-07-12 | 2011-01-11 | 2011-07-13 | $7700.00 | Window Closed / Lapsed |