← Back to Patent Explorer
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
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

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:28
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

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag