summaryrefslogtreecommitdiffstats
path: root/clang/lib/Headers/CMakeLists.txt
Commit message (Collapse)AuthorAgeFilesLines
...
* [CUDA] Re-land support for <complex> (r283683 and r283680).Justin Lebar2016-10-111-1/+13
| | | | | | | | | | | | | | | | | | | These were reverted in r283753 and r283747. The first patch added a header to the root 'Headers' install directory, instead of into 'Headers/cuda_wrappers'. This was fixed in the second patch, but by then the damage was done: The bad header stayed in the 'Headers' directory, continuing to break the build. We reverted both patches in an attempt to fix things, but that still didn't get rid of the header, so the Windows boostrap build remained broken. It's probably worth fixing up our cmake logic to remove things from the install dirs, but in the meantime, re-land these patches, since we believe they no longer have this bug. llvm-svn: 283907
* Revert r283683 because r283680 got reverted.Nico Weber2016-10-101-12/+1
| | | | llvm-svn: 283753
* Revert r283680.Nico Weber2016-10-101-1/+0
| | | | | | | | | | | | | Breaks bootstrap builds on (at least) Windows: In file included from D:\buildslave\clang-x64-ninja-win7\llvm\lib\Support\Allocator.cpp:14: In file included from D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/Support/Allocator.h:24: In file included from D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/ADT/SmallVector.h:20: In file included from D:\buildslave\clang-x64-ninja-win7\llvm\include\llvm/Support/MathExtras.h:19: D:\buildslave\clang-x64-ninja-win7\stage1.install\bin\..\lib\clang\4.0.0\include\algorithm(63,8) : error: unknown type name '__device__' inline __device__ const __T & llvm-svn: 283747
* [CUDA] Don't install cuda_wrappers/{algorithm,complex} into the main include ↵Justin Lebar2016-10-091-3/+12
| | | | | | | | | dir. This is obviously wrong -- if we do this, then all compiles will pick up these wrappers, which is not what we want. llvm-svn: 283683
* [CUDA] Support <complex> and std::min/max on the device.Justin Lebar2016-10-081-0/+3
| | | | | | | | | | | | | | | Summary: We do this by wrapping <complex> and <algorithm>. Tests are in the test-suite. Reviewers: tra Subscribers: jhen, beanz, cfe-commits, mgorny Differential Revision: https://reviews.llvm.org/D24979 llvm-svn: 283680
* [CUDA] Rename cuda_builtin_vars.h to __clang_cuda_builtin_vars.h.Justin Lebar2016-10-081-1/+1
| | | | | | | | | | | | Summary: This matches the idiom we use for our other CUDA wrapper headers. Reviewers: tra Subscribers: beanz, mgorny, cfe-commits Differential Revision: https://reviews.llvm.org/D24978 llvm-svn: 283679
* [mips] MSA intrinsics header fileSimon Dardis2016-09-201-0/+1
| | | | | | | | | | | This patch adds the msa.h header file containing the shorter names for the MSA instrinsics, e.g. msa_sll_b for builtin_msa_sll_b. Reviewers: vkalintiris, zoran.jovanovic Differential Review: https://reviews.llvm.org/D24674 llvm-svn: 281975
* Headers: Add ARM support to intrin.h for MSVC compatibilitySaleem Abdulrasool2016-08-061-0/+1
| | | | | | | | | | | | | | | | | This fixes compiling with headers from the Windows SDK for ARM, where the YieldProcessor function (in winnt.h) refers to _ARM_BARRIER_ISHST. The actual MSVC armintr.h contains a lot more definitions, but this is enough to build code that uses the Windows SDK but doesn't use ARM intrinsics directly. An alternative would to just keep the addition to intrin.h (to include armintr.h), but not actually ship armintr.h, instead having clang's intrin.h include armintr.h from MSVC's include directory. (That one works fine with clang, at least for building code that uses the Windows SDK.) Patch by Martin Storsjö! llvm-svn: 277928
* [Clang][Feature] Adding CLFLUSHOPT feature and intrinsic to clangMichael Zuckerman2016-07-051-0/+1
| | | | | | Differential Revision: http://reviews.llvm.org/D21792 llvm-svn: 274559
* s/Intrin.h/intrin.h/, trying to fix the build after r272701Hans Wennborg2016-06-141-1/+1
| | | | llvm-svn: 272702
* [OpenCL] Add the default header file opencl-c.h for OpenCL C languageYaxun Liu2016-05-301-0/+1
| | | | | | | | | | | | OpenCL has large number of "builtin" functions ("builtin" in the sense of OpenCL spec) which are defined in header files. To compile OpenCL kernels using these builtin functions, a header file is needed. This header file is based on the Khronos implementation (https://github.com/KhronosGroup/SPIR/blob/spirv-1.0/lib/Headers/opencl.h) with heavy refactoring. Re-commit after fixing failures on ppc64/systemz etc. Differential Revision: http://reviews.llvm.org/D18369 llvm-svn: 271197
* Revert r271136 [OpenCL] Add the default header file opencl-c.h for OpenCL C ↵Yaxun Liu2016-05-281-1/+0
| | | | | | language due to build failure on ppc64/hexagon/systemz. llvm-svn: 271144
* [OpenCL] Add the default header file opencl-c.h for OpenCL C languageYaxun Liu2016-05-281-0/+1
| | | | | | | | | | OpenCL has large number of "builtin" functions ("builtin" in the sense of OpenCL spec) which are defined in header files. To compile OpenCL kernels using these builtin functions, a header file is needed. This header file is based on the Khronos implementation (https://github.com/KhronosGroup/SPIR/blob/spirv-1.0/lib/Headers/opencl.h) with heavy refactoring. Differential Revision: http://reviews.llvm.org/D18369 llvm-svn: 271136
* Re-alphabetize this file list.Richard Smith2016-05-201-10/+10
| | | | llvm-svn: 270170
* [CUDA] Implement __ldg using intrinsics.Justin Lebar2016-05-191-0/+1
| | | | | | | | | | | | | | | | | | Summary: Previously it was implemented as inline asm in the CUDA headers. This change allows us to use the [addr+imm] addressing mode when executing ld.global.nc instructions. This translates into a 1.3x speedup on some benchmarks that call this instruction from within an unrolled loop. Reviewers: tra, rsmith Subscribers: jhen, cfe-commits, jholewinski Differential Revision: http://reviews.llvm.org/D19990 llvm-svn: 270150
* Add new intrinsic support for MONITORX and MWAITX instructionsAshutosh Nema2016-05-181-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Summary: MONITORX/MWAITX instructions provide similar capability to the MONITOR/MWAIT pair while adding a timer function, such that another termination of the MWAITX instruction occurs when the timer expires. The presence of the MONITORX and MWAITX instructions is indicated by CPUID 8000_0001, ECX, bit 29. The MONITORX and MWAITX instructions are intercepted by the same bits that intercept MONITOR and MWAIT. MONITORX instruction establishes a range to be monitored. MWAITX instruction causes the processor to stop instruction execution and enter an implementation-dependent optimized state until occurrence of a class of events. Opcode of MONITORX instruction is "0F 01 FA". Opcode of MWAITX instruction is "0F 01 FB". These opcode information is used in adding tests for the disassembler. These instructions are enabled for AMD's bdver4 architecture. Patch by Ganesh Gopalasubramanian! Reviewers: echristo, craig.topper Subscribers: RKSimon, joker.eph, llvm-commits, cfe-commits Differential Revision: http://reviews.llvm.org/D19796 llvm-svn: 269907
* [Clang][BuiltIn][AVX512] Adding intrinsics without mask for VBROADCAST and ↵Michael Zuckerman2016-04-271-0/+1
| | | | | | | | VPBROADCAST instruction set . Differential Revision: http://reviews.llvm.org/D19196 llvm-svn: 267696
* [Clang][AVX512][BuiltIn] Adding intrinsics of VGATHER{DPS|DPD} , ↵Michael Zuckerman2016-04-211-0/+1
| | | | | | | | VPGATHER{QD|QQ|DD|DQ} and VGATHERPF{0|1}{DPS|QPS|DPD|QPD} instruction set . Differential Revision: http://reviews.llvm.org/D19224 llvm-svn: 266983
* [CUDA] Add math forward declares to CUDA header wrapper.Justin Lebar2016-03-301-0/+1
| | | | | | | | | | | | | | | | | | Summary: This is necessary for a future patch which will make all constexpr functions implicitly host+device. cmath may declare constexpr functions, but these we do *not* want to be host+device. The forward declares added in this patch prevent this (because the rule will be, constexpr functions become implicitly host+device unless they're preceeded by a decl with __device__). Reviewers: tra Subscribers: cfe-commits, rnk, rsmith Differential Revision: http://reviews.llvm.org/D18539 llvm-svn: 264963
* [CLANG][AVX512][BUILTIN] Adding new feature flag headed files and new ↵Michael Zuckerman2016-03-071-0/+2
| | | | | | | | BUILTIN vpermi2varq{i|t}{128|256|512}{mask|maskz} Differential Revision: http://reviews.llvm.org/D17917 llvm-svn: 262834
* [CLANG][AVX512][BUILTIN] Adding new feature flag header file and new builtin ↵Michael Zuckerman2016-03-071-0/+2
| | | | | | | | vpmadd52{h|l}uq{128|256|512}{mask|maskz} Differential Revision: http://reviews.llvm.org/D17915 llvm-svn: 262820
* [CMake] Fixing install-clang-headers dependencies to depend on generating ↵Chris Bieneman2016-02-251-1/+1
| | | | | | the headers. llvm-svn: 261911
* [CUDA] Implemented device-side support functions in <cmath>.Artem Belevich2016-01-261-0/+1
| | | | | | | | | | | | | | | | CUDA expects math functions in std:: namespace to work on device side. In order to make it work with clang without allowing device-side code generation for functions w/o appropriate target attributes, this patch provides device-side implementations for <cmath> functions. Most of them call global-scope math functions provided by CUDA headers. In few cases we use clang builtins. Tested out-of tree by compiling and running thrust's unit_tests. https://github.com/thrust/thrust/tree/master/testing Differential Revision: http://reviews.llvm.org/D16593 llvm-svn: 258880
* [X86][PKU] add clang intrinsic for {RD|WR}PKRUAsaf Badouh2015-12-311-0/+1
| | | | | | Differential Revision: http://reviews.llvm.org/D15837 llvm-svn: 256672
* [CUDA] renamed cuda_runtime.h wrapper to __cuda_runtime.hArtem Belevich2015-12-161-1/+1
| | | | | | | | | | | | | | Currently it's easy to break CUDA compilation by passing "-isystem /path/to/cuda/include" to compiler which leads to compiler including real cuda_runtime.h from there instead of the wrapper we need. Renaming the wrapper ensures that we can include the wrapper regardless of user-specified include paths and files. Differential Revision: http://reviews.llvm.org/D15534 llvm-svn: 255802
* [CMake] Add a specific 'install-clang-headers' target.Argyrios Kyrtzidis2015-11-201-0/+9
| | | | llvm-svn: 253636
* [CUDA] Added a wrapper header for inclusion of stock CUDA headers.Artem Belevich2015-11-171-0/+1
| | | | | | | | | | | | | | | | | | | | Header files that come with CUDA are assuming split host/device compilation and are not usable by clang out of the box. With a bit of preprocessor magic it's possible to twist them into something clang can use. This wrapper always includes CUDA headers exactly the same way during host and device compilation passes and produces identical preprocessed content during host and device side compilation for sm_35 GPUs. Device compilation passes for older GPUs will see a smaller subset of device functions supported by particular GPU. The wrapper assumes specific contents of CUDA header files and works only with CUDA 7.0 and 7.5. Differential Revision: http://reviews.llvm.org/D13171 llvm-svn: 253388
* [X86] Add XSAVE intrinsic familyAmjad Aboud2015-10-131-0/+4
| | | | | | | | | | | | Add intrinsics for the XSAVE instructions (XSAVE/XSAVE64/XRSTOR/XRSTOR64) XSAVEOPT instructions (XSAVEOPT/XSAVEOPT64) XSAVEC instructions (XSAVEC/XSAVEC64) XSAVES instructions (XSAVES/XSAVES64/XRSTORS/XRSTORS64) Differential Revision: http://reviews.llvm.org/D13014 llvm-svn: 250158
* [SystemZ] Add support for vecintrin.h vector built-in functionsUlrich Weigand2015-07-301-0/+1
| | | | | | | | | | | | | | | | | | | This patch adds support for the System Z vector built-in functions. The API-defined header file has the name vecintrin.h. The user-level functions are defined in the same style as the clang version of altivec.h, making heavy use of the __overloadable__ and __always_inline__ attributes. Where possible the functions expand to generic operations rather than specific built-in functions, in the hope that that form can be optimised better. Where a built-in routine is specified to require an immediate integer argument, the __enable_if__ attribute is used to verify the argument is in fact constant and in the appropriate range. Based on a patch by Richard Sandiford. llvm-svn: 243643
* [X86] Add FXSR intrinsicsMichael Kuperstein2015-06-301-0/+1
| | | | | | | | | Add intrinsics for the FXSR instructions (FXSAVE/FXSAVE64/FXRSTOR/FXRSTOR64) These were previously declared in Intrin.h for MSVC compatibility, but now that we have them implemented, these declarations can be removed. llvm-svn: 241053
* [x86][AVX512CD] Add conflict and lzcnt intrinsics in their 512bit versionsAsaf Badouh2015-06-291-0/+1
| | | | | | | | | include tests review http://reviews.llvm.org/D10795 llvm-svn: 240941
* Add new file from r240741 to CMakeLists.txt.Nico Weber2015-06-261-0/+1
| | | | llvm-svn: 240743
* Move xtest to its own file to match the gcc header organization.Eric Christopher2015-06-171-0/+1
| | | | llvm-svn: 239926
* AVX-512: Added AVX-512 intrinsics and testsElena Demikhovsky2015-04-301-0/+2
| | | | | | by Asaf Badouh (asaf.badouh@intel.com) llvm-svn: 236218
* [cuda] Added support for CUDA built-in variables.Artem Belevich2015-04-211-0/+1
| | | | | | | | | | | | | | | | | Added cuda_builtin_vars.h which implements built-in CUDA variables using __declattr(property). Fields of built-in variables (except for warpSize) are implemented using __declattr(property) which replaces read/write of a member field with a call to a getter/setter member function, in this case with appropriate NVPTX builtin. Added a test case to check diagnostics on attempt to construct or improperly access a built-in variable. Differential Revision: http://reviews.llvm.org/D9064 llvm-svn: 235448
* Revert r235398 "[cuda] Added support for CUDA built-in variables."Artem Belevich2015-04-211-1/+0
| | | | | | r235398 was causing buildbot break due to missing Makefile changes. llvm-svn: 235401
* [cuda] Added support for CUDA built-in variables.Artem Belevich2015-04-211-0/+1
| | | | | | | | | | | | | | | | | Added cuda_builtin_vars.h which implements built-in CUDA variables using __declattr(property). Fields of built-in variables (except for warpSize) are implemented using __declattr(property) which replaces read/write of a member field with a call to a getter/setter member function, in this case with appropriate NVPTX builtin. Added a test case to check diagnostics on attempt to construct or improperly access a built-in variable. Differential Revision: http://reviews.llvm.org/D9064 llvm-svn: 235398
* [SystemZ] Add header files to Makefile / module.modulemapUlrich Weigand2015-04-011-0/+3
| | | | | | | | | | This should fix build-bot failures after r233804. The patch also adds a "systemz" feature, and renames the "transactional-execution" feature to "htm", since it turns out "-" is not a legal character in module feature names. llvm-svn: 233807
* Sort files list in lib/Headers/CMakeLists.txtHans Wennborg2014-10-141-9/+9
| | | | | | | majnemer pointed out that vadefs.h was added in the wrong place. Might as well sort the rest too. llvm-svn: 219743
* MS Compat: interpose vadefs.h to fix definitions of _crt_va_{start,end,arg} ↵Hans Wennborg2014-10-141-0/+1
| | | | | | | | (PR21247) Differential revision: http://reviews.llvm.org/D5784 llvm-svn: 219740
* Added new headers to CMakeLists.txt.Robert Khasanov2014-10-081-0/+3
| | | | | | Fix for rev219319 llvm-svn: 219325
* Add an implementation of C11's stdatomic.hHal Finkel2014-10-031-0/+1
| | | | | | | | | | | | | | | | | | | | | | | | Adds a Clang-specific implementation of C11's stdatomic.h header. On systems, such as FreeBSD, where a stdatomic.h header is already provided, we defer to that header instead (using our __has_include_next technology). Otherwise, we provide an implementation in terms of our __c11_atomic_* intrinsics (that were created for this purpose). C11 7.1.4p1 requires function declarations for atomic_thread_fence, atomic_signal_fence, atomic_flag_test_and_set, atomic_flag_test_and_set_explicit, and atomic_flag_clear, and requires that they have external linkage. Accordingly, we provide these declarations, but if a user elides the shadowing macros and uses them, then they must have a libc (or similar) that actually provides definitions. atomic_flag is implemented using _Bool as the underlying type. This is consistent with the implementation provided by FreeBSD and also GCC 4.9 (at least when __GCC_ATOMIC_TEST_AND_SET_TRUEVAL == 1). Patch by Richard Smith (rebased and slightly edited by me -- Richard said I should drive at this point). llvm-svn: 218957
* Fix interaction of max_align_t and modules.Richard Smith2014-10-031-0/+1
| | | | | | | | | When building with modules enabled, we were defining max_align_t as a typedef for a different anonymous struct type each time it was included, resulting in an error if <stddef.h> is not covered by a module map and is included more than once in the same modules-enabled compilation of C11 or C++11 code. llvm-svn: 218931
* [x86] Added _addcarryx_u32, _addcarryx_u64 intrinsicsRobert Khasanov2014-09-191-0/+1
| | | | llvm-svn: 218117
* AVX-512: I added new headers to makefiles. It should resolve tests fail.Elena Demikhovsky2014-07-221-0/+2
| | | | | | If it will not, I'm reverting the both commits. llvm-svn: 213645
* Revert D3908 due to issues on Mac platformsViktor Kutuzov2014-07-191-2/+0
| | | | llvm-svn: 213450
* Add clang headers that fix machine-dependent definitions on FreeBSD 9.2Viktor Kutuzov2014-07-101-0/+2
| | | | | | Differential Revision: http://reviews.llvm.org/D3908 llvm-svn: 212689
* Introduce arm_acle.h supporting existing LLVM builtin intrinsicsYi Kong2014-06-271-0/+1
| | | | | | | | | | | | | | Summary: This patch introduces ACLE header file, implementing extensions that can be directly mapped to existing Clang intrinsics. It implements for both AArch32 and AArch64. Reviewers: t.p.northover, compnerd, rengolin Reviewed By: compnerd, rengolin Subscribers: rnk, echristo, compnerd, aemerson, mroth, cfe-commits Differential Revision: http://reviews.llvm.org/D4296 llvm-svn: 211962
* Rename lib/Headers/module.map to module.modulemapBen Langmuir2014-04-171-1/+1
| | | | | | Don't install a file using the legacy spelling. llvm-svn: 206431
* [CMake] Add the newly introduced compiler header.Argyrios Kyrtzidis2014-03-041-0/+1
| | | | llvm-svn: 202792
OpenPOWER on IntegriCloud