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

Delete CLS_VAR #68524

Merged
merged 3 commits into from
Apr 28, 2022
Merged

Delete CLS_VAR #68524

merged 3 commits into from
Apr 28, 2022

Conversation

SingleAccretion
Copy link
Contributor

@SingleAccretion SingleAccretion commented Apr 25, 2022

The final change in the CLS_VAR deletion story. With this, we will now have a regular shape for "simple" static fields on all platforms, simplifying the IR and ensuring unified handling.

We have some (overall positive) code diffs:

  1. Costing: CSE + arg sorting (regressions and improvements).
  2. Lack of zero-initialization: RA and prolog zeroing loop.
  3. Large improvements due to enabling the reuse of constants.

We also have some TP diffs, positive on all platforms but ARM itself, where we see a 0.1%-0.3% regression (presumably due to the enlarged IR). I think that's ok - the improvements made in #68383 should make the overall diff small.

SPMI in CI.

ApplySelectorsTypeCheck already adds the cast in case it
is necessary, and VN does support small-typed operands.
@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Apr 25, 2022
@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 Apr 25, 2022
@ghost
Copy link

ghost commented Apr 25, 2022

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

Issue Details

TODO: description.

Author: SingleAccretion
Assignees: -
Labels:

area-CodeGen-coreclr, community-contribution

Milestone: -

@SingleAccretion SingleAccretion marked this pull request as ready for review April 26, 2022 16:17
@SingleAccretion
Copy link
Contributor Author

@dotnet/jit-contrib

@@ -8742,7 +8654,17 @@ void Compiler::fgValueNumberTree(GenTree* tree)
}
else if (isVolatile)
{
// For Volatile indirection, mutate GcHeap/ByrefExposed
// We just mutate GcHeap/ByrefExposed if isVolatile is true, and then do the read as normal.
Copy link
Contributor Author

Choose a reason for hiding this comment

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

The comment is unfortunately not quite correct anymore, we don't actually do "read as normal" on this path; I will adjust it in the future VN changes (it is a very nice comment overall).

Copy link
Member

@jakobbotsch jakobbotsch left a comment

Choose a reason for hiding this comment

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

Happy to see the IR getting more regular.

@jakobbotsch jakobbotsch merged commit 6256adf into dotnet:main Apr 28, 2022
@SingleAccretion SingleAccretion deleted the Delete-ClsVar-Final branch April 28, 2022 11:00
@ghost ghost locked as resolved and limited conversation to collaborators May 28, 2022
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 community-contribution Indicates that the PR has been added by a community member
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants