Patent ReferencesDebugger program which includes correlation of computer program source code with optimized object code Module dependency based incremental compiler and method Method and apparatus for dynamically deoptimizing compiled activations Demand based generation of symbolic information Computer program debugging in the presence of compiler synthesized variables Instruction folding for a stack-based machine Safe general purpose virtual machine computing system Method for directly inlining virtual calls without on-stack replacement Method and apparatus for debugging of optimized code Method and system for correlating profile data dynamically generated from an optimized executable program with source code statements InventorsApplicationNo. 844545 filed on 04/27/2001US Classes:717/151, Optimization707/103R, Object-oriented database structure717/140, Compiling code717/141, Analysis of code form717/145, Including recompilation717/153Dynamic (i.e., machine or object level)ExaminersPrimary: Morse, GregoryAssistant: Das, Chameli C. Attorney, Agent or FirmInternational ClassG06F 009/45AbstractMethods and apparatus for dynamically deoptimizing a frame in a control stack during the execution of a computer program are disclosed. The described methods are particularly suitable for use in computer systems that are arranged to execute both interpreted and compiled byte codes. According to one aspect of the present invention, a computer-implemented method for deoptimizing a compiled method includes creating a data structure. The data structure, which is separate from the control stack, is arranged to store information relating to the compiled method. A reference indicator, such as a pointer, is created to associate the data structure with the frame. The method, which is compiled to a first state of optimization, is then deoptimized to a second state of optimization, and the method in the first state of optimization may be discarded, thereby deoptimizing the frame. When control returns to the deoptimized frame, a migration routine creates at least one new stack frame, and execution may continue using the method in the second state of optimization.Other References
Field of SearchIncluding recompilationOptimization Using procedure or function call graph Compiling code Analysis of code form Bytecode (e.g., Java) Just-in-time compiling or dynamic compiling (e.g., compiling Java bytecode on a virtual machine) Including intermediate code Object-oriented database structure Object-oriented database structure processing Decoding instruction to accommodate plural instruction interpretations (e.g., different dialects, languages, emulation, etc.) Specialized instruction processing in support of testing, debugging, emulation Cooperative computer processing COMPUTER-TO-COMPUTER SESSION/CONNECTION ESTABLISHING | |