summaryrefslogtreecommitdiffstats
path: root/contrib/llvm/tools/clang/lib/Headers/module.modulemap
diff options
context:
space:
mode:
authordim <dim@FreeBSD.org>2015-08-18 19:03:59 +0000
committerdim <dim@FreeBSD.org>2015-08-18 19:03:59 +0000
commite46ef01b21774ac0eb2e5b0b1d30b99d484b73a3 (patch)
treec960e1a0197e941e7aa2df8210ab3603b2cb8a05 /contrib/llvm/tools/clang/lib/Headers/module.modulemap
parent51e716cb71375836e40df804bbce03319e01649c (diff)
downloadFreeBSD-src-e46ef01b21774ac0eb2e5b0b1d30b99d484b73a3.zip
FreeBSD-src-e46ef01b21774ac0eb2e5b0b1d30b99d484b73a3.tar.gz
Import r243925 from the upstream clang release_37 branch:
Reverting r239883 and r240720: ------------------------------------------------------------------------ r239883 | echristo | 2015-06-17 00:09:32 -0700 (Wed, 17 Jun 2015) | 16 lines Update the intel intrinsic headers to use the target attribute support. This involved removing the conditional inclusion and replacing them with target attributes matching the original conditional inclusion and checks. The testcase update removes the macro checks for each file and replaces them with usage of the __target__ attribute, e.g.: int __attribute__((__target__(("sse3")))) foo(int a) { _mm_mwait(0, 0); return 4; } This usage does require the enclosing function have the requisite __target__ attribute for inlining and code generation - also for any macro intrinsic uses in the enclosing function. There's no change for existing uses of the intrinsic headers. ------------------------------------------------------------------------ ------------------------------------------------------------------------ r240720 | silvas | 2015-06-25 16:22:11 -0700 (Thu, 25 Jun 2015) | 6 lines Remove `requires` for x86 CPU features. Ever since the target attributes change, we don't need to guard these headers with `requires`. Actually it's a bit worse, because if we do then they are included textually under the covers, causing declarations to appear in submodules they aren't supposed to be in. ------------------------------------------------------------------------ This reverts the changes to the intrinsics headers in trunk, which could result in some ports' configure scripts misdetecting SSE (and higher) support.
Diffstat (limited to 'contrib/llvm/tools/clang/lib/Headers/module.modulemap')
-rw-r--r--contrib/llvm/tools/clang/lib/Headers/module.modulemap25
1 files changed, 25 insertions, 0 deletions
diff --git a/contrib/llvm/tools/clang/lib/Headers/module.modulemap b/contrib/llvm/tools/clang/lib/Headers/module.modulemap
index 0fc70a8..8fcb5bc 100644
--- a/contrib/llvm/tools/clang/lib/Headers/module.modulemap
+++ b/contrib/llvm/tools/clang/lib/Headers/module.modulemap
@@ -32,117 +32,142 @@ module _Builtin_intrinsics [system] [extern_c] {
}
explicit module cpuid {
+ requires x86
header "cpuid.h"
}
explicit module mmx {
+ requires mmx
header "mmintrin.h"
}
explicit module f16c {
+ requires f16c
header "f16cintrin.h"
}
explicit module sse {
+ requires sse
export mmx
export sse2 // note: for hackish <emmintrin.h> dependency
header "xmmintrin.h"
}
explicit module sse2 {
+ requires sse2
export sse
header "emmintrin.h"
}
explicit module sse3 {
+ requires sse3
export sse2
header "pmmintrin.h"
}
explicit module ssse3 {
+ requires ssse3
export sse3
header "tmmintrin.h"
}
explicit module sse4_1 {
+ requires sse41
export ssse3
header "smmintrin.h"
}
explicit module sse4_2 {
+ requires sse42
export sse4_1
header "nmmintrin.h"
}
explicit module sse4a {
+ requires sse4a
export sse3
header "ammintrin.h"
}
explicit module avx {
+ requires avx
export sse4_2
header "avxintrin.h"
}
explicit module avx2 {
+ requires avx2
export avx
header "avx2intrin.h"
}
explicit module avx512f {
+ requires avx512f
export avx2
header "avx512fintrin.h"
}
explicit module avx512er {
+ requires avx512er
header "avx512erintrin.h"
}
explicit module bmi {
+ requires bmi
header "bmiintrin.h"
}
explicit module bmi2 {
+ requires bmi2
header "bmi2intrin.h"
}
explicit module fma {
+ requires fma
header "fmaintrin.h"
}
explicit module fma4 {
+ requires fma4
export sse3
header "fma4intrin.h"
}
explicit module lzcnt {
+ requires lzcnt
header "lzcntintrin.h"
}
explicit module popcnt {
+ requires popcnt
header "popcntintrin.h"
}
explicit module mm3dnow {
+ requires mm3dnow
header "mm3dnow.h"
}
explicit module xop {
+ requires xop
export fma4
header "xopintrin.h"
}
explicit module aes_pclmul {
+ requires aes, pclmul
header "wmmintrin.h"
export aes
export pclmul
}
explicit module aes {
+ requires aes
header "__wmmintrin_aes.h"
}
explicit module pclmul {
+ requires pclmul
header "__wmmintrin_pclmul.h"
}
}
OpenPOWER on IntegriCloud