Skip to content
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

Fix LSRA dump of GC Kills #1288

Merged
merged 1 commit into from
Jan 7, 2020
Merged

Fix LSRA dump of GC Kills #1288

merged 1 commit into from
Jan 7, 2020

Conversation

CarolEidt
Copy link
Contributor

No description provided.

@CarolEidt
Copy link
Contributor Author

In my PR #679 I attempted to improve the dumping of GC kills (this is where we spill all GC refs across pinvoke calls), but instead broke them. This is actually an improvement over what I'd done in my EHWriteThru branch, and then incorrectly extracted in #679. It will now print something like the following in the LSRA allocation table:

 58.#34      KlGC   Spill ebx  |V8 a|    |    |    |V9 a|    |    |    |    |    |    |
                    Done       |V8 a|    |    |    |V9 a|    |    |    |    |    |    |

If there are no GC refs live in registers, it will print this:

 64.#47      KlGC   None       |    |    |    |    |V9 a|    |    |    |    |    |    |

And if there are multiple it will look something like this:

 886.#716        KlGC   Spill rdi  |     |     |     |V81 a|     |V1  a|     |     |     |V36 i|     |V2  a|V3  i|
                        Spill r14  |     |     |     |V81 a|     |V1  a|     |     |     |V36 i|     |     |V3  i|
                        Done       |     |     |     |V81 a|     |V1  a|     |     |     |V36 i|     |     |V3  i|

Both @briansull and I ran into the unreached() when doing a jitdump. It doesn't make sense for a JITDUMP to ever cause an unreached assert, so I've changed that to just print something to indicate an unknown event was hit.

@CarolEidt
Copy link
Contributor Author

@dotnet/jit-contrib PTAL

@sandreenko sandreenko added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label Jan 3, 2020
Copy link
Contributor

@briansull briansull left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@CarolEidt CarolEidt merged commit d5e2081 into dotnet:master Jan 7, 2020
@CarolEidt CarolEidt deleted the FixLsraDump branch January 7, 2020 15:43
@ghost ghost locked as resolved and limited conversation to collaborators Dec 11, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants