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: broaden cloning invariant checks #70232

Merged

Conversation

AndyAyersMS
Copy link
Member

Streamline call effects checks. Use wider bit vectors.

Closes #70100.

Streamline call effects checks. Use wider bit vectors.

Closes dotnet#70100.
@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 Jun 4, 2022
@ghost ghost assigned AndyAyersMS Jun 4, 2022
@ghost
Copy link

ghost commented Jun 4, 2022

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

Issue Details

Streamline call effects checks. Use wider bit vectors.

Closes #70100.

Author: AndyAyersMS
Assignees: -
Labels:

area-CodeGen-coreclr

Milestone: -

@AndyAyersMS
Copy link
Member Author

Unsurprisingly, leads to more cloning. Some fairly sizeable regressions.

We probably need to consider backing off cloning really large loops, especially if evidence of benefit is thin.

@BruceForstall PTAL
cc @dotnet/jit-contrib

Comment on lines +5961 to +5964
// If caller is worried about possible indirect effects, check
// what we know about the calls in the loop.
//
if (inds != 0)
Copy link
Contributor

Choose a reason for hiding this comment

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

Are any of the callers worried?

(I do not see us pass anything but VR_NONE for inds).

Copy link
Member Author

Choose a reason for hiding this comment

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

You're right, nobody actually cares right now. And there are other parts of the analysis that are likewise unused.

I'm deliberately leaving it for now. It's possible we'll run across cases where we want to try and use it for something.

@AndyAyersMS
Copy link
Member Author

Failure is #70305.

@AndyAyersMS AndyAyersMS merged commit bab1a1f into dotnet:main Jun 7, 2022
@ghost ghost locked as resolved and limited conversation to collaborators Jul 7, 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.

JIT: cloning invariant analysis seems oddly limited
3 participants