llvm-project/clang/lib/Headers
Saleem Abdulrasool c17d9b4b12 headers: optionalise some generated resource headers
This splits out the generated headers and conditonalises them upon the
target being enabled.

The motivation here is that the RISCV header alone added 10MB to the
resource directory, which was previously at 10MB, increasing the build
size and time. This header is contributing ~50% of the size of the
resource headers (~10MB).

The ARM generated headers are contributing about ~10% or 1MB.

This could be extended further adding only the static resource headers
for the targets that the LLVM build supports.

The changes to the tests for ARM mirror what the RISCV target already
did and rnk identified as a possible issue.

Testing:
  cmake -G Ninja -D LLVM_TARGETS_TO_BUILD=X86 -D LLVM_ENABLE_PROJECTS="clang;lld" ../clang
  ninja check-clang

Differential Revision: https://reviews.llvm.org/D112890
Reviewed By: craig.topper
2021-11-09 22:30:29 +00:00
..
cuda_wrappers [CUDA] Work around compatibility issue with libstdc++ 11.1.0 2021-05-24 11:07:09 -07:00
openmp_wrappers [AMDGPU][OpenMP] Use complex definitions from complex_cmath.h 2021-09-09 10:55:17 +05:30
ppc_wrappers [Clang] [PowerPC] Fix header include typo in smmintrin.h 2021-10-11 10:44:08 +08:00
CMakeLists.txt headers: optionalise some generated resource headers 2021-11-09 22:30:29 +00:00
__clang_cuda_builtin_vars.h [CUDA] Added conversion functions to builtin vars. 2020-09-24 14:33:04 -07:00
__clang_cuda_cmath.h [OpenMP][CUDA][FIX] Use the new `remquo` overload only for OpenMP 2020-10-27 23:52:59 -05:00
__clang_cuda_complex_builtins.h [OpenMP][AMDGCN] Enable complex functions 2021-08-24 12:40:41 +05:30
__clang_cuda_device_functions.h [clang] Replace asm with __asm__ in cuda header 2021-08-05 18:46:57 +01:00
__clang_cuda_intrinsics.h [CUDA] Provide address space conversion builtins. 2021-10-12 14:56:39 -07:00
__clang_cuda_libdevice_declares.h [OpenMP] Make CUDA math library functions SPMD amenable 2021-09-10 14:52:45 -04:00
__clang_cuda_math.h [NFC][CUDA] Fix order of round(f) definition in __clang_cuda_math.h for non-LP64. 2021-07-02 21:55:48 +02:00
__clang_cuda_math_forward_declares.h [HIP] Add signbit(long double) decl 2021-01-14 18:23:37 +00:00
__clang_cuda_runtime_wrapper.h [cuda] Add address space predicate funuctions. 2021-10-19 16:20:14 -04:00
__clang_cuda_texture_intrinsics.h [CUDA] remove unneeded includes from CUDA-related headers. 2021-10-06 17:20:21 -07:00
__clang_hip_cmath.h [OpenMP][AMDGCN] Initial math headers support 2021-08-02 14:38:52 +00:00
__clang_hip_libdevice_declares.h [HIP] Clean up llvm intrinsics using __asm 2021-05-13 18:55:51 +00:00
__clang_hip_math.h [openmp] Annotate tmp variables with omp_thread_mem_alloc 2021-08-19 02:22:11 +01:00
__clang_hip_runtime_wrapper.h [HIP] Fix no matching constructor for init of shared_ptr and malloc 2021-07-22 14:32:41 +00:00
__stddef_max_align_t.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
__wmmintrin_aes.h [X86] Add parentheses around casts in some of the X86 intrinsic headers. 2021-08-13 09:36:16 -07:00
__wmmintrin_pclmul.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
adxintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
altivec.h [NFC] Update vec_extract builtin signatures to take signed int. 2021-10-08 15:09:53 -05:00
ammintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
amxintrin.h [X86] Add missing __inline__ to functions in amxintrin.h 2021-08-20 09:35:02 -07:00
arm64intr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
arm_acle.h [AArch64] Implement __rndr, __rndrrs intrinsics 2021-03-15 17:51:48 +00:00
arm_cmse.h [ARM][CMSE] Add CMSE header and builtins 2019-12-12 15:01:14 +00:00
armintr.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx2intrin.h [X86] Add parentheses around casts in some of the X86 intrinsic headers. 2021-08-13 09:36:16 -07:00
avx512bf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512bitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512bwintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512cdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512dqintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512erintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512fintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512fp16intrin.h [X86][FP16] Add more builtins to avoid multi evaluation problems & add 2 missed intrinsics 2021-09-27 09:27:04 +08:00
avx512ifmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512ifmavlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512pfintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmi2intrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vbmiintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vbmivlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbf16intrin.h [X86] Enable intrinsics that convert float and bf16 data to each other 2019-06-11 01:17:28 +00:00
avx512vlbitalgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vlbwintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vlcdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vldqintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vlfp16intrin.h [X86][FP16] Change the order of the operands in complex FMA intrinsics to allow swap between the mul operands. 2021-09-23 11:02:48 +08:00
avx512vlintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vlvbmi2intrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vlvnniintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
avx512vlvp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vnniintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vp2intersectintrin.h [X86] Add VP2INTERSECT instructions 2019-05-31 06:09:35 +00:00
avx512vpopcntdqintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avx512vpopcntdqvlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
avxintrin.h [X86][AVX] Update _mm256_loadu2_m128* intrinsics to use _mm256_set_m128* (PR51796) 2021-09-09 19:15:48 +01:00
avxvnniintrin.h [X86] Support Intel avxvnni 2020-10-31 12:39:51 +08:00
bmi2intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
bmiintrin.h Add header guards for header files that should not be included on the PS4 platform. 2020-04-30 16:17:34 -07:00
builtins.h [Clang] Add an empty builtins.h file. 2021-07-16 12:50:04 -05:00
cet.h Add cet.h for writing CET-enabled assembly code 2020-05-19 14:03:17 +08:00
cetintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cldemoteintrin.h [X86] Support intrinsic _mm_cldemote 2020-03-12 10:03:41 +08:00
clflushoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clwbintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
clzerointrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
cpuid.h [X86] AVX512FP16 instructions enabling 1/6 2021-08-10 12:46:01 +08:00
crc32intrin.h [X86] Add CRC32 feature. 2021-09-06 17:24:30 +08:00
emmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
enqcmdintrin.h [X86] Add ENQCMD instructions 2019-06-06 08:28:42 +00:00
f16cintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
float.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fma4intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fmaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
fxsrintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
gfniintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
hexagon_circ_brev_intrinsics.h [hexagon] Add {hvx,}hexagon_{protos,circ_brev...} 2021-06-30 22:58:56 -05:00
hexagon_protos.h [hexagon] Add {hvx,}hexagon_{protos,circ_brev...} 2021-06-30 22:58:56 -05:00
hexagon_types.h [hexagon] Add {hvx,}hexagon_{protos,circ_brev...} 2021-06-30 22:58:56 -05:00
hresetintrin.h [X86] Add HRESET instruction. 2020-10-13 08:47:26 +08:00
htmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
htmxlintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
hvx_hexagon_protos.h [hexagon] Add {hvx,}hexagon_{protos,circ_brev...} 2021-06-30 22:58:56 -05:00
ia32intrin.h [X86] Add CRC32 feature. 2021-09-06 17:24:30 +08:00
immintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
intrin.h [clang] Don't mark _ReadBarrier, _ReadWriteBarrier, _WriteBarrier deprecated 2021-10-06 10:50:02 -04:00
inttypes.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
invpcidintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
iso646.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
keylockerintrin.h [X86] Adjust Keylocker handle mem size 2021-09-13 18:03:27 +08:00
limits.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lwpintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
lzcntintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm3dnow.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
mm_malloc.h [clang] [Headers] Use the corresponding _aligned_free or __mingw_aligned_free in _mm_free 2020-12-04 11:34:12 +02:00
mmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
module.modulemap [Clang][SVE] Parse builtin type string for scalable vectors 2020-03-15 14:34:52 +00:00
movdirintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
msa.h [Mips] Add intrinsics for 4-byte and 8-byte MSA loads/stores. 2020-02-11 11:47:30 +01:00
mwaitxintrin.h [X86] Mark various pointer arguments in builtins as const 2019-12-19 11:42:11 -08:00
nmmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
opencl-c-base.h Revert "[OpenCL] Allow optional __generic in __remove_address_space utility" 2021-11-09 09:42:17 +00:00
opencl-c.h [SPIR-V] Add SPIR-V triple and clang target info. 2021-11-08 13:34:10 +00:00
pconfigintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
pkuintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
pmmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
popcntintrin.h [X86] Enable constexpr on POPCNT intrinsics (PR31446) 2020-08-20 21:38:04 +01:00
prfchwintrin.h prfchwintrin.h: Make _m_prefetchw take a pointer to volatile (PR49124) 2021-08-02 15:16:04 +02:00
ptwriteintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rdseedintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
rtmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
s390intrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
serializeintrin.h [X86] Add SERIALIZE instruction. 2020-04-02 16:19:23 +08:00
sgxintrin.h [X86] Make `x86intrin.h`, `immintrin.h` includable with `-fno-gnu-inline-asm`. 2019-05-13 22:40:11 +00:00
shaintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
smmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
stdalign.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdarg.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdatomic.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stdbool.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
stddef.h Revert Include corecrt.h in stddef.h and vcruntime.h in stdarg.h to improve MS compatibility. 2019-05-08 22:01:20 +00:00
stdint.h AIX system headers need stdint.h and inttypes.h to be re-enterable 2019-06-20 15:36:32 +00:00
stdnoreturn.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tbmintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tgmath.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
tmmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
tsxldtrkintrin.h [X86] Add TSXLDTRK instructions. 2020-04-09 13:17:29 +08:00
uintrintrin.h [X86] Enable compilation of user interrupt handlers. 2021-04-23 11:43:57 +08:00
unwind.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vadefs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vaesintrin.h [X86] Don't define vpclmulqdq or vaes intrinsics in the headers unless avx512fintrin.h has been included. 2021-03-28 11:26:30 -07:00
varargs.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
vecintrin.h [SystemZ] Add support for new cpu architecture - arch14 2021-07-26 16:57:28 +02:00
vpclmulqdqintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
waitpkgintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wasm_simd128.h [WebAssembly] Restore builtins and intrinsics for pmin/pmax 2021-08-20 09:21:31 -07:00
wbnoinvdintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
wmmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
x86gprintrin.h [X86] Add CRC32 feature. 2021-09-06 17:24:30 +08:00
x86intrin.h Add header guards for header files that should not be included on the PS4 platform. 2020-04-30 16:17:34 -07:00
xmmintrin.h Check supported architectures in sseXYZ/avxXYZ headers 2021-09-14 09:57:54 +02:00
xopintrin.h [X86] Add parentheses around casts in X86 intrinsic headers. 2021-08-14 18:14:44 -07:00
xsavecintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsaveintrin.h [X86] Remove semicolons at the end of intrinsics implemented as macros so they can be used as arguments to other intrinsics. 2019-05-19 01:01:52 +00:00
xsaveoptintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xsavesintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00
xtestintrin.h Move the builtin headers to use the new license file header. 2019-04-08 20:51:30 +00:00