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

Only use first field maps for shared statics #66558

Conversation

SingleAccretion
Copy link
Contributor

@SingleAccretion SingleAccretion commented Mar 13, 2022

This change rounds out the story of redundant maps for statics in VN by encoding the shared-ness information in the lower two bits of the handle stored inside the FieldSeqNode and using that information in IsFieldAddr.

Addresses two TODO-VNTypes. Saves ~0.12% in memory consumption when R2R-ing CoreLib.

No diffs are expected.

Part of #58312.

@ghost ghost added the community-contribution Indicates that the PR has been added by a community member label Mar 13, 2022
@dotnet-issue-labeler dotnet-issue-labeler bot added area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI and removed community-contribution Indicates that the PR has been added by a community member labels Mar 13, 2022
@ghost
Copy link

ghost commented Mar 13, 2022

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

Issue Details

This change rounds out the story of redundant maps in VN by encoding the shared-ness information in the lower two bits of the handle stored inside the FieldSeqNode and using that information in IsFieldAddr.

Addresses two TODO-VNTypes.

Part of #58312.

Author: SingleAccretion
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@SingleAccretion SingleAccretion force-pushed the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Eleven branch 2 times, most recently from d14ad65 to 3c65a34 Compare March 13, 2022 20:40
@SingleAccretion SingleAccretion force-pushed the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Eleven branch 3 times, most recently from 2c87537 to c5e8a2d Compare March 14, 2022 14:12
Allows this change to be tested via SPMI.
The field sequences are already canonical in the store,
so there is no need to have the somewhat involved code
in VN which essentially re-canonicalized them, we can
just use the pointer value (as a handle) to encode them.

Makes the future change of encoding some information in
the handle a little easier.
@SingleAccretion SingleAccretion force-pushed the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Eleven branch from c5e8a2d to 1e24123 Compare March 14, 2022 18:25
@SingleAccretion
Copy link
Contributor Author

SingleAccretion commented Mar 17, 2022

@SingleAccretion SingleAccretion marked this pull request as ready for review March 18, 2022 10:26
@SingleAccretion
Copy link
Contributor Author

@dotnet/jit-contrib

@jakobbotsch jakobbotsch merged commit a50d79f into dotnet:main Mar 29, 2022
@SingleAccretion SingleAccretion deleted the Improve-Handling-Of-Type-Mismatch-In-VN-Part-Eleven branch March 29, 2022 15:20
@ghost ghost locked as resolved and limited conversation to collaborators Apr 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
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants