-
Notifications
You must be signed in to change notification settings - Fork 5.3k
Extending variable live ranges in more cases #77439
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Extending variable live ranges in more cases #77439
Conversation
When the emitter moved to the next group but has not emitted any instruction, and the variable died and becomes alive again, we would like to extend its range.
|
Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch Issue DetailsWhile debugging Issue 47202, I found that variables can die and born again without an instruction being emitted nor the emitter moving. Here is an example from #77289 (comment): I found a case where a variable (V06) dies (in [000054]) at the beginning of a basic block (BB05), and becomes alive (in [000016]) before an instruction is emitter. We would want to extend the live ranges in this case:
|
Just to be consistent with new method objective and description.
|
After this PR |
|
I wonder if we should consider moving to a "lazy kill" mode like we do for gc tracking. That is, even if a local is no longer live, so long as the register it was in does not get modified, we can still report the local in the debug info. |
I didn't know that such a thing exists, sounds like the appropriate case. Let me read about it a little bit. |
|
Draft Pull Request was automatically closed for 30 days of inactivity. Please let us know if you'd like to reopen it. |
While debugging Issue 47202, I found that variables can die and born again without an instruction being emitted nor the emitter moving.
Here is an example from #77289 (comment):
I found a case where a variable (V06) dies (in [000054]) at the beginning of a basic block (BB05), and becomes alive (in [000016]) before an instruction is emitter. We would want to extend the live ranges in this case: