After merging this PR, we will obtain some improvements debugging optimized code. It would be great to have checks we can run on every new PR to be sure no one breaks/downgrades this changes. I open this issue in order to debate about different ways of accomplishing this. Some ideas are listed below:
Add more information to jit dump, indicating when a variable goes live/dead/spill/unspill and use a diff tool to compare this dump between two different versions.
It's on JIT code (easy to run).
No pdb is loaded so variable names have format "VXX" with XX an integer (V01, .. V04 ...)
Consume Variable Live Range in diagnostic repo and offer allow windbg extensions to print variable location data with each respective name as interleaving is proposed on this issue.
Variable names are the ones they have on code so is easier to understand.
Each a PR open on runtime repo would need to run some diagnostic code on windbg and print it on a PR.
Statistical analysis: adding to JIT dump an analysis about code coverage by VariableLiveRange per variable.
On jit side+ Need less check by eye of variable liveness/location changing examples on dumps
A threshold should be established to accept or reject a change
After merging this PR, we will obtain some improvements debugging optimized code. It would be great to have checks we can run on every new PR to be sure no one breaks/downgrades this changes. I open this issue in order to debate about different ways of accomplishing this. Some ideas are listed below:
Add more information to jit dump, indicating when a variable goes live/dead/spill/unspill and use a diff tool to compare this dump between two different versions.
Consume Variable Live Range in diagnostic repo and offer allow windbg extensions to print variable location data with each respective name as interleaving is proposed on this issue.
Statistical analysis: adding to JIT dump an analysis about code coverage by VariableLiveRange per variable.
category:testing theme:debug-info skill-level:intermediate cost:medium