Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Enable global constant propagation for small types#57726

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 ourterms of service andprivacy statement. We’ll occasionally send you account related emails.

Already on GitHub?Sign in to your account

Merged

Conversation

SingleAccretion
Copy link
Contributor

@SingleAccretionSingleAccretion commentedAug 19, 2021
edited
Loading

Just as the title says - remove the restriction that we do not propagate constants for small-typed trees. It is safe because VNadds the necessary truncating casts when evaluating the assignment.

Now, small-typed nodes themselves are a bit rare, but one scenario where they come up is in field-by-field copying and initialization of promoted structs, which is where practically all the diffs for this change come from.

The substantial code here is only in the third commit, the rest is miscellaneous cleanup.

Some nice diffs for this change:win-x64,win-arm64,win-x86

Small regressions here and there are due to slightly different register allocation and the fact that sometimes containing a constant is not profitable size-wise.

Because this is an impactful change, I think stress testing is warranted for this PR. SPMI replay already revealed one bug (#57450), there may be more.

sandreenko reacted with rocket emoji
@ghostghost added community-contributionIndicates that the PR has been added by a community member area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI labelsAug 19, 2021
@ghost
Copy link

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

Issue Details

Just as the title says - remove the restriction that we do not propagate constants for small-typed trees. It is safe because VNadds the necessary truncating casts when evaluating the assignment.

Now, small-typed nodes themselves are a bit rare, but one scenario where they come up is in field-by-field copying of promoted structs, which is where practically all the diffs for this change come from.

The substantial code here is only in the third commit, the rest is miscellaneous cleanup.

Diffs for this change:win-x64

Author:SingleAccretion
Assignees:-
Labels:

area-CodeGen-coreclr,community-contribution

Milestone:-

@SingleAccretionSingleAccretion marked this pull request as ready for reviewAugust 19, 2021 16:33
@JulieLeeMSFT
Copy link
Member

CC @dotnet/jit-contrib please review the community PR.

@JulieLeeMSFTJulieLeeMSFT added this to the7.0.0 milestoneSep 7, 2021
Copy link
Member

@jakobbotschjakobbotsch left a comment

Choose a reason for hiding this comment

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

This looks good to me, thanks!

Because this is an impactful change, I think stress testing is warranted for this PR. SPMI replay already revealed one bug (#57450), there may be more.

I'll try running Fuzzlyn with this for a while before we merge it, and let me kick off some more CI legs.

SingleAccretion reacted with heart emoji
@jakobbotsch
Copy link
Member

/azp run runtime-coreclr jitstress, outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch
Copy link
Member

/azp run runtime-coreclr outerloop

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jakobbotsch
Copy link
Member

I ran Fuzzlyn for a while and didn't find anything that looked specific to this PR. The failures look like#58481.

@jakobbotschjakobbotsch merged commit84bad7e intodotnet:mainSep 10, 2021
@jakobbotsch
Copy link
Member

Thanks!

SingleAccretion reacted with thumbs up emoji

@SingleAccretionSingleAccretion deleted the Enable-GCP-For-Small-Types branchSeptember 10, 2021 15:16
@ghostghost locked asresolvedand limited conversation to collaboratorsNov 3, 2021
Sign up for freeto subscribe to this conversation on GitHub. Already have an account?Sign in.
Reviewers

@jakobbotschjakobbotschjakobbotsch approved these changes

Assignees

@SingleAccretionSingleAccretion

Labels
area-CodeGen-coreclrCLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMIcommunity-contributionIndicates that the PR has been added by a community member
Projects
None yet
Milestone
7.0.0
Development

Successfully merging this pull request may close these issues.

3 participants
@SingleAccretion@JulieLeeMSFT@jakobbotsch

[8]ページ先頭

©2009-2025 Movatter.jp