← Back to Patent Explorer
US5815720A Expired / Lapsed US ⏱️ 0.0 years remaining

Use of dynamic translation to collect and exploit run-time information in an optimizing compilation system

Assignee: HP Inc
•
Filing: 1996-03-15
•
Granted: 1998-09-29
•
Expires: 2016-03-15
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

Abstract Dynamic translation is used to produce profile information used to optimize object code for an application. In order to produce optimized object code for the application, source code for the application is compiled to produce first object code for the application. The first object code is used in the generation of profile information about the application. This is done by dynamically translating the first object code to produce second object code. The second object code includes profiling code which, when executed, produces the profile information. The second object code is executed to produce the profile information. The source code for the application is recompiled to produce the optimized object code. The recompiling includes using the profile information in the production of the optimized object code.

Inventors

  • 👤 William B. Buzbee

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-06 00:37
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/36; G06F11/3604; G06F11/3612; G06F8/00; G06F8/40; G06F8/41; G06F8/44; G06F8/443; G06F11/30; G06F11/34; G06F11/3466

Claims Analysis

Total Claims: 21
Claim 1
Independent Claim 112 words
A method for producing optimized object code for a high level computer language pro ram comprising the steps of: (a) compiling source code for the high level computer language program to produce first object code; (b) generating profile information about the first object code, including the following steps (b.1) dynamically translating the first object code to produce second object code, the second object code including profiling code which, when executed, produces the profile information, (b.2) executing the second object code, including producing the profile information; and, (c) recompiling the source code to produce the optimized object code, the recompiling including using the profile information in the production of the optimized object code.
Claim 2
Independent Claim 112 words
A method for producing optimized object code for a high level computer language pro ram comprising the steps of: (a) compiling source code for the high level computer language program to produce first object code; (b) generating profile information about the first object code, including the following steps (b.1) dynamically translating the first object code to produce second object code, the second object code including profiling code which, when executed, produces the profile information, (b.2) executing the second object code, including producing the profile information; and, (c) recompiling the source code to produce the optimized object code, the recompiling including using the profile information in the production of the optimized object code.
Claim 3
Dependent Claim 23 words
A method as in claim 1 additionally including the following step performed after step (a): (d) testing and validating the first object code.
Claim 4
Dependent Claim 91 words
A method as in claim 1 additionally including the following steps performed after step (c): (d) generating profile information about the optimized object code, including the following steps (d.1) dynamically translating the optimized object code to produce third object code, the third object code including profiling code which, when executed, will produce additional profile information, (d.2) executing the third object code; and, (e) recompiling the source code to produce the further optimized object code, the recompiling including using the additional profile information in the production of the further optimized object code.
Claim 5
Dependent Claim 17 words
A method as in claim 1 wherein step (a) includes placing annotations into the first object code.
Claim 6
Dependent Claim 28 words
A method as in claim 4 wherein in step (b.1) the annotations within the first object code determine content of the profiling code within the second object code.
Claim 7
Dependent Claim 27 words
A method as in claim 5 wherein in step (a) the annotations are placed into the first object code by a compiler which compiles the source code.
Claim 8
Dependent Claim 22 words
A method as in claim 5 wherein in step (a) the annotations are placed into the first object code by a user.
Claim 9
Dependent Claim 91 words
A method as in claim 5 additionally including the following steps performed after step (c): (d) generating profile information about the optimized object code, including the following steps (d.1) dynamically translating the optimized object code to produce third object code, the third object code including profiling code which, when executed, will produce additional profile information, (d.2) executing the third object code; and, (e) recompiling the source code to produce the further optimized object code, the recompiling including using the additional profile information in the production of the further optimized object code.
Claim 10
Dependent Claim 22 words
A method as in claim 1 wherein the first object code and the second object code utilize a same machine instruction set.
Claim 11
Dependent Claim 55 words
A computing system comprising: a translator which translates first object code of a high-level language program to second object code, the translator including means for adding profiling code to the second object code, the profiling code, when executed, producing profile information; and, executing means for executing the second object code and producing the profile information.
Claim 12
Dependent Claim 55 words
A computing system comprising: a translator which translates first object code of a high-level language program to second object code, the translator including means for adding profiling code to the second object code, the profiling code, when executed, producing profile information; and, executing means for executing the second object code and producing the profile information.
Claim 13
Dependent Claim 21 words
A computing system as in claim 10 additionally comprising: testing and validating means for testing and validating the first object code.
Claim 14
Dependent Claim 21 words
A computing system as in claim 10 additionally comprising: a compiler which compiles source code to generate the first object code.
Claim 15
Dependent Claim 37 words
A computing system as in claim 12 wherein the compiler includes: recompile means for compiling the source code while utilizing the profile information produced by execution of the profiling code, the recompile means producing optimized object code.
Claim 16
Dependent Claim 17 words
A computing system as in claim 12 wherein the compiler places annotations into the first object code.
Claim 17
Dependent Claim 30 words
A computing system as in claim 14 wherein the translator utilizes the annotations within the first object code to determine content of the profiling code within the second object code.
Claim 18
Dependent Claim 50 words
A computing system as in claim 12 wherein the computer system includes means for a user to add and changes annotations into the first object code and wherein the translator utilizes the annotations within the first object code to determine content of the profiling code within the second object code.
Claim 19
Dependent Claim 33 words
A computing system as in claim 10 wherein the computing system additionally includes a translated code cache, the translated code cache for storing modules which contain a subset of the second object code.
Claim 20
Dependent Claim 24 words
A computing system as in claim 17 wherein the computing system additionally includes: an address to block information map; and, a block information table.
Claim 21
Dependent Claim 23 words
A computing system as in claim 10 wherein the first object code and the second object code utilize a same machine instruction set.

References Cited (Backward Citations)

US5586329A Cited
US5586330A Cited
US5594899A Cited
US5596752A Cited
US5481708A Cited
US5535391A Cited
US5471564A Cited
US5519866A Cited
US5475842A Cited
US5375242A Cited
US5590331A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2001-09-28 2002-03-30 2002-09-29 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2005-09-28 2006-03-30 2006-09-29 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2009-09-28 2010-03-30 2010-09-29 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag