Uh oh!
There was an error while loading. Please reload this page.
Add predefined cpu names for --instruction-set (e.g. haswell) - #71911
Conversation
MichalStrehovsky
commented
Jul 10, 2022
Both ILC and crossgen can print out all allowed values for instruction-set (the ILC one starts around here: ). I would be nice if we could print out the supported macros too. |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
am11
commented
Jul 11, 2022
How was the set of (only 7) targets selected; based on their popularity or some other metric? For reference (x86):
|
EgorBo
commented
Jul 11, 2022
Yeah, just popularity from my opinion, I've seen mostly But I can add more, just didn't want to display a lot of irrelevant stuff in the help such as e.g. Another story is avx512 but we don't support that (except AvxVnni) |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
EgorBo
commented
Jul 12, 2022
@kant2002 I am leaving that up-for-grabs, it requires cpu-feature detection logic which is pretty bulky (for all platforms/archs) |
kant2002
commented
Jul 12, 2022
@EgorBo having this up-for-grabs is find for me. Just want to make sure that this aligned with overall goals and would be valuable addition. |
EgorBo
commented
Jul 12, 2022
|
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
EgorBo
commented
Jul 12, 2022
@tannergooding could you please re-review, did I address your feedback? |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
tannergooding
left a comment
There was a problem hiding this comment.
Thanks for the fixes. The current set looks correct to me according to the combination of official docs and what LLVM uses.
Happy for the crypto sets to be added if we talk with our friends at Intel/AMD/Arm first and get clarification.
This PR adds a few known CPUs as named groups of instructions sets. A similar approach is used in Clang/LLVM (e.g.
-march=skylake). It allows us to quickly specify instruction sets instead of listing all of them, e.g.:which is a sort of "generate me a binary for any modern x86 cpu". Instead of what we do today:
and the following functions:
will be prejitted to:
TODO: Implement
nativegroup name, but it's a way more complicated, not in this PR.cc @dotnet/crossgen-contrib, @dotnet/ilc-contrib @tannergooding