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

Improve DOT flow graph dumping #52329

Merged
merged 1 commit into from
May 5, 2021

Conversation

BruceForstall
Copy link
Member

  1. Do not include EH and Loop regions in the graph for inlinees. The
    data required for them is not valid in the inlinee compiler.
  2. Do not include Loop regions in phases starting with the rationalizer.
    The loop table is not maintained, and decays, but we don't ever mark it
    as invalid. This is an arbitrary point after which it seems to be
    unmaintained (and can lead to asserts when using it).
  3. Add the text "(inlinee)" to the function name in inlinee graph output,
    to distinguish it.
  4. Fix a bug where the block map was using incorrect block number count
    for inlinees.
  5. Fix a region insert bug when inserting a parent region after a child
    region where they share the end block (but the parent start block is earlier
    than the child). This happens in some EH region tables. Added some comments
    about all the different forms of region that need to be handled.
  6. Add a Verify function to validate the constructed region tree.
  7. Stop adding removed loops to the output.

1. Do not include EH and Loop regions in the graph for inlinees. The
data required for them is not valid in the inlinee compiler.
2. Do not include Loop regions in phases starting with the rationalizer.
The loop table is not maintained, and decays, but we don't ever mark it
as invalid. This is an arbitrary point after which it seems to be
unmaintained (and can lead to asserts when using it).
3. Add the text "(inlinee)" to the function name in inlinee graph output,
to distinguish it.
4. Fix a bug where the block map was using incorrect block number count
for inlinees.
5. Fix a region insert bug when inserting a parent region after a child
region where they share the end block (but the parent start block is earlier
than the child). This happens in some EH region tables. Added some comments
about all the different forms of region that need to be handled.
6. Add a `Verify` function to validate the constructed region tree.
7. Stop adding removed loops to the output.
@dotnet-issue-labeler dotnet-issue-labeler bot added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 5, 2021
@BruceForstall
Copy link
Member Author

@AndyAyersMS @dotnet/jit-contrib PTAL

Copy link
Member

@AndyAyersMS AndyAyersMS left a comment

Choose a reason for hiding this comment

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

LGTM. Thanks for looking into this.

@BruceForstall BruceForstall merged commit e23bd5e into dotnet:main May 5, 2021
@BruceForstall BruceForstall deleted the FixJitDumpFgLoop branch May 5, 2021 23:24
@karelz karelz added this to the 6.0.0 milestone May 20, 2021
@ghost ghost locked as resolved and limited conversation to collaborators Jun 19, 2021
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.

None yet

3 participants