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

JIT: build pred lists when we first build the flow graph #81524

Merged
merged 1 commit into from
Feb 2, 2023

Conversation

AndyAyersMS
Copy link
Member

This is the last in a (long) series. We now build the pred lists at the same time we are initially connecting up the flow graph. Pred lists are now always valid and need to be maintained by all phases.

There are some changes needed in EH normalization, and one special case we need to handle in debug codegen where we create the scratch BB very early on. This was the last client for the cheap pred lists.

Note some of the pred list info can't be added right away, in particular the "return" edges from finallies do not appear until we've made it through the importer.

I have deferred cleaning up dead code; will do it in follow-up changes.

Contributes to #80193.

This is the last in a (long) series. We now build the pred lists at the same
time we are initially connecting up the flow graph. Pred lists are now always
valid and need to be maintained by all phases.

There are some changes needed in EH normalization, and one special case we
need to handle in debug codegen where we create the scratch BB very early on.
This was the last client for the cheap pred lists.

Note some of the pred list info can't be added right away, in particular
the "return" edges from finallies do not appear until we've made it through
the importer.

I have deferred cleaning up dead code; will do it in follow-up changes.

Contributes to dotnet#80193.
@ghost ghost assigned AndyAyersMS Feb 2, 2023
@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 Feb 2, 2023
@ghost
Copy link

ghost commented Feb 2, 2023

Tagging subscribers to this area: @JulieLeeMSFT, @jakobbotsch, @kunalspathak
See info in area-owners.md if you want to be subscribed.

Issue Details

This is the last in a (long) series. We now build the pred lists at the same time we are initially connecting up the flow graph. Pred lists are now always valid and need to be maintained by all phases.

There are some changes needed in EH normalization, and one special case we need to handle in debug codegen where we create the scratch BB very early on. This was the last client for the cheap pred lists.

Note some of the pred list info can't be added right away, in particular the "return" edges from finallies do not appear until we've made it through the importer.

I have deferred cleaning up dead code; will do it in follow-up changes.

Contributes to #80193.

Author: AndyAyersMS
Assignees: AndyAyersMS
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

@jakobbotsch PTAL (or @BruceForstall)
cc @dotnet/jit-contrib

Expect this to be zero diff.

Cleanup steps that will come after this:

  • remove cheap preds mechanism (now unused)
  • remove most of the checks for whether pred lists are built
  • look into encapsulating some of the pred list maintenance

@AndyAyersMS
Copy link
Member Author

/azp run runtime-coreclr jitstress, runtime-coreclr libraries-jitstress

@azure-pipelines
Copy link

Azure Pipelines successfully started running 2 pipeline(s).

@AndyAyersMS
Copy link
Member Author

System.Numerics.Tests.Vector4Tests.Vector4DistanceTest1 is failing libraries jitstress. Suspect this is unrelated. I had a clean libraries jitstress run yesterday so perhaps something that just got merged?

  Starting:    System.Numerics.Vectors.Tests (parallel test collections = on, max threads = 4)
    System.Numerics.Tests.Vector4Tests.Vector4DistanceTest1 [FAIL]
      Assert.Equal() Failure
      Expected: 0
      Actual:   1

@AndyAyersMS
Copy link
Member Author

Going to assume the libraries jitstress failure is unrelated.

@AndyAyersMS AndyAyersMS merged commit d17148d into dotnet:main Feb 2, 2023
@ghost ghost locked as resolved and limited conversation to collaborators Mar 5, 2023
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.

2 participants