Adds support for the Neoverse V2 CPU to the AArch64 backend.
Details
Diff Detail
- Repository
- rG LLVM Github Monorepo
Event Timeline
- Changed lists of tuning features.
- Removed redundant arch features from list.
- Combined neoverse-v2 and neoverse-n2 cases together in AArch64Subtarget.
VScaleForTuning is 1 for N2 and V2. It is 2 for V1. I though the V2 is more like the V1 than the N2?
Sorry. This is throughput right?
Hi @tschuett, Neoverse V2 will have 128-bit SVE vector lengths, hence VScaleForTuning should be 1.
llvm/lib/Target/AArch64/AArch64.td | ||
---|---|---|
1167 | Shouldn't FeatureMTE (Enable Memory Tagging Extension) be present, too (as in NeoverseN2)? |
llvm/lib/Target/AArch64/AArch64.td | ||
---|---|---|
1167 | It is already included in the patch, i.e. see above: FeatureMTE, FeatureRandGen]; |
llvm/include/llvm/Support/AArch64TargetParser.def | ||
---|---|---|
238 | MTE is implied by ARMV9A or missing? |
llvm/include/llvm/Support/AArch64TargetParser.def | ||
---|---|---|
239 | Should AEK_SVE2BITPERM be present? (Noticed that N2 has AArch64::AEK_SVE2 | AArch64::AEK_SVE2BITPERM). | |
llvm/lib/Target/AArch64/AArch64.td | ||
1166 | FeatureNEON may be redundant (note that it's in HasV8_3aOps). OTOH, NeoverseV1 also has FeatureCrypto: is this no longer the case for NeoverseV2? | |
llvm/lib/Target/AArch64/AArch64Subtarget.cpp | ||
204 | Are CacheLineSize (= 0 by default) and MaxInterleaveFactor (= 2 by default) the same / correct for both N2 and V2? |
llvm/include/llvm/Support/AArch64TargetParser.def | ||
---|---|---|
239 | Good spot! I've made this consistent with the definition in AArch64.td. | |
llvm/lib/Target/AArch64/AArch64.td | ||
1166 | HasV8_3aOps does imply FeatureNEON, but only indirectly through FeatureComplxNum. I thought it was clearer to explicitly add it, since it doesn't do any harm. With regards to FeatureCrypto, I am following the precedent set for Cortex-A510, Cortex-A710 and Cortex-X2 where it also wasn't enabled by default. The user can always enable crypto with -mcpu=neoverse-v2+crypto if required. | |
llvm/lib/Target/AArch64/AArch64Subtarget.cpp | ||
204 | I don't know the answer for neoverse-v2 I'm afraid, and neoverse-n2 isn't part of this patch. Performance tuning can be done in a later patch I think. |
clang/docs/ReleaseNotes.rst | ||
---|---|---|
407 | support for Neoverse V2 via the flag? |
support for Neoverse V2 via the flag?