Claims
- 1. A computer-implemented method for deoptimizing a compiled method, the method being in a first state of optimization, the computer-implemented method comprising:obtaining information from the method; generating a data structure at least partially based on the information, wherein the data structure includes information related to the method; and deoptimizing the method to a second state of optimization using the data structure.
- 2. A computer-implemented method as recited in claim 1, wherein the data structure is machine independent, and the computer-implemented method further includes transferring the data structure between a first computer system and a second computer system.
- 3. A computer-implemented method as recited in claim 2 wherein the data structure is created on the first computer system, the computer-implemented method further including creating a new frame on the second computer system using information stored in the data structure.
- 4. A computer-implemented method as recited in claim 3 wherein the a reference indicator is used; the reference indicator being arranged to reference the data structure from a control stack.
- 5. A computer-implemented method as recited in claim 4 wherein the location on the control stack is a frame, and the reference indicator is arranged to associate the data structure with the frame.
- 6. A computer-implemented method as recited in claim 5 further including:decompiling the method to the second state of optimization after the data structure is generated.
- 7. A computer-implemented method as recited in claim 6 wherein the data structure is machine independent, and decompiling the method includes deleting the method in the first state of optimization.
- 8. A computer-implemented method as recited in claim 7 wherein the second state of optimization is an interpreted state.
- 9. A computer-implemented method as recited in claim 8 wherein decompiling the method includes deoptimizing an optimized activation included in the method.
- 10. A computer-implemented method as recited in claim 9 wherein the location on the control stack is a frame, the computer-implemented method further including:storing the deoptimized activation in the data structure; creating a new frame using the deoptimized activation stored in the data structure; and pushing the new frame onto the control stack in place of the frame.
- 11. A computer system for deoptimizing a method, the method being in a first state of optimization, the computer system comprising:a data structure, wherein the data structure includes information related to the method; and a first mechanism, the first mechanism being arranged to associate the frame with the data structure.
- 12. A computer system according to claim 11 further including a deoptimizer arranged to deoptimize the frame to a second state of optimization, wherein the second state of optimization is less optimized than the first state of optimization, the deoptimizer further being arranged to deoptimize the method to a second state of optimization.
- 13. A computer system according to claim 12 wherein the data structure is machine independent.
- 14. A computer system according to claim 13 wherein the first mechanism is a reference indicator, the reference indicator being arranged to reference the data structure from the frame.
- 15. A computer readable medium including computer program code for deoptimizing a compiled method, the compiled method being in a first state of optimization, the computer readable medium comprising:computer program code for obtaining information from the method; computer program code for generating a data structure at least partially based on the information, wherein the data structure includes information related to the method; and computer program code for deoptimizing the method to a second state of optimization using the data structure.
- 16. A computer readable medium according to claim 15 wherein the data structure is machine independent.
CROSS REFERENCE TO RELATED APPLICATIONS
This application is a Continuation of prior application Ser. No.: 09/336,123, filed Jun. 18, 1999, now U.S. Pat. No. 6,240,547 which in turn is a Continuation of application Ser. No. 08/944,330 filed Oct. 6, 1997, now U.S. Pat. No. 5,933,635 from which priority under 35 U.S.C. §120 is claimed.
This application is related to U.S. patent application Ser. No. 08/944,332 (now U.S. Pat. No. 6,317,791), entitled “Inline Database for Receiver Types in Object-Oriented Systems,” U.S. patent application Ser. No. 08/944,735 (now U.S. Pat. No. 5,970,249), entitled “Method and Apparatus for Performing Byte-Code” Optimization During Pauses, U.S. patent application Ser. No. 08/944,335 (now U.S. Pat. No. 6,009,517), entitled “Mixed Execution Stack and Exception Handling,” U.S. patent application Ser. No. 08/944,326, entitled “Method and Apparatus for Implementing Multiple Return Sites,” U.S. patent application Ser. No. 08/944,331 (now U.S. Pat. No. 6,385,600), entitled “Site Specific Message Dispatch in Object-Oriented Systems,” U.S. patent application Ser. No. 08/944,334 (now U.S. Pat. No. 5,995,754), entitled “Method and Apparatus for Dynamically Optimizing Byte-Coded Programs,” all filed concurrently herewith, U.S. patent application Ser. No. 08/884,856, entitled “Interpreting Functions Utilizing a Hybrid of Virtual and Native Machine Instructions,” filed Jun. 30, 1997, and U.S. patent application Ser. No. 08/885,008 (now U.S. Pat. No. 6,021,273), entitled “Interpreter Generation and Implementation Utilizing Interpreter States and Register Caching,” filed Jun. 30, 1997, which are all incorporated herein by reference for all purposes in their entirety.
US Referenced Citations (12)
Number |
Name |
Date |
Kind |
5371747 |
Brooks et al. |
Dec 1994 |
A |
5586328 |
Caron et al. |
Dec 1996 |
A |
5933635 |
Holzel et al. |
Aug 1999 |
A |
5956479 |
McInerney et al. |
Sep 1999 |
A |
5956512 |
Simmons et al. |
Sep 1999 |
A |
6026485 |
O'Connor et al. |
Feb 2000 |
A |
6151618 |
Wahbe et al. |
Nov 2000 |
A |
6223340 |
Detlefs |
Apr 2001 |
B1 |
6263489 |
Olsen et al. |
Jul 2001 |
B1 |
6275981 |
Buzbee et al. |
Aug 2001 |
B1 |
6434741 |
Mirani et al. |
Aug 2002 |
B1 |
6507946 |
Alexander et al. |
Jan 2003 |
B2 |
Non-Patent Literature Citations (6)
Entry |
Title: Value profiling , author: Calder, B et al, IEEE, Dec., 1997.* |
Title: Optimized code generation for heterogeneous computing environment using parallelzing compiler TINPAR Goto, S et al, ACM, Oct. 1998.* |
Title: Comparison checking: an approach to avoid debugging of optimized code, Authors : Clara Jaramillo et al, ACM, 1999.* |
Title: A new framework for debugging globally optimized code, author: Hu et al, ACM, 1999.* |
Title: Debugging Optimized Code with Dynamic Deoptimization, Holzel et al, ACM, Jul., 1992.* |
Title: Optimizing dynamicaly-dispatched calls with run-time type feedback, Holzel et al, ACM, Aug., 1994. |
Continuations (2)
|
Number |
Date |
Country |
Parent |
09/336123 |
Jun 1999 |
US |
Child |
09/844545 |
|
US |
Parent |
08/944330 |
Oct 1997 |
US |
Child |
09/336123 |
|
US |