Methods 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.
I metodi e gli apparecchi per dinamicamente deoptimizing una struttura in una pila di controllo durante l'esecuzione di un programma destinato all'elaboratore sono rilevati. I metodi descritti sono particolarmente adatti ad uso nei sistemi di elaborazione che sono organizzati per eseguire sia codici interpretati che compilati di byte. Secondo una funzione di presente invenzione, un metodo calcolatore-effettuato per deoptimizing un metodo compilato include la generazione della struttura di dati. La struttura di dati, che è a parte dalla pila di controllo, è organizzata per memorizzare le informazioni per quanto riguarda il metodo compilato. Un indicatore di riferimento, quale un indicatore, è generato per associare la struttura di dati con la struttura. Il metodo, che è compilato ad un primo dichiara di ottimizzazione, è allora deoptimized ad un secondo dichiara di ottimizzazione ed il metodo nel primo dichiara di ottimizzazione può essere scartato, quindi deoptimizing la struttura. Quando i ritorni di controllo al deoptimized la struttura, una procedura di espansione genera almeno una nuova struttura della pila e l'esecuzione può continuare a usando il metodo nel secondo dichiara di ottimizzazione.