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

Fix perf regression in Type.op_Equality #70678

Closed
wants to merge 1 commit into from
Closed

Conversation

EgorBo
Copy link
Member

@EgorBo EgorBo commented Jun 13, 2022

Fixes #59704 regression.
There were two problems in there:

  1. typeof(RuntimeType) wasn't CSE'd - it's handled with JIT: Enable CSE for CLS/STR const handles #70580
  2. isinst produces complicated branch layout we're not there to fix in JIT yet (e.g. JIT: optRedundantBranches misses an opportunity  #70480 and a few more existing issues).

Unfortunately 1) CSE won't work without this PR's change (because of blocks' weights impacting CSE decisions)

codegen diff: https://www.diffchecker.com/rVgqsQnY

@ghost ghost assigned EgorBo Jun 13, 2022
@dotnet-issue-labeler
Copy link

I couldn't figure out the best area label to add to this PR. If you have write-permissions please help me learn by adding exactly one area label.

@EgorBo EgorBo closed this Jun 13, 2022
@EgorBo
Copy link
Member Author

EgorBo commented Jun 13, 2022

Ah, it's actually recursive, I didn't realize when I was simulating these changes 😄

@ghost ghost locked as resolved and limited conversation to collaborators Jul 13, 2022
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Regressions in System.Tests.Perf_Type
1 participant