[PATCH] D123498: [clang] Adding Platform/Architecture Specific Resource Header Installation Targets
David Spickett via Phabricator via cfe-commits
cfe-commits at lists.llvm.org
Thu Apr 14 02:33:18 PDT 2022
DavidSpickett added a comment.
> Sure, we can have an AArch64 specific section. I have no AArch64/arm background to comment on what the lists should look like. Could you provide a pointer on how to decide what should be AArch64 specific? Thank you!
I looked through the list and here's what goes where:
arm_acle.h - both
arm_cmse.h - Arm only (CMSE is an M profile feature)
armintr.h - Arm only (Windows intrinsics)
arm64intr.h - AArch64 only (Windows intrinsics)
arm_neon.h - both
arm_fp16.h - both
Only includes AArch64 stuff at this time but according to the docs:
FEAT_FP16 supports:
• Half-precision data-processing instructions for Advanced SIMD and floating-point in both
AArch64 and AArch32 states.
arm_sve.h - AArch64 (SVE is AArch64 exclusive)
arm_bf16.h - AArch64 only
"FEAT_BF16 supports the BFloat16, or BF16, 16-bit floating-point storage format in AArch64 state."
arm_mve.h - Arm only (MVE is an M profile feature)
arm_cde.h - Arm only (CDE is an M profile feature)
arm_neon_sve_bridge.h - AArch64 only (SVE is AArch64 exclusive)
@momchil.velikov Please double check I got that right.
So you'd probably want to have an `arm_common`, like you have for the `core`. Arm installs `arm_common` and `arm`, AArch64 installs `arm_common` and `aarch64`.
Not sure if you'd expect the Windows intrisics files to show up in the `windows` headers. My guess is no because you'd configure with Windows and Arm, or Windows and AArch64 headers. `windows` would just be arch agnostic stuff.
This split reduces each install by 4 headers. So hardly amazing disk space wise but I think your goal is more to only have relevant files and this achieves that.
> Then again a lot of Arm systems can run 32 bit code as well so there is a situation where you might include both.
I would guess that having two install targets makes it obvious that if you want 32 bit code you need to opt into both. (though I am biased since I'm already familiar with Arm)
Also, what's the feedback mechanism for issues with these listings? Say we add a new Arm header but forget to put it on these lists, who would be the first to notice? (I admit I'm not very familiar with the process of distributions)
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D123498/new/
https://reviews.llvm.org/D123498
More information about the cfe-commits
mailing list