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] x64 InitValueNumStoreStatics is 261k #85953

Closed
markples opened this issue May 8, 2023 · 1 comment · Fixed by #85945
Closed

[JIT] x64 InitValueNumStoreStatics is 261k #85953

markples opened this issue May 8, 2023 · 1 comment · Fixed by #85945
Assignees
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI
Milestone

Comments

@markples
Copy link
Member

markples commented May 8, 2023

It appears that the large set of #defines due to intrinsics causes the C++ compiler to stop optimizing, so we end up with a huge function for initializing the table.

@markples markples added the area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI label May 8, 2023
@markples markples self-assigned this May 8, 2023
@ghost ghost added the untriaged New issue has not been triaged by the area owner label May 8, 2023
@ghost
Copy link

ghost commented May 8, 2023

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

Issue Details

It appears that the large set of #defines due to intrinsics causes the C++ compiler to stop optimizing, so we end up with a huge function for initializing the table.

Author: markples
Assignees: markples
Labels:

area-CodeGen-coreclr

Milestone: -

@BruceForstall BruceForstall added this to the 8.0.0 milestone May 8, 2023
@ghost ghost removed the untriaged New issue has not been triaged by the area owner label May 8, 2023
@BruceForstall BruceForstall removed the untriaged New issue has not been triaged by the area owner label May 8, 2023
@ghost ghost added the in-pr There is an active PR which will close this issue when it is merged label May 11, 2023
markples added a commit that referenced this issue Jun 5, 2023
It appears that the big #define for the intrinsics is causing InitValueNumStoreStatics to get big enough that C++ optimization ends up being disabled, which means a lot of constant operations aren't folded. This rewrites it as a const table. It adds some redundant information to the tables that we #include/#define in several places but currently includes many assertions that the old and new values match.

Local size change of release clrjit_win_x64_x64.dll: 2,001,920 -> 1,735,680.  InitValueNumStoreStatics (261k) is replaced by 1.2k of static data.

Resolves #85953
@ghost ghost removed the in-pr There is an active PR which will close this issue when it is merged label Jun 5, 2023
@dotnet dotnet locked as resolved and limited conversation to collaborators Jul 5, 2023
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 a pull request may close this issue.

2 participants