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

Revisit the handling of SIMD types during crossgen #10152

Open
CarolEidt opened this issue Apr 14, 2018 · 1 comment
Open

Revisit the handling of SIMD types during crossgen #10152

CarolEidt opened this issue Apr 14, 2018 · 1 comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI design-discussion Ongoing discussion about design without consensus tenet-performance Performance related issue
Milestone

Comments

@CarolEidt
Copy link
Contributor

CarolEidt commented Apr 14, 2018

See the comments on PR dotnet/coreclr#17543.

During crossgen, the JIT sets featureSIMD to false but continues to generate code for calls to fixed-size SIMD types. While this is correct, it means that any use of these types in crossgen'd code is quite inefficient.

On x86/x64 this may have some actual benefit due to the fact that we don't know whether the JIT'd code that is generated at runtime will use AVX or SSE encodings. However, this is somewhat inconsistent, as we generate SSE encodings for other operations.

On Arm64, a change was made (#14633) to enable SIMD during crossgen. However, the importing of static field helpers is not calling impNormStructType() which led to #9799. Adding a call to impNormStructType() here: https://github.com/dotnet/coreclr/blob/master/src/jit/importer.cpp#L13570 when lclType == TYP_STRUCT seemed to fix that issue.

We should consider whether to add support for fixed- or known- size SIMD types during crossgen, across architectures.

category:cq
theme:vector-codegen
skill-level:intermediate
cost:small
impact:medium

@CarolEidt
Copy link
Contributor Author

As much as I'd like to see us improve this for 3.0, I think it will have to be deferred to future.

@msftgits msftgits transferred this issue from dotnet/coreclr Jan 31, 2020
@msftgits msftgits added this to the Future milestone Jan 31, 2020
@BruceForstall BruceForstall added the JitUntriaged CLR JIT issues needing additional triage label Oct 28, 2020
@CarolEidt CarolEidt removed their assignment Dec 4, 2020
@TIHan TIHan removed the JitUntriaged CLR JIT issues needing additional triage label Oct 31, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area-CodeGen-coreclr CLR JIT compiler in src/coreclr/src/jit and related components such as SuperPMI design-discussion Ongoing discussion about design without consensus tenet-performance Performance related issue
Projects
None yet
Development

No branches or pull requests

4 participants