dyung created this revision. dyung added a reviewer: craig.topper. dyung added a project: clang.
For the PS4 platform, we want to exclude certain headers from being included because we do not support the features they provide. So for the headers we want to exclude, this change adds a check whether __ORBIS__ is defined and excludes the header from being included when it is. Compilers targeting the PS4 define __ORBIS__. Repository: rG LLVM Github Monorepo https://reviews.llvm.org/D70348 Files: clang/lib/Headers/immintrin.h clang/lib/Headers/x86intrin.h
Index: clang/lib/Headers/x86intrin.h =================================================================== --- clang/lib/Headers/x86intrin.h +++ clang/lib/Headers/x86intrin.h @@ -38,15 +38,18 @@ #include <tbmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__LWP__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__LWP__) #include <lwpintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__MWAITX__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__MWAITX__) #include <mwaitxintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLZERO__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__CLZERO__) #include <clzerointrin.h> #endif Index: clang/lib/Headers/immintrin.h =================================================================== --- clang/lib/Headers/immintrin.h +++ clang/lib/Headers/immintrin.h @@ -40,11 +40,13 @@ #include <wmmintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLFLUSHOPT__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__CLFLUSHOPT__) #include <clflushoptintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLWB__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__CLWB__) #include <clwbintrin.h> #endif @@ -60,7 +62,8 @@ #include <f16cintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VPCLMULQDQ__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__VPCLMULQDQ__) #include <vpclmulqdqintrin.h> #endif @@ -79,125 +82,143 @@ #include <popcntintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__FMA__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__FMA__) #include <fmaintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512F__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512F__) #include <avx512fintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VL__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512VL__) #include <avx512vlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BW__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512BW__) #include <avx512bwintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BITALG__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512BITALG__) #include <avx512bitalgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512CD__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512CD__) #include <avx512cdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VPOPCNTDQ__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512VPOPCNTDQ__) #include <avx512vpopcntdqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VPOPCNTDQ__)) #include <avx512vpopcntdqvlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VNNI__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512VNNI__) #include <avx512vnniintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512VNNI__)) #include <avx512vlvnniintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512DQ__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512DQ__) #include <avx512dqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BITALG__)) #include <avx512vlbitalgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BW__)) #include <avx512vlbwintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512CD__)) #include <avx512vlcdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512DQ__)) #include <avx512vldqintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512ER__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512ER__) #include <avx512erintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512IFMA__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512IFMA__) #include <avx512ifmaintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512IFMA__) && defined(__AVX512VL__)) #include <avx512ifmavlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512VBMI__) #include <avx512vbmiintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VBMI__) && defined(__AVX512VL__)) #include <avx512vbmivlintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512VBMI2__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512VBMI2__) #include <avx512vbmi2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VBMI2__) && defined(__AVX512VL__)) #include <avx512vlvbmi2intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512PF__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512PF__) #include <avx512pfintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__AVX512BF16__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__AVX512BF16__) #include <avx512bf16intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ (defined(__AVX512VL__) && defined(__AVX512BF16__)) #include <avx512vlbf16intrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PKU__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__PKU__) #include <pkuintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__VAES__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__VAES__) #include <vaesintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__GFNI__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__GFNI__) #include <gfniintrin.h> #endif @@ -347,12 +368,14 @@ #endif #endif /* __MOVBE */ -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RTM__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__RTM__) #include <rtmintrin.h> #include <xtestintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHA__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__SHA__) #include <shaintrin.h> #endif @@ -363,19 +386,23 @@ /* No feature check desired due to internal MSC_VER checks */ #include <xsaveintrin.h> -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEOPT__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__XSAVEOPT__) #include <xsaveoptintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVEC__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__XSAVEC__) #include <xsavecintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__XSAVES__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__XSAVES__) #include <xsavesintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SHSTK__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__SHSTK__) #include <cetintrin.h> #endif @@ -383,40 +410,48 @@ * whereas others are also available at all times. */ #include <adxintrin.h> -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__RDSEED__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__RDSEED__) #include <rdseedintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WBNOINVD__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__WBNOINVD__) #include <wbnoinvdintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__CLDEMOTE__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__CLDEMOTE__) #include <cldemoteintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__WAITPKG__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__WAITPKG__) #include <waitpkgintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || \ - defined(__MOVDIRI__) || defined(__MOVDIR64B__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__MOVDIRI__) || defined(__MOVDIR64B__) #include <movdirintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PCONFIG__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__PCONFIG__) #include <pconfigintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__SGX__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__SGX__) #include <sgxintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__PTWRITE__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__PTWRITE__) #include <ptwriteintrin.h> #endif -#if !defined(_MSC_VER) || __has_feature(modules) || defined(__INVPCID__) +#if !(defined(_MSC_VER) || defined(__ORBIS__)) || __has_feature(modules) || \ + defined(__INVPCID__) #include <invpcidintrin.h> #endif
_______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org https://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits