Thats a unique idea.You should consider the following idea to enhance your idea so that it would impact uniquely: SELF's debugging system provides complete source-level debugging ( expected behavior ) with globally optimized code. It shields the debugger from optimizations performed by the compiler by dynamically  deoptimizing  code on demand. Deoptimization only affects the procedure activations that are actively being debugged; all other code runs at full speed. Deoptimization requires the compiler to supply debugging information at discrete  interrupt points ; the compiler can still perform extensive optimizations beten interrupt points without affecting debuggability. At the same time, the inability to interrupt beten interrupt points is invisible to the user. Our debugging system also handles  programming changes  during debugging. Again, the system provides expected behavior: it is possible to change a running program and immediately observe the effects of the change. Dynamic deoptimization transforms old compiled code (which may contain inlined copies of the old version of the changed procedure) into new versions reflecting the current source-level state. To the best of our knowledge, SELF is the first practical system providing full expected behavior with globally optimized code.
['Urs Hölzle', 'Craig Chambers', 'David Ungar']
I am writing a research paper on a idea Debugging optimized code with dynamic deoptimization
[{"from": "human", "value": "I am writing a research paper on a idea Debugging optimized code with dynamic deoptimization"}, {"from": "gpt", "value": "Thats a unique idea.You should consider the following idea to enhance your idea so that it would impact uniquely: SELF's debugging system provides complete source-level debugging ( expected behavior ) with globally optimized code. It shields the debugger from optimizations performed by the compiler by dynamically  deoptimizing  code on demand. Deoptimization only affects the procedure activations that are actively being debugged; all other code runs at full speed. Deoptimization requires the compiler to supply debugging information at discrete  interrupt points ; the compiler can still perform extensive optimizations beten interrupt points without affecting debuggability. At the same time, the inability to interrupt beten interrupt points is invisible to the user. Our debugging system also handles  programming changes  during debugging. Again, the system provides expected behavior: it is possible to change a running program and immediately observe the effects of the change. Dynamic deoptimization transforms old compiled code (which may contain inlined copies of the old version of the changed procedure) into new versions reflecting the current source-level state. To the best of our knowledge, SELF is the first practical system providing full expected behavior with globally optimized code."}]