Skip to content

Improve crossgen HWIntrinsics handling#34849

Merged
tannergooding merged 2 commits into
dotnet:masterfrom
saucecontrol:crossgen-fix
Apr 14, 2020
Merged

Improve crossgen HWIntrinsics handling#34849
tannergooding merged 2 commits into
dotnet:masterfrom
saucecontrol:crossgen-fix

Conversation

@saucecontrol
Copy link
Copy Markdown
Member

Fixes #34826

In addition to the fix for #34826, I made a couple of improvements:

  1. Keep ArmBase and AdvSimd as Intrinsic unconditionally on ARM64 to give parity with the way the required SSE and SSE2 ISAs are handled on xArch.
  2. Allow all X64 IsSupported checks to remain Intrinsic on x86, so the code under them can be treated as dead.

This update shaves 4KiB off the current x86 R2R System.Private.CoreLib image, mostly by trimming code protected by Bmi1.X64.IsSupported and Lzcnt.X64.IsSupported.

cc @davidwrighton @tannergooding

@ghost
Copy link
Copy Markdown

ghost commented Apr 11, 2020

Tagging @ViktorHofer as an area owner. If you would like to be tagged for a label, please notify danmosemsft.

Comment thread src/coreclr/src/zap/zapper.cpp
Comment thread src/coreclr/src/zap/zapinfo.cpp
Comment thread src/coreclr/src/zap/zapinfo.cpp Outdated
Comment thread src/coreclr/src/zap/zapinfo.cpp Outdated
Comment thread src/coreclr/src/zap/zapinfo.cpp
@tannergooding
Copy link
Copy Markdown
Member

Ping @davidwrighton for the secondary sign-off.

@tannergooding tannergooding merged commit 5cab5f0 into dotnet:master Apr 14, 2020
@saucecontrol saucecontrol deleted the crossgen-fix branch April 14, 2020 21:04
@ghost ghost locked as resolved and limited conversation to collaborators Dec 9, 2020
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

FilterNamedIntrinsicMethodAttribs checks className for unsupported isas not classname

4 participants